From fe6f01c782d45abcb9b38d03fd4eb8a517f15487 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Mon, 2 Dec 2024 15:27:13 +0100 Subject: [PATCH 01/20] DataViews: Unify layout config --- .../dataviews-view-config/index.tsx | 127 +++++-------- .../components/dataviews/stories/fixtures.tsx | 3 - .../dataviews/stories/index.story.tsx | 120 ++----------- .../src/components/dataviews/style.scss | 59 +++---- .../src/dataviews-layouts/grid/index.tsx | 167 +++++++++--------- .../src/dataviews-layouts/grid/style.scss | 35 ++-- .../dataviews/src/dataviews-layouts/index.ts | 88 --------- .../src/dataviews-layouts/list/index.tsx | 53 +++--- .../table/column-header-menu.tsx | 46 ++--- .../table/column-primary.tsx | 58 ++++++ .../src/dataviews-layouts/table/index.tsx | 160 ++++++----------- .../src/dataviews-layouts/table/style.scss | 4 + .../utils/get-clickable-item-props.ts | 6 +- packages/dataviews/src/style.scss | 1 + packages/dataviews/src/types.ts | 56 +----- .../src/components/page-patterns/index.js | 10 +- .../src/components/page-templates/index.js | 39 ++-- .../src/components/post-list/index.js | 2 +- .../sidebar-dataviews/default-views.js | 19 +- 19 files changed, 374 insertions(+), 679 deletions(-) create mode 100644 packages/dataviews/src/dataviews-layouts/table/column-primary.tsx diff --git a/packages/dataviews/src/components/dataviews-view-config/index.tsx b/packages/dataviews/src/components/dataviews-view-config/index.tsx index f13670f27cdab7..ef96cd755f0d05 100644 --- a/packages/dataviews/src/components/dataviews-view-config/index.tsx +++ b/packages/dataviews/src/components/dataviews-view-config/index.tsx @@ -39,13 +39,8 @@ import { sortIcons, sortLabels, } from '../../constants'; -import { - VIEW_LAYOUTS, - getNotHidableFieldIds, - getVisibleFieldIds, - getHiddenFieldIds, -} from '../../dataviews-layouts'; -import type { SupportedLayouts, View, Field } from '../../types'; +import { VIEW_LAYOUTS } from '../../dataviews-layouts'; +import type { NormalizedField, SupportedLayouts, View } from '../../types'; import DataViewsContext from '../dataviews-context'; import { unlock } from '../../lock-unlock'; @@ -93,6 +88,7 @@ function ViewTypeMenu( { case 'list': case 'grid': case 'table': + // @ts-expect-error return onChangeView( { ...view, type: e.target.value, @@ -237,34 +233,28 @@ function ItemsPerPageControl() { ); } -interface FieldItemProps { - id: any; - label: string; - index: number; - isVisible: boolean; - isHidable: boolean; -} - function FieldItem( { - field: { id, label, index, isVisible, isHidable }, - fields, + index, + field, view, onChangeView, }: { - field: FieldItemProps; - fields: Field< any >[]; + index?: number; + field: NormalizedField< any >; view: View; onChangeView: ( view: View ) => void; } ) { - const visibleFieldIds = getVisibleFieldIds( view, fields ); + const visibleFieldIds = view.fields ?? []; + const isVisible = + index !== undefined && visibleFieldIds.includes( field.id ); return ( - + - { label } + { field.label }