diff --git a/frontend/apps/app/components/SessionDetailPage/hooks/useRealtimeVersionsWithSchema/useRealtimeVersionsWithSchema.ts b/frontend/apps/app/components/SessionDetailPage/hooks/useRealtimeVersionsWithSchema/useRealtimeVersionsWithSchema.ts index aad10745d5..b3981e0d61 100644 --- a/frontend/apps/app/components/SessionDetailPage/hooks/useRealtimeVersionsWithSchema/useRealtimeVersionsWithSchema.ts +++ b/frontend/apps/app/components/SessionDetailPage/hooks/useRealtimeVersionsWithSchema/useRealtimeVersionsWithSchema.ts @@ -2,7 +2,7 @@ import { buildingSchemaVersionsSchema } from '@liam-hq/db' import { type Schema, schemaSchema } from '@liam-hq/schema' -import { useCallback, useEffect, useState, useTransition } from 'react' +import { useCallback, useEffect, useRef, useState, useTransition } from 'react' import * as v from 'valibot' import { createClient } from '../../../../libs/db/client' import { useViewMode } from '../../hooks/viewMode' @@ -31,6 +31,7 @@ export function useRealtimeVersionsWithSchema({ const [selectedVersion, setSelectedVersion] = useState( initialVersions[0] ?? null, ) + const prevVersionsLengthRef = useRef(initialVersions.length) const [displayedSchema, setDisplayedSchema] = useState( initialDisplayedSchema, @@ -91,9 +92,13 @@ export function useRealtimeVersionsWithSchema({ useEffect(() => { const targetVersion = versions[0] ?? null setSelectedVersion(targetVersion) - if (targetVersion !== null) { + + // Call onChangeSelectedVersion only when a new version is added + if (versions.length > prevVersionsLengthRef.current && targetVersion) { onChangeSelectedVersion(targetVersion) } + + prevVersionsLengthRef.current = versions.length }, [versions, onChangeSelectedVersion]) useEffect(() => {