From a6713f9762b58e83e66f458a88322d79a8f7cd54 Mon Sep 17 00:00:00 2001 From: vildeopp <64434819+vildeopp@users.noreply.github.com> Date: Fri, 14 Jul 2023 09:25:03 +0200 Subject: [PATCH] feat(edit): toggle optional columns (#1127) * feat(edit): reducer for optional columns * feat(edit): toggle for optional column platform in edit * feat(edit): created toggelcompoent to add additional information for a certain tile * chore(toggelcolumns): removed unused imports * feat(toggelcolumn): not fixed controlled compoenent * fix(togglecolumn): fixed uncontrolled error component * chore(edit): renamed togglecolumns component * chore(reducer): changed name of togglecolumn to setcolumn in reducer --- next-tavla/src/Admin/scenarios/Edit/index.tsx | 5 +-- .../src/Admin/scenarios/Edit/reducer.tsx | 16 ++++++++ .../Admin/scenarios/ToggleColumns/index.tsx | 40 +++++++++++++++++++ next-tavla/src/Shared/types/column.ts | 2 +- 4 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 next-tavla/src/Admin/scenarios/ToggleColumns/index.tsx diff --git a/next-tavla/src/Admin/scenarios/Edit/index.tsx b/next-tavla/src/Admin/scenarios/Edit/index.tsx index 8288cadd0..77348f2e7 100644 --- a/next-tavla/src/Admin/scenarios/Edit/index.tsx +++ b/next-tavla/src/Admin/scenarios/Edit/index.tsx @@ -11,6 +11,7 @@ import { ToastProvider } from '@entur/alert' import { FloatingButton } from '@entur/button' import { StyledLink } from 'Admin/components/StyledLink' import { ShareTable } from '../ShareTable' +import { ToggleColumns } from '../ToggleColumns' function Edit({ initialSettings, @@ -21,16 +22,14 @@ function Edit({ }) { const [settings, dispatch] = useReducer(settingsReducer, initialSettings) const linkUrl = window.location.host + '/' + documentId - return (
- - +
( + action.tileId, + (tile) => { + return { + ...tile, + columns: { + ...tile.columns, + ...{ [action.column]: action.value }, + }, + } + }, + ) + } } } diff --git a/next-tavla/src/Admin/scenarios/ToggleColumns/index.tsx b/next-tavla/src/Admin/scenarios/ToggleColumns/index.tsx new file mode 100644 index 000000000..ee54bdee3 --- /dev/null +++ b/next-tavla/src/Admin/scenarios/ToggleColumns/index.tsx @@ -0,0 +1,40 @@ +import { Heading3 } from '@entur/typography' +import { useSettingsDispatch } from 'Admin/utils/contexts' +import { DefaultColumns, TColumn } from 'types/column' +import { TTile } from 'types/tile' +import { Switch } from '@entur/form' + +function ToggleColumns({ tile }: { tile: TTile }) { + const dispatch = useSettingsDispatch() + + const optionalColumns: TColumn[] = ['platform', 'via'] + + function handleSwitch(column: TColumn, value: boolean) { + dispatch({ + type: 'setColumn', + column: column, + value: value, + tileId: tile.uuid, + }) + } + const columns = { ...DefaultColumns, ...tile.columns } + return ( +
+ Legg til informasjon + + {optionalColumns.map((col) => { + return ( + handleSwitch(col, !columns[col])} + > + {col} + + ) + })} +
+ ) +} + +export { ToggleColumns } diff --git a/next-tavla/src/Shared/types/column.ts b/next-tavla/src/Shared/types/column.ts index 15af6b24c..983d46f1f 100644 --- a/next-tavla/src/Shared/types/column.ts +++ b/next-tavla/src/Shared/types/column.ts @@ -16,7 +16,7 @@ export const DefaultColumns: TColumnSettings = { platform: false, situations: true, time: true, - via: true, + via: false, } as const export type TColumnSize = { type: TColumn; size: number }