@@ -40,7 +40,7 @@ import { getDefaultFilterCondition } from '@/application/database-yjs/filter';
4040import { DEFAULT_FIELD_WRAP } from '@/application/database-yjs/const' ;
4141import { getOptionsFromRow } from '@/application/database-yjs/row' ;
4242import { getMetaIdMap } from '@/application/database-yjs/row_meta' ;
43- import { useBoardLayoutSettings , useCalendarLayoutSetting , useFieldSelector , useFieldType } from '@/application/database-yjs/selector' ;
43+ import { useBoardLayoutSettings , useCalendarLayoutSetting , useFieldType } from '@/application/database-yjs/selector' ;
4444import { deleteCollabDB } from '@/application/db' ;
4545import { deleteOutboxByObjectId } from '@/application/sync-outbox' ;
4646import { executeOperations } from '@/application/slate-yjs/utils/yjs' ;
@@ -1727,158 +1727,7 @@ export function useUpdateRowMetaDispatch(rowId: string) {
17271727 ) ;
17281728}
17291729
1730- function updateDateCell (
1731- cell : YDatabaseCell ,
1732- payload : {
1733- data : string ;
1734- endTimestamp ?: string ;
1735- includeTime ?: boolean ;
1736- isRange ?: boolean ;
1737- reminderId ?: string ;
1738- }
1739- ) {
1740- cell . set ( YjsDatabaseKey . data , payload . data ) ;
1741-
1742- if ( payload . endTimestamp !== undefined ) {
1743- cell . set ( YjsDatabaseKey . end_timestamp , payload . endTimestamp ) ;
1744- }
1745-
1746- if ( payload . includeTime !== undefined ) {
1747- Log . debug ( 'includeTime' , payload . includeTime ) ;
1748- cell . set ( YjsDatabaseKey . include_time , payload . includeTime ) ;
1749- }
1750-
1751- if ( payload . isRange !== undefined ) {
1752- cell . set ( YjsDatabaseKey . is_range , payload . isRange ) ;
1753- }
1754-
1755- if ( payload . reminderId !== undefined ) {
1756- cell . set ( YjsDatabaseKey . reminder_id , payload . reminderId ) ;
1757- }
1758- }
1759-
1760- export function useUpdateCellDispatch ( rowId : string , fieldId : string ) {
1761- const rowMap = useRowMap ( ) ;
1762- const { field } = useFieldSelector ( fieldId ) ;
1763-
1764- return useCallback (
1765- (
1766- data : string | Y . Array < string > ,
1767- dateOpts ?: {
1768- endTimestamp ?: string ;
1769- includeTime ?: boolean ;
1770- isRange ?: boolean ;
1771- reminderId ?: string ;
1772- }
1773- ) => {
1774- const rowDoc = rowMap ?. [ rowId ] ;
1775-
1776- if ( ! rowDoc ) {
1777- Log . warn ( '[useUpdateCellDispatch] Row doc not found' , { rowId, fieldId } ) ;
1778- return ;
1779- }
1780-
1781- const rowSharedRoot = rowDoc . getMap ( YjsEditorKey . data_section ) as YSharedRoot ;
1782- const row = rowSharedRoot . get ( YjsEditorKey . database_row ) ;
1783-
1784- if ( ! row ) {
1785- Log . warn ( '[useUpdateCellDispatch] Row data not found' , { rowId, fieldId } ) ;
1786- return ;
1787- }
1788-
1789- const cells = row . get ( YjsDatabaseKey . cells ) ;
1790-
1791- if ( ! cells ) {
1792- Log . warn ( '[useUpdateCellDispatch] Row cells not found' , { rowId, fieldId } ) ;
1793- return ;
1794- }
1795-
1796- const cell = cells . get ( fieldId ) ;
1797-
1798- const type = Number ( field . get ( YjsDatabaseKey . type ) ) ;
1799-
1800- rowDoc . transact ( ( ) => {
1801- if ( ! cell ) {
1802- const newCell = new Y . Map ( ) as YDatabaseCell ;
1803-
1804- newCell . set ( YjsDatabaseKey . created_at , String ( dayjs ( ) . unix ( ) ) ) ;
1805- newCell . set ( YjsDatabaseKey . field_type , type ) ;
1806- newCell . set ( YjsDatabaseKey . data , data ) ;
1807- newCell . set ( YjsDatabaseKey . last_modified , String ( dayjs ( ) . unix ( ) ) ) ;
1808-
1809- if ( dateOpts && ( typeof data === 'string' || typeof data === 'number' ) ) {
1810- updateDateCell ( newCell , {
1811- data,
1812- ...dateOpts ,
1813- } ) ;
1814- }
1815-
1816- cells . set ( fieldId , newCell ) ;
1817- } else {
1818- cell . set ( YjsDatabaseKey . data , data ) ;
1819-
1820- if ( dateOpts && ( typeof data === 'string' || typeof data === 'number' ) ) {
1821- updateDateCell ( cell , {
1822- data,
1823- ...dateOpts ,
1824- } ) ;
1825- }
1826-
1827- cell . set ( YjsDatabaseKey . field_type , type ) ;
1828- cell . set ( YjsDatabaseKey . last_modified , String ( dayjs ( ) . unix ( ) ) ) ;
1829- }
1830-
1831- row . set ( YjsDatabaseKey . last_modified , String ( dayjs ( ) . unix ( ) ) ) ;
1832- } ) ;
1833- } ,
1834- [ field , fieldId , rowMap , rowId ]
1835- ) ;
1836- }
1837-
1838- export function useUpdateStartEndTimeCell ( ) {
1839- const rowMap = useRowMap ( ) ;
1840-
1841- return useCallback (
1842- ( rowId : string , fieldId : string , startTimestamp : string , endTimestamp ?: string , isAllDay ?: boolean ) => {
1843- const rowDoc = rowMap ?. [ rowId ] ;
1844-
1845- if ( ! rowDoc ) {
1846- throw new Error ( `Row not found` ) ;
1847- }
1848-
1849- const rowSharedRoot = rowDoc . getMap ( YjsEditorKey . data_section ) as YSharedRoot ;
1850- const row = rowSharedRoot . get ( YjsEditorKey . database_row ) ;
1851-
1852- const cells = row . get ( YjsDatabaseKey . cells ) ;
1853-
1854- rowDoc . transact ( ( ) => {
1855- let cell = cells . get ( fieldId ) ;
1856-
1857- if ( ! cell ) {
1858- cell = new Y . Map ( ) as YDatabaseCell ;
1859- cell . set ( YjsDatabaseKey . field_type , FieldType . DateTime ) ;
1860-
1861- cell . set ( YjsDatabaseKey . created_at , String ( dayjs ( ) . unix ( ) ) ) ;
1862- cells . set ( fieldId , cell ) ;
1863- }
1864-
1865-
1866- cell . set ( YjsDatabaseKey . data , startTimestamp ) ;
1867- cell . set ( YjsDatabaseKey . last_modified , String ( dayjs ( ) . unix ( ) ) ) ;
1868-
1869- updateDateCell ( cell , {
1870- data : startTimestamp ,
1871- endTimestamp,
1872- isRange : ! ! endTimestamp ,
1873- includeTime : ! isAllDay ,
1874- } ) ;
1875- row . set ( YjsDatabaseKey . last_modified , String ( dayjs ( ) . unix ( ) ) ) ;
1876- } ) ;
1877-
1878- } ,
1879- [ rowMap ]
1880- ) ;
1881- }
1730+ export { useUpdateCellDispatch , useUpdateStartEndTimeCell } from './dispatch/cell' ;
18821731
18831732function generateBoardSetting ( database : YDatabase ) : YDatabaseFieldSettings {
18841733 const fieldSettingsMap = new Y . Map ( ) as YDatabaseFieldSettings ;
0 commit comments