|
@@ -1,3 +1,6 @@
|
|
|
+import { ViewLayoutTypePB } from '@/services/backend';
|
|
|
+
|
|
|
+import { useDatabase } from '../../_shared/database-hooks/useDatabase';
|
|
|
import { GridTableCount } from '../GridTableCount/GridTableCount';
|
|
|
import { GridTableHeader } from '../GridTableHeader/GridTableHeader';
|
|
|
import { GridAddRow } from '../GridTableRows/GridAddRow';
|
|
@@ -6,24 +9,29 @@ import { GridTitle } from '../GridTitle/GridTitle';
|
|
|
import { GridToolbar } from '../GridToolbar/GridToolbar';
|
|
|
|
|
|
export const Grid = ({ viewId }: { viewId: string }) => {
|
|
|
+ const { controller, rows, groups } = useDatabase(viewId, ViewLayoutTypePB.Grid);
|
|
|
+
|
|
|
return (
|
|
|
- <div className='mx-auto mt-8 flex flex-col gap-8 px-8'>
|
|
|
- <div className='flex w-full items-center justify-between'>
|
|
|
- <GridTitle />
|
|
|
- <GridToolbar />
|
|
|
- </div>
|
|
|
+ controller &&
|
|
|
+ groups && (
|
|
|
+ <div className='mx-auto mt-8 flex flex-col gap-8 px-8'>
|
|
|
+ <div className='flex w-full items-center justify-between'>
|
|
|
+ <GridTitle />
|
|
|
+ <GridToolbar />
|
|
|
+ </div>
|
|
|
|
|
|
- {/* table component view with text area for td */}
|
|
|
- <div className='flex flex-col gap-4'>
|
|
|
- <table className='w-full table-fixed text-sm'>
|
|
|
- <GridTableHeader />
|
|
|
- <GridTableRows />
|
|
|
- </table>
|
|
|
+ {/* table component view with text area for td */}
|
|
|
+ <div className='flex flex-col gap-4'>
|
|
|
+ <table className='w-full table-fixed text-sm'>
|
|
|
+ <GridTableHeader />
|
|
|
+ <GridTableRows allRows={rows} viewId={viewId} controller={controller} />
|
|
|
+ </table>
|
|
|
|
|
|
- <GridAddRow />
|
|
|
- </div>
|
|
|
+ <GridAddRow />
|
|
|
+ </div>
|
|
|
|
|
|
- <GridTableCount />
|
|
|
- </div>
|
|
|
+ <GridTableCount />
|
|
|
+ </div>
|
|
|
+ )
|
|
|
);
|
|
|
};
|