|
@@ -20,7 +20,7 @@ export const useDatabase = (viewId: string, type?: ViewLayoutTypePB) => {
|
|
setController(c);
|
|
setController(c);
|
|
|
|
|
|
// dispose is causing an error
|
|
// dispose is causing an error
|
|
- // return () => void c.dispose();
|
|
|
|
|
|
+ return () => void c.dispose();
|
|
}, [viewId]);
|
|
}, [viewId]);
|
|
|
|
|
|
const loadFields = async (fieldInfos: readonly FieldInfo[]) => {
|
|
const loadFields = async (fieldInfos: readonly FieldInfo[]) => {
|
|
@@ -49,11 +49,15 @@ export const useDatabase = (viewId: string, type?: ViewLayoutTypePB) => {
|
|
void (async () => {
|
|
void (async () => {
|
|
controller.subscribe({
|
|
controller.subscribe({
|
|
onRowsChanged: (rowInfos) => {
|
|
onRowsChanged: (rowInfos) => {
|
|
|
|
+ console.log('rows changed: ', rowInfos);
|
|
setRows(rowInfos);
|
|
setRows(rowInfos);
|
|
},
|
|
},
|
|
onFieldsChanged: (fieldInfos) => {
|
|
onFieldsChanged: (fieldInfos) => {
|
|
void loadFields(fieldInfos);
|
|
void loadFields(fieldInfos);
|
|
},
|
|
},
|
|
|
|
+ onGroupByField: (g) => {
|
|
|
|
+ console.log('on group by field: ', g);
|
|
|
|
+ },
|
|
});
|
|
});
|
|
await controller.open();
|
|
await controller.open();
|
|
|
|
|
|
@@ -63,5 +67,20 @@ export const useDatabase = (viewId: string, type?: ViewLayoutTypePB) => {
|
|
})();
|
|
})();
|
|
}, [controller]);
|
|
}, [controller]);
|
|
|
|
|
|
- return { loadFields, controller, rows, groups };
|
|
|
|
|
|
+ const onNewRowClick = async (index: number) => {
|
|
|
|
+ if (!groups) return;
|
|
|
|
+ if (!controller?.groups) return;
|
|
|
|
+ const group = groups[index];
|
|
|
|
+ await group.createRow();
|
|
|
|
+
|
|
|
|
+ const newGroups = controller.groups.value;
|
|
|
|
+
|
|
|
|
+ newGroups.forEach((g) => {
|
|
|
|
+ console.log(g.name, g.rows);
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ setGroups([...controller.groups.value]);
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ return { loadFields, controller, rows, groups, onNewRowClick };
|
|
};
|
|
};
|