From 4f08654fc3ccdd7fd0fe9f2cf756945f176a4d78 Mon Sep 17 00:00:00 2001 From: Mike Abebe Date: Wed, 5 Apr 2023 17:25:07 +0300 Subject: [PATCH] feat/add new field functionality done --- .../components/grid/Grid/Grid.tsx | 2 +- .../GridTableHeader/GridTableHeader.hooks.tsx | 26 +++++++------------ .../grid/GridTableHeader/GridTableHeader.tsx | 12 ++++++--- .../grid/GridTableRows/GridAddRow.tsx | 4 ++- 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/frontend/appflowy_tauri/src/appflowy_app/components/grid/Grid/Grid.tsx b/frontend/appflowy_tauri/src/appflowy_app/components/grid/Grid/Grid.tsx index 3bf7bde69d..aae233abf7 100644 --- a/frontend/appflowy_tauri/src/appflowy_app/components/grid/Grid/Grid.tsx +++ b/frontend/appflowy_tauri/src/appflowy_app/components/grid/Grid/Grid.tsx @@ -34,7 +34,7 @@ export const Grid = ({ viewId }: { viewId: string }) => { {/* table component view with text area for td */}
- +
diff --git a/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.hooks.tsx b/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.hooks.tsx index a2db70852d..f88e00b188 100644 --- a/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.hooks.tsx +++ b/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.hooks.tsx @@ -1,23 +1,15 @@ -import { nanoid } from 'nanoid'; -import { FieldType } from '@/services/backend/models/flowy-database/field_entities'; -import { gridActions } from '../../../stores/reducers/grid/slice'; -import { useAppDispatch, useAppSelector } from '../../../stores/store'; +import { useAppSelector } from '../../../stores/store'; +import { DatabaseController } from '@/appflowy_app/stores/effects/database/database_controller'; +import { TypeOptionController } from '@/appflowy_app/stores/effects/database/field/type_option/type_option_controller'; +import { None } from 'ts-results'; -export const useGridTableHeaderHooks = function () { - const dispatch = useAppDispatch(); +export const useGridTableHeaderHooks = function (controller: DatabaseController) { const database = useAppSelector((state) => state.database); - const onAddField = () => { - dispatch( - gridActions.addField({ - field: { - fieldId: nanoid(8), - name: 'Name', - fieldOptions: {}, - fieldType: FieldType.RichText, - }, - }) - ); + const onAddField = async () => { + // TODO: move this to database controller hook + const fieldController = new TypeOptionController(controller.viewId, None); + await fieldController.initialize(); }; return { diff --git a/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.tsx b/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.tsx index e91c541d48..9293f6cd32 100644 --- a/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.tsx +++ b/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableHeader/GridTableHeader.tsx @@ -8,15 +8,19 @@ import { MultiSelectTypeSvg } from '../../_shared/svg/MultiSelectTypeSvg'; import { ChecklistTypeSvg } from '../../_shared/svg/ChecklistTypeSvg'; import { UrlTypeSvg } from '../../_shared/svg/UrlTypeSvg'; import { FieldType } from '@/services/backend/models/flowy-database/field_entities'; +import { DatabaseController } from '@/appflowy_app/stores/effects/database/database_controller'; +import { useTranslation } from 'react-i18next'; -export const GridTableHeader = () => { - const { fields, onAddField } = useGridTableHeaderHooks(); +export const GridTableHeader = ({ controller }: { controller: DatabaseController }) => { + const { fields, onAddField } = useGridTableHeaderHooks(controller); + + const { t } = useTranslation(''); return ( <> - {fields.map((field, i) => { + {fields.map((field) => { return (
@@ -44,7 +48,7 @@ export const GridTableHeader = () => { - New column + {t('grid.field.newColumn')}
diff --git a/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableRows/GridAddRow.tsx b/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableRows/GridAddRow.tsx index ad55a67b31..f50898c9e7 100644 --- a/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableRows/GridAddRow.tsx +++ b/frontend/appflowy_tauri/src/appflowy_app/components/grid/GridTableRows/GridAddRow.tsx @@ -1,8 +1,10 @@ import { DatabaseController } from '@/appflowy_app/stores/effects/database/database_controller'; import AddSvg from '../../_shared/svg/AddSvg'; import { useGridAddRow } from './GridAddRow.hooks'; +import { useTranslation } from 'react-i18next'; export const GridAddRow = ({ controller }: { controller: DatabaseController }) => { const { addRow } = useGridAddRow(controller); + const { t } = useTranslation(''); return (
@@ -10,7 +12,7 @@ export const GridAddRow = ({ controller }: { controller: DatabaseController }) = - New row + {t('grid.row.newRow')}
);