diff --git a/apps/app/src/app/pages/session.tsx b/apps/app/src/app/pages/session.tsx index 3915fd79..3657a9a3 100644 --- a/apps/app/src/app/pages/session.tsx +++ b/apps/app/src/app/pages/session.tsx @@ -115,6 +115,7 @@ import { import { ReactIsland } from "../../react/island"; import { reactSessionEnabled } from "../../react/feature-flag"; import { SessionSurface } from "../../react/session/session-surface.react"; +import { SessionSyncProvider } from "../../react/session/session-sync-provider.react"; export type SessionViewProps = { selectedSessionId: string | null; @@ -3200,6 +3201,18 @@ export default function SessionView(props: SessionViewProps) {
+ + +
{ - return ensureWorkspaceSessionSync({ - workspaceId: props.workspaceId, - baseUrl: props.opencodeBaseUrl, - openworkToken: props.openworkToken, - }); - }, [props.workspaceId, props.opencodeBaseUrl, props.openworkToken]); - useEffect(() => { if (!currentSnapshot) return; setRendered({ sessionId: props.sessionId, snapshot: currentSnapshot }); diff --git a/apps/app/src/react/session/session-sync-provider.react.tsx b/apps/app/src/react/session/session-sync-provider.react.tsx new file mode 100644 index 00000000..00bc80e8 --- /dev/null +++ b/apps/app/src/react/session/session-sync-provider.react.tsx @@ -0,0 +1,22 @@ +/** @jsxImportSource react */ +import { useEffect } from "react"; + +import { ensureWorkspaceSessionSync } from "./session-sync"; + +type SessionSyncProviderProps = { + workspaceId: string; + opencodeBaseUrl: string; + openworkToken: string; +}; + +export function SessionSyncProvider(props: SessionSyncProviderProps) { + useEffect(() => { + return ensureWorkspaceSessionSync({ + workspaceId: props.workspaceId, + baseUrl: props.opencodeBaseUrl, + openworkToken: props.openworkToken, + }); + }, [props.workspaceId, props.opencodeBaseUrl, props.openworkToken]); + + return null; +}