@payloadcms/ui 3.24.0 → 3.25.0-canary.3d5c763
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +10 -30
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +3 -2
- package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.js +19 -2
- package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +8 -2
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +2 -3
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +2 -2
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.scss +16 -0
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +22 -14
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditMany/index.scss +5 -19
- package/dist/elements/Link/index.d.ts +9 -1
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/Link/index.js +6 -0
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts +8 -0
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +4 -20
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +4 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts +8 -1
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListSelection/index.d.ts +4 -0
- package/dist/elements/ListSelection/index.d.ts.map +1 -1
- package/dist/elements/ListSelection/index.js +44 -23
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/ListSelection/index.scss +4 -0
- package/dist/elements/PublishMany/index.d.ts +1 -0
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +3 -2
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/PublishMany/index.scss +21 -0
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +3 -4
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -0
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts +3 -3
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js +5 -6
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts +3 -3
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js +5 -6
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -1
- package/dist/elements/TableColumns/getInitialColumns.d.ts +2 -2
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
- package/dist/elements/TableColumns/getInitialColumns.js +1 -2
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +11 -21
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts +1 -0
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +3 -2
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.scss +21 -0
- package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/field-types.js +9 -5
- package/dist/elements/WhereBuilder/field-types.js.map +1 -1
- package/dist/exports/client/index.d.ts +2 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -23
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +2 -2
- package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +85 -103
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.scss +43 -0
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +16 -12
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Upload/Input.js +13 -13
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/context.d.ts +3 -3
- package/dist/forms/Form/context.js +3 -3
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +30 -14
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +28 -4
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/types.d.ts +1 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/useField/index.d.ts +1 -1
- package/dist/forms/useField/index.js +1 -1
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +4 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.d.ts +21 -0
- package/dist/providers/UploadHandlers/index.d.ts.map +1 -0
- package/dist/providers/UploadHandlers/index.js +72 -0
- package/dist/providers/UploadHandlers/index.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/renderTable.d.ts +3 -4
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +2 -2
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/upsertPreferences.d.ts +5 -1
- package/dist/utilities/upsertPreferences.d.ts.map +1 -1
- package/dist/utilities/upsertPreferences.js +11 -14
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts +2 -0
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +5 -0
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +11 -20
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { I18nClient } from '@payloadcms/translations';
|
|
2
|
-
import type { ClientField, Column,
|
|
2
|
+
import type { ClientField, Column, ColumnPreference, DefaultCellComponentProps, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
|
|
3
3
|
import type { SortColumnProps } from '../SortColumn/index.js';
|
|
4
4
|
type Args = {
|
|
5
5
|
beforeRows?: Column[];
|
|
6
|
-
columnPreferences:
|
|
7
|
-
columns?:
|
|
6
|
+
columnPreferences: ColumnPreference[];
|
|
7
|
+
columns?: ColumnPreference[];
|
|
8
8
|
customCellProps: DefaultCellComponentProps['customCellProps'];
|
|
9
9
|
docs: PaginatedDocs['docs'];
|
|
10
10
|
enableRowSelections: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPolymorphicColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,yBAAyB,EAGzB,
|
|
1
|
+
{"version":3,"file":"buildPolymorphicColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,yBAAyB,EAGzB,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,2BAA2B,SAAU,IAAI,KAAG,MAAM,EAqP9D,CAAA"}
|
|
@@ -39,8 +39,8 @@ export const buildPolymorphicColumnState = args => {
|
|
|
39
39
|
}
|
|
40
40
|
const sortTo = columnPreferences || columns;
|
|
41
41
|
const sortFieldMap = (fieldMap, sortTo) => fieldMap?.sort((a, b) => {
|
|
42
|
-
const aIndex = sortTo.findIndex(column => 'name' in a &&
|
|
43
|
-
const bIndex = sortTo.findIndex(column => 'name' in b &&
|
|
42
|
+
const aIndex = sortTo.findIndex(column => 'name' in a && a.name in column);
|
|
43
|
+
const bIndex = sortTo.findIndex(column => 'name' in b && b.name in column);
|
|
44
44
|
if (aIndex === -1 && bIndex === -1) {
|
|
45
45
|
return 0;
|
|
46
46
|
}
|
|
@@ -64,12 +64,11 @@ export const buildPolymorphicColumnState = args => {
|
|
|
64
64
|
return acc;
|
|
65
65
|
}
|
|
66
66
|
const _field = _sortedFieldMap.find(f => 'name' in field && 'name' in f && f.name === field.name);
|
|
67
|
-
const columnPreference = columnPreferences?.find(preference => field && 'name' in field && preference.accessor === field.name);
|
|
68
67
|
let active = false;
|
|
69
|
-
if (
|
|
70
|
-
active =
|
|
68
|
+
if (columnPreferences) {
|
|
69
|
+
active = 'name' in field && columnPreferences?.some(col => col?.[field.name]);
|
|
71
70
|
} else if (columns && Array.isArray(columns) && columns.length > 0) {
|
|
72
|
-
active =
|
|
71
|
+
active = 'name' in field && columns.some(col => col?.[field.name]);
|
|
73
72
|
} else if (activeColumnsIndices.length < 4) {
|
|
74
73
|
active = true;
|
|
75
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPolymorphicColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildPolymorphicColumnState","args","beforeRows","columnPreferences","columns","customCellProps","docs","enableRowSelections","fields","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","columnPreference","preference","active","Array","isArray","length","includes","push","CustomLabel","undefined","fieldAffectsDataSubFields","type","Heading","_jsx","disable","Label","label","renderedCells","map","doc","i","isLinkedColumn","collectionSlug","relationTo","value","baseCellClientProps","cellData","rowData","cellClientProps","link","cellServerProps","className","collectionConfig","collections","config","columnIndex","onClick","CustomCell","editor","Error","admin","components","clientProps","Component","CellComponent","importMap","serverProps","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"sourcesContent":["// Dirty copy of buildColumnState.tsx with some changes to not break things\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientField,\n Column,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildPolymorphicColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n fields,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n const columnPreference = columnPreferences?.find(\n (preference) => field && 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find(\n (column) => field && 'name' in field && column.accessor === field.name,\n )?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n // const CustomLabelToRender =\n // _field &&\n // 'admin' in _field &&\n // 'components' in _field.admin &&\n // 'Label' in _field.admin.components &&\n // _field.admin.components.Label !== undefined // let it return `null`\n // ? _field.admin.components.Label\n // : undefined\n\n // // TODO: customComponent will be optional in v4\n // const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n // field,\n // }\n\n // const customLabelServerProps: Pick<\n // ServerComponentProps,\n // 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n // > = {\n // clientField: field,\n // collectionSlug: collectionConfig.slug,\n // field: _field,\n // i18n,\n // payload,\n // }\n\n const CustomLabel = undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const collectionSlug = doc.relationTo\n doc = doc.value\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug,\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig: payload.collections[collectionSlug].config,\n collectionSlug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildPolymorphicColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildPolymorphicColumnState","args","beforeRows","columnPreferences","columns","customCellProps","docs","enableRowSelections","fields","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","active","some","col","Array","isArray","length","includes","push","CustomLabel","undefined","fieldAffectsDataSubFields","type","Heading","_jsx","disable","Label","label","accessor","renderedCells","map","doc","i","isLinkedColumn","collectionSlug","relationTo","value","baseCellClientProps","cellData","rowData","cellClientProps","link","cellServerProps","className","collectionConfig","collections","config","columnIndex","onClick","CustomCell","editor","Error","admin","components","clientProps","Component","CellComponent","importMap","serverProps","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"sourcesContent":["// Dirty copy of buildColumnState.tsx with some changes to not break things\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientField,\n Column,\n ColumnPreference,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreference[]\n columns?: ColumnPreference[]\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildPolymorphicColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n fields,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && a.name in column)\n const bIndex = sortTo.findIndex((column) => 'name' in b && b.name in column)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n let active = false\n\n if (columnPreferences) {\n active = 'name' in field && columnPreferences?.some((col) => col?.[field.name])\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = 'name' in field && columns.some((col) => col?.[field.name])\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n // const CustomLabelToRender =\n // _field &&\n // 'admin' in _field &&\n // 'components' in _field.admin &&\n // 'Label' in _field.admin.components &&\n // _field.admin.components.Label !== undefined // let it return `null`\n // ? _field.admin.components.Label\n // : undefined\n\n // // TODO: customComponent will be optional in v4\n // const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n // field,\n // }\n\n // const customLabelServerProps: Pick<\n // ServerComponentProps,\n // 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n // > = {\n // clientField: field,\n // collectionSlug: collectionConfig.slug,\n // field: _field,\n // i18n,\n // payload,\n // }\n\n const CustomLabel = undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const collectionSlug = doc.relationTo\n doc = doc.value\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug,\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig: payload.collections[collectionSlug].config,\n collectionSlug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ClientField, CollectionConfig,
|
|
1
|
+
import type { ClientField, CollectionConfig, ColumnPreference, Field } from 'payload';
|
|
2
2
|
/**
|
|
3
3
|
* Returns the initial columns to display in the table based on the following criteria:
|
|
4
4
|
* 1. If `defaultColumns` is set in the collection config, use those columns
|
|
5
5
|
* 2. Otherwise take `useAtTitle, if set, and the next 3 fields that are not hidden or disabled
|
|
6
6
|
*/
|
|
7
|
-
export declare const getInitialColumns: <T extends ClientField[] | Field[]>(fields: T, useAsTitle: CollectionConfig["admin"]["useAsTitle"], defaultColumns: CollectionConfig["admin"]["defaultColumns"]) =>
|
|
7
|
+
export declare const getInitialColumns: <T extends ClientField[] | Field[]>(fields: T, useAsTitle: CollectionConfig["admin"]["useAsTitle"], defaultColumns: CollectionConfig["admin"]["defaultColumns"]) => ColumnPreference[];
|
|
8
8
|
//# sourceMappingURL=getInitialColumns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInitialColumns.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"getInitialColumns.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAiCrF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,WAAW,EAAE,GAAG,KAAK,EAAE,UACzD,CAAC,cACG,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,kBACnC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAC1D,gBAAgB,EAmBlB,CAAA"}
|
|
@@ -29,8 +29,7 @@ export const getInitialColumns = (fields, useAsTitle, defaultColumns) => {
|
|
|
29
29
|
initialColumns = initialColumns.slice(0, 4);
|
|
30
30
|
}
|
|
31
31
|
return initialColumns.map(column => ({
|
|
32
|
-
|
|
33
|
-
active: true
|
|
32
|
+
[column]: true
|
|
34
33
|
}));
|
|
35
34
|
};
|
|
36
35
|
//# sourceMappingURL=getInitialColumns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInitialColumns.js","names":["fieldAffectsData","getRemainingColumns","fields","useAsTitle","reduce","remaining","field","name","type","tabs","tabFieldColumns","tab","getInitialColumns","defaultColumns","initialColumns","Array","isArray","length","push","remainingColumns","concat","slice","map","column"
|
|
1
|
+
{"version":3,"file":"getInitialColumns.js","names":["fieldAffectsData","getRemainingColumns","fields","useAsTitle","reduce","remaining","field","name","type","tabs","tabFieldColumns","tab","getInitialColumns","defaultColumns","initialColumns","Array","isArray","length","push","remainingColumns","concat","slice","map","column"],"sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"sourcesContent":["import type { ClientField, CollectionConfig, ColumnPreference, Field } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nconst getRemainingColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: string,\n): ColumnPreference[] =>\n fields?.reduce((remaining, field) => {\n if (fieldAffectsData(field) && field.name === useAsTitle) {\n return remaining\n }\n\n if (!fieldAffectsData(field) && 'fields' in field) {\n return [...remaining, ...getRemainingColumns(field.fields, useAsTitle)]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...remaining,\n ...field.tabs.reduce(\n (tabFieldColumns, tab) => [\n ...tabFieldColumns,\n ...('name' in tab ? [tab.name] : getRemainingColumns(tab.fields, useAsTitle)),\n ],\n [],\n ),\n ]\n }\n\n return [...remaining, field.name]\n }, [])\n\n/**\n * Returns the initial columns to display in the table based on the following criteria:\n * 1. If `defaultColumns` is set in the collection config, use those columns\n * 2. Otherwise take `useAtTitle, if set, and the next 3 fields that are not hidden or disabled\n */\nexport const getInitialColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: CollectionConfig['admin']['useAsTitle'],\n defaultColumns: CollectionConfig['admin']['defaultColumns'],\n): ColumnPreference[] => {\n let initialColumns = []\n\n if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) {\n initialColumns = defaultColumns\n } else {\n if (useAsTitle) {\n initialColumns.push(useAsTitle)\n }\n\n const remainingColumns = getRemainingColumns(fields, useAsTitle)\n\n initialColumns = initialColumns.concat(remainingColumns)\n initialColumns = initialColumns.slice(0, 4)\n }\n\n return initialColumns.map((column) => ({\n [column]: true,\n }))\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AAEjC,MAAMC,mBAAA,GAAsBA,CAC1BC,MAAA,EACAC,UAAA,KAEAD,MAAA,EAAQE,MAAA,CAAO,CAACC,SAAA,EAAWC,KAAA;EACzB,IAAIN,gBAAA,CAAiBM,KAAA,KAAUA,KAAA,CAAMC,IAAI,KAAKJ,UAAA,EAAY;IACxD,OAAOE,SAAA;EACT;EAEA,IAAI,CAACL,gBAAA,CAAiBM,KAAA,KAAU,YAAYA,KAAA,EAAO;IACjD,OAAO,C,GAAID,SAAA,E,GAAcJ,mBAAA,CAAoBK,KAAA,CAAMJ,MAAM,EAAEC,UAAA,EAAY;EACzE;EAEA,IAAIG,KAAA,CAAME,IAAI,KAAK,UAAU,UAAUF,KAAA,EAAO;IAC5C,OAAO,C,GACFD,SAAA,E,GACAC,KAAA,CAAMG,IAAI,CAACL,MAAM,CAClB,CAACM,eAAA,EAAiBC,GAAA,KAAQ,C,GACrBD,eAAA,E,IACC,UAAUC,GAAA,GAAM,CAACA,GAAA,CAAIJ,IAAI,CAAC,GAAGN,mBAAA,CAAoBU,GAAA,CAAIT,MAAM,EAAEC,UAAA,GAClE,EACD,EAAE,EAEL;EACH;EAEA,OAAO,C,GAAIE,SAAA,EAAWC,KAAA,CAAMC,IAAI,CAAC;AACnC,GAAG,EAAE;AAEP;;;;;AAKA,OAAO,MAAMK,iBAAA,GAAoBA,CAC/BV,MAAA,EACAC,UAAA,EACAU,cAAA;EAEA,IAAIC,cAAA,GAAiB,EAAE;EAEvB,IAAIC,KAAA,CAAMC,OAAO,CAACH,cAAA,KAAmBA,cAAA,CAAeI,MAAM,IAAI,GAAG;IAC/DH,cAAA,GAAiBD,cAAA;EACnB,OAAO;IACL,IAAIV,UAAA,EAAY;MACdW,cAAA,CAAeI,IAAI,CAACf,UAAA;IACtB;IAEA,MAAMgB,gBAAA,GAAmBlB,mBAAA,CAAoBC,MAAA,EAAQC,UAAA;IAErDW,cAAA,GAAiBA,cAAA,CAAeM,MAAM,CAACD,gBAAA;IACvCL,cAAA,GAAiBA,cAAA,CAAeO,KAAK,CAAC,GAAG;EAC3C;EAEA,OAAOP,cAAA,CAAeQ,GAAG,CAAEC,MAAA,KAAY;IACrC,CAACA,MAAA,GAAS;EACZ;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAoB,eAAe,EAA6B,MAAM,SAAS,CAAA;AAEnG,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAO7D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA;AAQD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqPhD,CAAA"}
|
|
@@ -11,15 +11,12 @@ export const useTableColumns = () => {
|
|
|
11
11
|
return useContext(TableColumnContext);
|
|
12
12
|
};
|
|
13
13
|
// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
active
|
|
21
|
-
}));
|
|
22
|
-
};
|
|
14
|
+
const formatColumnPreferences = columns => columns.map(({
|
|
15
|
+
accessor,
|
|
16
|
+
active
|
|
17
|
+
}) => ({
|
|
18
|
+
[accessor]: active
|
|
19
|
+
}));
|
|
23
20
|
export const TableColumnsProvider = ({
|
|
24
21
|
children,
|
|
25
22
|
collectionSlug,
|
|
@@ -68,7 +65,7 @@ export const TableColumnsProvider = ({
|
|
|
68
65
|
setTableColumns(withMovedColumn);
|
|
69
66
|
const result = await getTableState({
|
|
70
67
|
collectionSlug,
|
|
71
|
-
columns:
|
|
68
|
+
columns: formatColumnPreferences(withMovedColumn),
|
|
72
69
|
docs,
|
|
73
70
|
enableRowSelections,
|
|
74
71
|
renderRowTypes,
|
|
@@ -94,14 +91,12 @@ export const TableColumnsProvider = ({
|
|
|
94
91
|
active: !col.active
|
|
95
92
|
});
|
|
96
93
|
acc.toggledColumns.push({
|
|
97
|
-
accessor: col.
|
|
98
|
-
active: !col.active
|
|
94
|
+
[col.accessor]: !col.active
|
|
99
95
|
});
|
|
100
96
|
} else {
|
|
101
97
|
acc.newColumnState.push(col);
|
|
102
98
|
acc.toggledColumns.push({
|
|
103
|
-
accessor: col.
|
|
104
|
-
active: col.active
|
|
99
|
+
[col.accessor]: col.active
|
|
105
100
|
});
|
|
106
101
|
}
|
|
107
102
|
return acc;
|
|
@@ -126,19 +121,14 @@ export const TableColumnsProvider = ({
|
|
|
126
121
|
abortToggleColumnRef.current = null;
|
|
127
122
|
}, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
|
|
128
123
|
const setActiveColumns = React.useCallback(async activeColumnAccessors => {
|
|
129
|
-
const activeColumns = tableColumns.
|
|
130
|
-
return {
|
|
131
|
-
accessor: col_0.accessor,
|
|
132
|
-
active: activeColumnAccessors.includes(col_0.accessor)
|
|
133
|
-
};
|
|
134
|
-
}).sort((first, second) => {
|
|
124
|
+
const activeColumns = formatColumnPreferences(tableColumns.sort((first, second) => {
|
|
135
125
|
const indexOfFirst = activeColumnAccessors.indexOf(first.accessor);
|
|
136
126
|
const indexOfSecond = activeColumnAccessors.indexOf(second.accessor);
|
|
137
127
|
if (indexOfFirst === -1 || indexOfSecond === -1) {
|
|
138
128
|
return 0;
|
|
139
129
|
}
|
|
140
130
|
return indexOfFirst > indexOfSecond ? 1 : -1;
|
|
141
|
-
});
|
|
131
|
+
}));
|
|
142
132
|
const {
|
|
143
133
|
state: columnState_0,
|
|
144
134
|
Table
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useConfig","usePreferences","useServerFunctions","abortAndIgnore","handleAbortRef","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","Array","isArray","getPreference","tableColumns","setTableColumns","useState","abortTableStateRef","abortToggleColumnRef","moveColumn","args","controller","fromIndex","toIndex","withMovedColumn","columnToMove","splice","result","signal","state","Table","current","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","sync","defaultCollection","collectionHasChanged","currentPreferences","abortTableState","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { Column, ListPreferences, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect } from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string | string[]\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n })\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(\n Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug,\n )\n const { getPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const abortTableStateRef = React.useRef<AbortController>(null)\n const abortToggleColumnRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const controller = handleAbortRef(abortTableStateRef)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortTableStateRef.current = null\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const controller = handleAbortRef(abortToggleColumnRef)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortToggleColumnRef.current = null\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .sort((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug\n const collectionHasChanged = prevCollection.current !== defaultCollection\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ListPreferences['columns']\n }>(preferenceKey)\n\n prevCollection.current = defaultCollection\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n useEffect(() => {\n setTableColumns(columnState)\n }, [columnState])\n\n useEffect(() => {\n const abortTableState = abortTableStateRef.current\n\n return () => {\n abortAndIgnore(abortTableState)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useConfig","usePreferences","useServerFunctions","abortAndIgnore","handleAbortRef","TableColumnContext","useTableColumns","formatColumnPreferences","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","Array","isArray","getPreference","tableColumns","setTableColumns","useState","abortTableStateRef","abortToggleColumnRef","moveColumn","args","controller","fromIndex","toIndex","withMovedColumn","columnToMove","splice","result","signal","state","Table","current","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","sync","defaultCollection","collectionHasChanged","currentPreferences","abortTableState","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { Column, ColumnPreference, ListPreferences, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect } from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string | string[]\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst formatColumnPreferences = (columns: Column[]): ColumnPreference[] =>\n columns.map(({ accessor, active }) => ({\n [accessor]: active,\n }))\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n })\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(\n Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug,\n )\n const { getPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const abortTableStateRef = React.useRef<AbortController>(null)\n const abortToggleColumnRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const controller = handleAbortRef(abortTableStateRef)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const result = await getTableState({\n collectionSlug,\n columns: formatColumnPreferences(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortTableStateRef.current = null\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const controller = handleAbortRef(abortToggleColumnRef)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: ColumnPreference[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n [col.accessor]: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n [col.accessor]: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortToggleColumnRef.current = null\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: ColumnPreference[] = formatColumnPreferences(\n tableColumns.sort((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n }),\n )\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug\n const collectionHasChanged = prevCollection.current !== defaultCollection\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreference[]\n }>(preferenceKey)\n\n prevCollection.current = defaultCollection\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n useEffect(() => {\n setTableColumns(columnState)\n }, [columnState])\n\n useEffect(() => {\n const abortTableState = abortTableStateRef.current\n\n return () => {\n abortAndIgnore(abortTableState)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAsB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4HtD,CAAA"}
|
|
@@ -15,7 +15,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
15
15
|
import { requests } from '../../utilities/api.js';
|
|
16
16
|
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
17
17
|
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
18
|
-
import
|
|
18
|
+
import './index.scss';
|
|
19
19
|
const baseClass = 'unpublish-many';
|
|
20
20
|
export const UnpublishMany = props => {
|
|
21
21
|
const {
|
|
@@ -114,11 +114,12 @@ export const UnpublishMany = props => {
|
|
|
114
114
|
return null;
|
|
115
115
|
}
|
|
116
116
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
117
|
-
children: [/*#__PURE__*/_jsx(
|
|
117
|
+
children: [/*#__PURE__*/_jsx("button", {
|
|
118
118
|
className: `${baseClass}__toggle`,
|
|
119
119
|
onClick: () => {
|
|
120
120
|
toggleModal(modalSlug);
|
|
121
121
|
},
|
|
122
|
+
type: "button",
|
|
122
123
|
children: t('version:unpublish')
|
|
123
124
|
}), /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
124
125
|
body: t('version:aboutToUnpublishSelection', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","toast","useAuth","useConfig","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","toast","useAuth","useConfig","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","baseClass","UnpublishMany","props","collection","slug","labels","plural","singular","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","searchParams","getQueryParams","selectAll","router","clearRouteCache","collectionPermissions","collections","hasPermission","update","modalSlug","addDefaultError","error","handleUnpublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","addQueryPrefix","forEach","_err","drafts","None","_jsxs","Fragment","_jsx","className","onClick","type","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/UnpublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nexport type UnpublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nconst baseClass = 'unpublish-many'\n\nexport const UnpublishMany: React.FC<UnpublishManyProps> = (props) => {\n const { collection: { slug, labels: { plural, singular }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const searchParams = useSearchParams()\n const { getQueryParams, selectAll } = useSelection()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update\n\n const modalSlug = `unpublish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleUnpublish = useCallback(async () => {\n await requests\n .patch(`${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'draft' } })}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n serverURL,\n api,\n slug,\n getQueryParams,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <button\n className={`${baseClass}__toggle`}\n onClick={() => {\n toggleModal(modalSlug)\n }}\n type=\"button\"\n >\n {t('version:unpublish')}\n </button>\n <ConfirmationModal\n body={t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={modalSlug}\n onConfirm={handleUnpublish}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@import '../../scss/styles.scss';
|
|
2
|
+
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.unpublish-many {
|
|
5
|
+
&__toggle {
|
|
6
|
+
font-size: inherit;
|
|
7
|
+
line-height: inherit;
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
background: transparent;
|
|
10
|
+
color: var(--theme-elevation-800);
|
|
11
|
+
white-space: nowrap;
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
text-overflow: ellipsis;
|
|
14
|
+
border: 0;
|
|
15
|
+
padding: 0;
|
|
16
|
+
align-items: center;
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
text-decoration: underline;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"field-types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"names":[],"mappings":"AAqFA,QAAA,MAAM,mBAAmB,EAAE;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC9C,CAAA;CA0DF,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -49,6 +49,10 @@ const like = {
|
|
|
49
49
|
label: 'isLike',
|
|
50
50
|
value: 'like'
|
|
51
51
|
};
|
|
52
|
+
const notLike = {
|
|
53
|
+
label: 'isNotLike',
|
|
54
|
+
value: 'not_like'
|
|
55
|
+
};
|
|
52
56
|
const contains = {
|
|
53
57
|
label: 'contains',
|
|
54
58
|
value: 'contains'
|
|
@@ -60,7 +64,7 @@ const fieldTypeConditions = {
|
|
|
60
64
|
},
|
|
61
65
|
code: {
|
|
62
66
|
component: 'Text',
|
|
63
|
-
operators: [...base, like, contains]
|
|
67
|
+
operators: [...base, like, notLike, contains]
|
|
64
68
|
},
|
|
65
69
|
date: {
|
|
66
70
|
component: 'Date',
|
|
@@ -72,7 +76,7 @@ const fieldTypeConditions = {
|
|
|
72
76
|
},
|
|
73
77
|
json: {
|
|
74
78
|
component: 'Text',
|
|
75
|
-
operators: [...base, like, contains, within, intersects]
|
|
79
|
+
operators: [...base, like, contains, notLike, within, intersects]
|
|
76
80
|
},
|
|
77
81
|
number: {
|
|
78
82
|
component: 'Number',
|
|
@@ -92,7 +96,7 @@ const fieldTypeConditions = {
|
|
|
92
96
|
},
|
|
93
97
|
richText: {
|
|
94
98
|
component: 'Text',
|
|
95
|
-
operators: [...base, like, contains]
|
|
99
|
+
operators: [...base, like, notLike, contains]
|
|
96
100
|
},
|
|
97
101
|
select: {
|
|
98
102
|
component: 'Select',
|
|
@@ -100,11 +104,11 @@ const fieldTypeConditions = {
|
|
|
100
104
|
},
|
|
101
105
|
text: {
|
|
102
106
|
component: 'Text',
|
|
103
|
-
operators: [...base, like, contains]
|
|
107
|
+
operators: [...base, like, notLike, contains]
|
|
104
108
|
},
|
|
105
109
|
textarea: {
|
|
106
110
|
component: 'Text',
|
|
107
|
-
operators: [...base, like, contains]
|
|
111
|
+
operators: [...base, like, notLike, contains]
|
|
108
112
|
},
|
|
109
113
|
upload: {
|
|
110
114
|
component: 'Text',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-types.js","names":["boolean","label","value","base","numeric","geo","within","intersects","like","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload"],"sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"sourcesContent":["'use client'\nconst boolean = [\n {\n label: 'equals',\n value: 'equals',\n },\n {\n label: 'isNotEqualTo',\n value: 'not_equals',\n },\n]\n\nconst base = [\n ...boolean,\n {\n label: 'isIn',\n value: 'in',\n },\n {\n label: 'isNotIn',\n value: 'not_in',\n },\n {\n label: 'exists',\n value: 'exists',\n },\n]\n\nconst numeric = [\n ...base,\n {\n label: 'isGreaterThan',\n value: 'greater_than',\n },\n {\n label: 'isLessThan',\n value: 'less_than',\n },\n {\n label: 'isLessThanOrEqualTo',\n value: 'less_than_equal',\n },\n {\n label: 'isGreaterThanOrEqualTo',\n value: 'greater_than_equal',\n },\n]\n\nconst geo = [\n ...boolean,\n {\n label: 'exists',\n value: 'exists',\n },\n {\n label: 'near',\n value: 'near',\n },\n]\n\nconst within = {\n label: 'within',\n value: 'within',\n}\n\nconst intersects = {\n label: 'intersects',\n value: 'intersects',\n}\n\nconst like = {\n label: 'isLike',\n value: 'like',\n}\n\nconst contains = {\n label: 'contains',\n value: 'contains',\n}\n\nconst fieldTypeConditions: {\n [key: string]: {\n component: string\n operators: { label: string; value: string }[]\n }\n} = {\n checkbox: {\n component: 'Text',\n operators: boolean,\n },\n code: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n date: {\n component: 'Date',\n operators: [...base, ...numeric],\n },\n email: {\n component: 'Text',\n operators: [...base, contains],\n },\n json: {\n component: 'Text',\n operators: [...base, like, contains, within, intersects],\n },\n number: {\n component: 'Number',\n operators: [...base, ...numeric],\n },\n point: {\n component: 'Point',\n operators: [...geo, within, intersects],\n },\n radio: {\n component: 'Select',\n operators: [...base],\n },\n relationship: {\n component: 'Relationship',\n operators: [...base],\n },\n richText: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n select: {\n component: 'Select',\n operators: [...base],\n },\n text: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n textarea: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n upload: {\n component: 'Text',\n operators: [...base],\n },\n}\n\nexport default fieldTypeConditions\n"],"mappings":"AAAA;;AACA,MAAMA,OAAA,GAAU,CACd;EACEC,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,GACA;EACED,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,EACD;AAED,MAAMC,IAAA,GAAO,C,GACRH,OAAA,EACH;EACEC,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,GACA;EACED,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,GACA;EACED,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,EACD;AAED,MAAME,OAAA,GAAU,C,GACXD,IAAA,EACH;EACEF,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,GACA;EACED,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,GACA;EACED,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,GACA;EACED,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,EACD;AAED,MAAMG,GAAA,GAAM,C,GACPL,OAAA,EACH;EACEC,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,GACA;EACED,KAAA,EAAO;EACPC,KAAA,EAAO;AACT,EACD;AAED,MAAMI,MAAA,GAAS;EACbL,KAAA,EAAO;EACPC,KAAA,EAAO;AACT;AAEA,MAAMK,UAAA,GAAa;EACjBN,KAAA,EAAO;EACPC,KAAA,EAAO;AACT;AAEA,MAAMM,IAAA,GAAO;EACXP,KAAA,EAAO;EACPC,KAAA,EAAO;AACT;AAEA,MAAMO,QAAA,GAAW;
|
|
1
|
+
{"version":3,"file":"field-types.js","names":["boolean","label","value","base","numeric","geo","within","intersects","like","notLike","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload"],"sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"sourcesContent":["'use client'\nconst boolean = [\n {\n label: 'equals',\n value: 'equals',\n },\n {\n label: 'isNotEqualTo',\n value: 'not_equals',\n },\n]\n\nconst base = [\n ...boolean,\n {\n label: 'isIn',\n value: 'in',\n },\n {\n label: 'isNotIn',\n value: 'not_in',\n },\n {\n label: 'exists',\n value: 'exists',\n },\n]\n\nconst numeric = [\n ...base,\n {\n label: 'isGreaterThan',\n value: 'greater_than',\n },\n {\n label: 'isLessThan',\n value: 'less_than',\n },\n {\n label: 'isLessThanOrEqualTo',\n value: 'less_than_equal',\n },\n {\n label: 'isGreaterThanOrEqualTo',\n value: 'greater_than_equal',\n },\n]\n\nconst geo = [\n ...boolean,\n {\n label: 'exists',\n value: 'exists',\n },\n {\n label: 'near',\n value: 'near',\n },\n]\n\nconst within = {\n label: 'within',\n value: 'within',\n}\n\nconst intersects = {\n label: 'intersects',\n value: 'intersects',\n}\n\nconst like = {\n label: 'isLike',\n value: 'like',\n}\n\nconst notLike = {\n label: 'isNotLike',\n value: 'not_like',\n}\n\nconst contains = {\n label: 'contains',\n value: 'contains',\n}\n\nconst fieldTypeConditions: {\n [key: string]: {\n component: string\n operators: { label: string; value: string }[]\n }\n} = {\n checkbox: {\n component: 'Text',\n operators: boolean,\n },\n code: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n date: {\n component: 'Date',\n operators: [...base, ...numeric],\n },\n email: {\n component: 'Text',\n operators: [...base, contains],\n },\n json: {\n component: 'Text',\n operators: [...base, like, contains, notLike, within, intersects],\n },\n number: {\n component: 'Number',\n operators: [...base, ...numeric],\n },\n point: {\n component: 'Point',\n operators: [...geo, within, intersects],\n },\n radio: {\n component: 'Select',\n operators: [...base],\n },\n relationship: {\n component: 'Relationship',\n operators: [...base],\n },\n richText: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n select: {\n component: 'Select',\n operators: [...base],\n },\n text: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n textarea: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n upload: {\n component: 'Text',\n operators: [...base],\n },\n}\n\nexport default fieldTypeConditions\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -208,6 +208,8 @@ export { RouteCache as RouteCacheProvider, useRouteCache, } from '../../provider
|
|
|
208
208
|
export { ScrollInfoProvider, useScrollInfo } from '../../providers/ScrollInfo/index.js';
|
|
209
209
|
export { SearchParamsProvider, useSearchParams } from '../../providers/SearchParams/index.js';
|
|
210
210
|
export { SelectionProvider, useSelection } from '../../providers/Selection/index.js';
|
|
211
|
+
export { UploadHandlersProvider, useUploadHandlers } from '../../providers/UploadHandlers/index.js';
|
|
212
|
+
export type { UploadHandlersContext } from '../../providers/UploadHandlers/index.js';
|
|
211
213
|
export { defaultTheme, type Theme, ThemeProvider, useTheme } from '../../providers/Theme/index.js';
|
|
212
214
|
export { TranslationProvider, useTranslation } from '../../providers/Translation/index.js';
|
|
213
215
|
export { useWindowInfo, WindowInfoProvider } from '../../providers/WindowInfo/index.js';
|