@@ -25,6 +25,7 @@ import {
2525 YDatabaseRow ,
2626 YDoc ,
2727 YDocWithMeta ,
28+ RowDocumentSourcePayload ,
2829 YjsDatabaseKey ,
2930 YjsEditorKey ,
3031} from '@/application/types' ;
@@ -124,6 +125,20 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
124125 const createRowDocument = context ?. createRowDocument ;
125126 const checkIfRowDocumentExists = context ?. checkIfRowDocumentExists ;
126127 const bindViewSync = context ?. bindViewSync ;
128+ const rowDocumentSource = useMemo < RowDocumentSourcePayload | undefined > ( ( ) => {
129+ const databaseId = ( database ?. get ( YjsDatabaseKey . id ) as string | undefined ) || context ?. databaseDoc ?. guid ;
130+ const databaseViewId = context ?. activeViewId || context ?. databasePageId ;
131+
132+ if ( ! databaseId || ! databaseViewId ) {
133+ return undefined ;
134+ }
135+
136+ return {
137+ database_id : databaseId ,
138+ database_view_id : databaseViewId ,
139+ row_id : rowId ,
140+ } ;
141+ } , [ context ?. activeViewId , context ?. databaseDoc , context ?. databasePageId , database , rowId ] ) ;
127142 const updateRowMeta = useUpdateRowMetaDispatch ( rowId ) ;
128143 const editorRef = useRef < YjsEditor | null > ( null ) ;
129144 const lastIsEmptyRef = useRef < boolean | null > ( null ) ;
@@ -412,7 +427,7 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
412427
413428 try {
414429 Log . debug ( '[DatabaseRowSubDocument] calling createRowDocument' , { documentId, requireServerReady } ) ;
415- docState = await createRowDocument ( documentId ) ;
430+ docState = await createRowDocument ( documentId , rowDocumentSource ) ;
416431 Log . debug ( '[DatabaseRowSubDocument] createRowDocument success' , {
417432 documentId,
418433 docStateSize : docState ?. length ?? 0 ,
@@ -452,7 +467,15 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
452467 setLoading ( false ) ;
453468 }
454469 } ,
455- [ createRowDocument , handleOpenDocument , hasLocalDocContent , loadRowDocument , openDocumentWithState , rowId ]
470+ [
471+ createRowDocument ,
472+ handleOpenDocument ,
473+ hasLocalDocContent ,
474+ loadRowDocument ,
475+ openDocumentWithState ,
476+ rowDocumentSource ,
477+ rowId ,
478+ ]
456479 ) ;
457480
458481 const scheduleEnsureRowDocumentExists = useCallback ( ( ) => {
@@ -477,7 +500,7 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
477500 rowId,
478501 documentId,
479502 } ) ;
480- await createRowDocument ( documentId ) ;
503+ await createRowDocument ( documentId , rowDocumentSource ) ;
481504 }
482505
483506 if ( pendingNonEmptyRef . current ) {
@@ -507,6 +530,7 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
507530 createRowDocument ,
508531 documentId ,
509532 isDocumentEmpty ,
533+ rowDocumentSource ,
510534 updateRowMeta ,
511535 rowId ,
512536 ] ) ;
@@ -682,7 +706,7 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
682706 rowId,
683707 documentId,
684708 } ) ;
685- await createRowDocument ( documentId ) ;
709+ await createRowDocument ( documentId , rowDocumentSource ) ;
686710 } catch {
687711 // Ignore; we'll retry loading below.
688712 }
@@ -722,6 +746,7 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
722746 isDocumentEmptyResolved ,
723747 hasLocalDocContent ,
724748 createRowDocument ,
749+ rowDocumentSource ,
725750 rowId ,
726751 doc ,
727752 ] ) ;
@@ -823,7 +848,7 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
823848 // Only create orphaned view if document doesn't exist
824849 if ( createRowDocument ) {
825850 try {
826- await createRowDocument ( documentId ) ;
851+ await createRowDocument ( documentId , rowDocumentSource ) ;
827852 rowDocEnsuredRef . current = true ;
828853 return true ;
829854 } catch {
@@ -833,7 +858,7 @@ export const DatabaseRowSubDocument = memo(({ rowId }: { rowId: string }) => {
833858 }
834859
835860 return false ;
836- } , [ checkIfRowDocumentExists , createRowDocument , documentId ] ) ;
861+ } , [ checkIfRowDocumentExists , createRowDocument , documentId , rowDocumentSource ] ) ;
837862
838863 useEffect ( ( ) => {
839864 if ( ! doc ) return ;
0 commit comments