@payloadcms/ui 3.0.0-canary.4eb1bfc → 3.0.0-canary.51be7be
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/AddNewRelation/index.scss +36 -34
- package/dist/elements/AppHeader/index.scss +151 -150
- package/dist/elements/ArrayAction/index.scss +23 -21
- package/dist/elements/Autosave/index.scss +4 -2
- package/dist/elements/Banner/index.scss +51 -49
- package/dist/elements/BulkUpload/ActionsBar/index.scss +45 -43
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -1
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +2 -0
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.scss +23 -21
- package/dist/elements/BulkUpload/AddingFilesView/index.scss +16 -14
- package/dist/elements/BulkUpload/DrawerCloseButton/index.scss +23 -21
- package/dist/elements/BulkUpload/EditForm/index.scss +6 -4
- package/dist/elements/BulkUpload/FileSidebar/index.scss +214 -212
- package/dist/elements/BulkUpload/Header/index.scss +11 -9
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +22 -42
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Button/index.scss +202 -200
- package/dist/elements/Card/index.scss +58 -56
- package/dist/elements/CodeEditor/index.scss +16 -14
- package/dist/elements/Collapsible/index.scss +125 -123
- package/dist/elements/ColumnSelector/index.scss +36 -34
- package/dist/elements/CopyToClipboard/index.scss +21 -19
- package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +1 -1
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.scss +309 -307
- package/dist/elements/DatePicker/library.scss +859 -0
- package/dist/elements/DeleteDocument/index.scss +32 -30
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +16 -5
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.scss +29 -27
- package/dist/elements/DocumentControls/index.js +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +190 -188
- package/dist/elements/DocumentDrawer/index.scss +55 -53
- package/dist/elements/DocumentFields/index.scss +144 -142
- package/dist/elements/Drawer/index.scss +111 -109
- package/dist/elements/Dropzone/index.scss +32 -30
- package/dist/elements/DuplicateDocument/index.scss +31 -29
- package/dist/elements/EditMany/index.scss +162 -160
- package/dist/elements/EditUpload/index.scss +180 -178
- package/dist/elements/ErrorPill/index.scss +27 -25
- package/dist/elements/FieldSelect/index.scss +4 -2
- package/dist/elements/FileDetails/DraggableFileDetails/index.scss +25 -23
- package/dist/elements/FileDetails/FileMeta/index.scss +21 -19
- package/dist/elements/FileDetails/StaticFileDetails/index.scss +104 -102
- package/dist/elements/GenerateConfirmation/index.scss +29 -27
- package/dist/elements/Gutter/index.scss +14 -12
- package/dist/elements/Hamburger/index.scss +38 -36
- package/dist/elements/IDLabel/index.scss +11 -9
- package/dist/elements/ListControls/index.scss +71 -69
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +61 -57
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/index.scss +93 -91
- package/dist/elements/ListHeader/index.scss +9 -7
- package/dist/elements/ListSelection/index.scss +14 -12
- package/dist/elements/Loading/index.scss +108 -106
- package/dist/elements/Localizer/LocalizerLabel/index.scss +44 -42
- package/dist/elements/Localizer/index.scss +7 -5
- package/dist/elements/Locked/index.scss +11 -9
- package/dist/elements/Nav/NavToggler/index.scss +9 -7
- package/dist/elements/NavGroup/index.scss +43 -41
- package/dist/elements/Pagination/ClickableArrow/index.scss +34 -32
- package/dist/elements/Pagination/index.scss +40 -38
- package/dist/elements/PerPage/index.scss +37 -35
- package/dist/elements/Pill/index.scss +103 -101
- package/dist/elements/Popup/PopupButtonList/index.scss +45 -43
- package/dist/elements/Popup/PopupTrigger/index.scss +23 -21
- package/dist/elements/Popup/index.scss +185 -183
- package/dist/elements/PreviewSizes/index.scss +115 -113
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +16 -5
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/PublishMany/index.scss +28 -26
- package/dist/elements/ReactSelect/ClearIndicator/index.scss +6 -4
- package/dist/elements/ReactSelect/DropdownIndicator/index.scss +11 -9
- package/dist/elements/ReactSelect/MultiValue/index.scss +26 -24
- package/dist/elements/ReactSelect/MultiValueLabel/index.scss +16 -14
- package/dist/elements/ReactSelect/MultiValueRemove/index.scss +20 -18
- package/dist/elements/ReactSelect/ValueContainer/index.scss +22 -20
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +2 -0
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.scss +66 -59
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +5 -3
- package/dist/elements/RelationshipTable/index.scss +21 -19
- package/dist/elements/RenderTitle/index.scss +7 -5
- package/dist/elements/SearchFilter/index.scss +31 -28
- package/dist/elements/SelectAll/index.scss +5 -3
- package/dist/elements/SelectRow/index.scss +6 -4
- package/dist/elements/ShimmerEffect/index.scss +26 -24
- package/dist/elements/SortColumn/index.scss +51 -49
- package/dist/elements/SortComplex/index.scss +27 -25
- package/dist/elements/Status/index.scss +45 -43
- package/dist/elements/StayLoggedIn/index.scss +28 -26
- package/dist/elements/StepNav/index.scss +62 -61
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.scss +20 -18
- package/dist/elements/Table/DefaultCell/fields/Code/index.scss +22 -20
- package/dist/elements/Table/DefaultCell/fields/File/index.scss +18 -16
- package/dist/elements/Table/DefaultCell/fields/JSON/index.scss +20 -18
- package/dist/elements/Table/DefaultCell/index.js +2 -2
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/index.scss +74 -72
- package/dist/elements/Thumbnail/index.scss +37 -35
- package/dist/elements/ThumbnailCard/index.scss +31 -29
- package/dist/elements/Tooltip/index.scss +77 -75
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +16 -5
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.scss +28 -26
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +2 -0
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/index.scss +122 -120
- package/dist/elements/WhereBuilder/Condition/Number/index.scss +4 -2
- package/dist/elements/WhereBuilder/Condition/Relationship/index.scss +9 -7
- package/dist/elements/WhereBuilder/Condition/Text/index.scss +4 -2
- package/dist/elements/WhereBuilder/Condition/index.scss +43 -41
- package/dist/elements/WhereBuilder/index.scss +28 -26
- package/dist/exports/client/{DatePicker-HNJMUG32.js → DatePicker-2ZXVD574.js} +2 -2
- package/dist/exports/client/{chunk-IHJK2MAT.js → chunk-ED2SHEMU.js} +2 -2
- package/dist/exports/client/{chunk-IHJK2MAT.js.map → chunk-ED2SHEMU.js.map} +3 -3
- package/dist/exports/client/index.d.ts +2 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +22 -19
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/index.scss +74 -72
- package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.scss +25 -23
- package/dist/fields/Blocks/BlocksDrawer/index.scss +36 -34
- package/dist/fields/Blocks/SectionTitle/index.scss +51 -49
- package/dist/fields/Blocks/index.scss +89 -87
- package/dist/fields/Checkbox/index.scss +107 -105
- package/dist/fields/Code/index.scss +18 -16
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.scss +8 -6
- package/dist/fields/ConfirmPassword/index.scss +18 -16
- package/dist/fields/DateTime/index.scss +13 -11
- package/dist/fields/Email/index.scss +21 -19
- package/dist/fields/FieldDescription/index.scss +9 -7
- package/dist/fields/FieldError/index.scss +13 -11
- package/dist/fields/FieldLabel/index.scss +17 -15
- package/dist/fields/Group/index.scss +107 -105
- package/dist/fields/JSON/index.scss +11 -9
- package/dist/fields/Number/index.scss +19 -17
- package/dist/fields/Password/index.scss +18 -16
- package/dist/fields/Point/index.scss +33 -31
- package/dist/fields/RadioGroup/Radio/index.scss +58 -56
- package/dist/fields/RadioGroup/index.scss +57 -55
- package/dist/fields/Relationship/index.scss +44 -42
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +40 -38
- package/dist/fields/Relationship/select-components/SingleValue/index.scss +43 -41
- package/dist/fields/Row/index.scss +31 -29
- package/dist/fields/Select/index.scss +16 -14
- package/dist/fields/Tabs/Tab/index.scss +58 -56
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +69 -53
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Tabs/index.scss +46 -44
- package/dist/fields/Text/index.scss +23 -21
- package/dist/fields/Textarea/index.scss +89 -87
- package/dist/fields/Upload/HasMany/index.scss +20 -18
- package/dist/fields/Upload/HasOne/index.scss +5 -3
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +39 -36
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.scss +44 -42
- package/dist/fields/Upload/UploadCard/index.scss +21 -19
- package/dist/fields/Upload/index.scss +49 -47
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +7 -0
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.scss +5 -3
- package/dist/forms/RenderFields/index.scss +47 -45
- package/dist/forms/Submit/index.scss +5 -3
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +1 -1
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/graphics/Account/Default/index.scss +43 -41
- package/dist/icons/Calendar/index.scss +8 -6
- package/dist/icons/Check/index.scss +9 -7
- package/dist/icons/Chevron/index.scss +18 -16
- package/dist/icons/CloseMenu/index.scss +7 -5
- package/dist/icons/Copy/index.scss +9 -7
- package/dist/icons/DragHandle/index.scss +9 -7
- package/dist/icons/Edit/index.scss +9 -7
- package/dist/icons/Line/index.scss +8 -6
- package/dist/icons/Link/index.scss +8 -6
- package/dist/icons/Lock/index.scss +6 -4
- package/dist/icons/LogOut/index.scss +8 -6
- package/dist/icons/Menu/index.scss +6 -4
- package/dist/icons/More/index.scss +8 -6
- package/dist/icons/Plus/index.scss +6 -4
- package/dist/icons/Search/index.scss +8 -6
- package/dist/icons/Swap/index.scss +9 -7
- package/dist/icons/X/index.scss +6 -4
- package/dist/providers/Auth/index.d.ts +9 -4
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +51 -56
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.js +21 -3
- package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +4 -0
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/Selection/index.js +3 -3
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/scss/app.scss +166 -162
- package/dist/scss/colors.scss +256 -254
- package/dist/scss/resets.scss +9 -7
- package/dist/scss/toastify.scss +42 -40
- package/dist/scss/toasts.scss +105 -103
- package/dist/scss/type.scss +81 -79
- package/dist/styles.css +1 -1
- package/package.json +5 -5
- /package/dist/exports/client/{DatePicker-HNJMUG32.js.map → DatePicker-2ZXVD574.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","names":["MissingEditorProp","fieldAffectsData","fieldIsPresentationalOnly","getComponent","generateFieldPath","parentPath","name","tabPath","createClientField","clientField","createMappedComponent","field","incomingField","i18n","importMap","payload","serverOnlyFieldProperties","forEach","key","_isPresentational","isHidden","hidden","disabledFromAdmin","admin","disabled","_schemaPath","label","t","CustomLabel","components","Label","serverProps","undefined","style","width","Object","flex","type","fields","createClientFields","clientFields","disableAddingID","RowLabel","blocks","length","i","block","clientBlock","slug","custom","imageAltText","imageURL","labels","singular","plural","editor","Error","Field","FieldComponent","Cell","CellComponent","generateComponentMap","Component","richTextServerProps","identifier","payloadComponent","silent","actualGenerateComponentMap","result","schemaPath","richTextComponentMap","tabs","tab","clientTab","options","option","value","serverOnlyFieldAdminProperties","fieldServerProps","description","Description","Filter","beforeInput","afterInput","newClientFields","newField","push","hasID","findIndex","f","db","defaultIDType","disableBulkEdit","localized"],"sources":["../../../../src/providers/Config/createClientConfig/fields.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n AdminClient,\n ArrayFieldClient,\n BlocksFieldClient,\n ClientBlock,\n ClientField,\n CreateMappedComponent,\n Field,\n FieldLabelClientComponent,\n FieldLabelServerComponent,\n ImportMap,\n LabelsClient,\n MappedComponent,\n Payload,\n RadioFieldClient,\n RichTextFieldClient,\n RichTextGenerateComponentMap,\n RowFieldClient,\n RowLabelComponent,\n SelectFieldClient,\n ServerFieldBase,\n ServerOnlyFieldAdminProperties,\n ServerOnlyFieldProperties,\n TabsFieldClient,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\n\nimport { getComponent } from './getComponent.js'\n\nfunction generateFieldPath(parentPath: string, name: string): string {\n let tabPath = parentPath || ''\n if (parentPath && name) {\n tabPath = `${parentPath}.${name}`\n } else if (!parentPath && name) {\n tabPath = name\n }\n\n return tabPath\n}\n\nexport const createClientField = ({\n clientField,\n createMappedComponent,\n field: incomingField,\n i18n,\n importMap,\n parentPath,\n payload,\n}: {\n clientField: ClientField\n createMappedComponent: CreateMappedComponent\n field: Field\n i18n: I18nClient\n importMap: ImportMap\n parentPath?: string\n payload: Payload\n}): ClientField => {\n const serverOnlyFieldProperties: Partial<ServerOnlyFieldProperties>[] = [\n 'hooks',\n 'access',\n 'validate',\n 'defaultValue',\n 'filterOptions', // This is a `relationship` and `upload` only property\n 'editor', // This is a `richText` only property\n 'custom',\n 'typescriptSchema',\n 'dbName', // can be a function\n 'enumName', // can be a function\n // the following props are handled separately (see below):\n // `label`\n // `fields`\n // `blocks`\n // `tabs`\n // `admin`\n ]\n\n serverOnlyFieldProperties.forEach((key) => {\n if (key in clientField) {\n delete clientField[key]\n }\n })\n\n if (fieldIsPresentationalOnly(incomingField)) {\n clientField._isPresentational = true\n }\n\n const isHidden = 'hidden' in incomingField && incomingField?.hidden\n const disabledFromAdmin =\n incomingField?.admin && 'disabled' in incomingField.admin && incomingField.admin.disabled\n\n if (fieldAffectsData(clientField) && (isHidden || disabledFromAdmin)) {\n return null\n }\n\n clientField._schemaPath = generateFieldPath(\n parentPath,\n fieldAffectsData(clientField) ? clientField.name : '',\n )\n\n if (\n 'label' in clientField &&\n 'label' in incomingField &&\n typeof incomingField.label === 'function'\n ) {\n clientField.label = incomingField.label({ t: i18n.t })\n }\n\n const CustomLabel: FieldLabelClientComponent | FieldLabelServerComponent | RowLabelComponent =\n 'admin' in incomingField &&\n 'components' in incomingField.admin &&\n 'Label' in incomingField.admin.components &&\n incomingField.admin.components.Label\n\n const serverProps: {\n serverProps: ServerFieldBase\n } = {\n serverProps: {\n clientField: undefined,\n field: incomingField,\n },\n }\n\n if ('admin' in incomingField && 'width' in incomingField.admin) {\n clientField.admin.style = {\n ...clientField.admin.style,\n '--field-width': clientField.admin.width,\n width: undefined, // avoid needlessly adding this to the element's style attribute\n }\n } else {\n if (!(clientField.admin instanceof Object)) {\n clientField.admin = {}\n }\n if (!(clientField.admin.style instanceof Object)) {\n clientField.admin.style = {}\n }\n clientField.admin.style.flex = '1 1 auto'\n }\n\n switch (incomingField.type) {\n case 'array':\n case 'group':\n case 'collapsible':\n case 'row': {\n const field = clientField as unknown as RowFieldClient\n\n field.fields = createClientFields({\n clientFields: field.fields,\n createMappedComponent,\n disableAddingID: incomingField.type !== 'array',\n fields: incomingField.fields,\n i18n,\n importMap,\n parentPath: field._schemaPath,\n payload,\n })\n\n if (incomingField?.admin?.components && 'RowLabel' in incomingField.admin.components) {\n ;(field as unknown as ArrayFieldClient).admin.components.RowLabel = createMappedComponent(\n incomingField.admin.components.RowLabel,\n serverProps,\n undefined,\n 'incomingField.admin.components.RowLabel',\n )\n }\n\n break\n }\n\n case 'blocks': {\n const field = clientField as unknown as BlocksFieldClient\n\n if (incomingField.blocks?.length) {\n for (let i = 0; i < incomingField.blocks.length; i++) {\n const block = incomingField.blocks[i]\n const clientBlock: ClientBlock = {\n slug: block.slug,\n admin: {\n components: {},\n custom: block.admin?.custom,\n },\n fields: field.blocks[i].fields,\n imageAltText: block.imageAltText,\n imageURL: block.imageURL,\n }\n\n if (block.labels) {\n clientBlock.labels = {} as unknown as LabelsClient\n if (block.labels.singular) {\n if (typeof block.labels.singular === 'function') {\n clientBlock.labels.singular = block.labels.singular({ t: i18n.t })\n } else {\n clientBlock.labels.singular = block.labels.singular\n }\n if (typeof block.labels.plural === 'function') {\n clientBlock.labels.plural = block.labels.plural({ t: i18n.t })\n } else {\n clientBlock.labels.plural = block.labels.plural\n }\n }\n }\n\n if (block.admin?.components?.Label) {\n clientBlock.admin.components.Label = createMappedComponent(\n block.admin.components.Label,\n serverProps,\n undefined,\n 'block.admin.components.Label',\n )\n }\n\n clientBlock.fields = createClientFields({\n clientFields: clientBlock.fields,\n createMappedComponent,\n fields: block.fields,\n i18n,\n importMap,\n parentPath: `${field._schemaPath}.${block.slug}`,\n payload,\n })\n\n field.blocks[i] = clientBlock\n }\n }\n\n break\n }\n\n case 'richText': {\n const field = clientField\n\n if (!incomingField?.editor) {\n throw new MissingEditorProp(incomingField) // 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 incomingField?.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 field.admin.components.Field = createMappedComponent(\n incomingField.editor.FieldComponent,\n serverProps,\n undefined,\n 'incomingField.editor.FieldComponent',\n )\n\n field.admin.components.Cell = createMappedComponent(\n incomingField.editor.CellComponent,\n serverProps,\n undefined,\n 'incomingField.editor.CellComponent',\n )\n\n if (incomingField.editor.generateComponentMap) {\n const { Component: generateComponentMap, serverProps: richTextServerProps } = getComponent({\n identifier: 'richText-generateComponentMap',\n importMap,\n payloadComponent: incomingField.editor.generateComponentMap,\n silent: true,\n })\n\n if (generateComponentMap) {\n const actualGenerateComponentMap: RichTextGenerateComponentMap = (\n generateComponentMap as any\n )(richTextServerProps)\n\n const result = actualGenerateComponentMap({\n clientField: field as RichTextFieldClient,\n createMappedComponent,\n field: incomingField,\n i18n,\n importMap,\n payload,\n schemaPath: field._schemaPath,\n })\n\n ;(field as RichTextFieldClient).richTextComponentMap = result\n }\n }\n break\n }\n\n case 'tabs': {\n const field = clientField as unknown as TabsFieldClient\n\n if (incomingField.tabs?.length) {\n for (let i = 0; i < incomingField.tabs.length; i++) {\n const tab = incomingField.tabs[i]\n const clientTab = field.tabs[i]\n\n serverOnlyFieldProperties.forEach((key) => {\n if (key in clientTab) {\n delete clientTab[key]\n }\n })\n\n clientTab.fields = createClientFields({\n clientFields: clientTab.fields,\n createMappedComponent,\n disableAddingID: true,\n fields: tab.fields,\n i18n,\n importMap,\n parentPath: field._schemaPath,\n payload,\n })\n }\n }\n\n break\n }\n\n // case 'joins': {\n //\n // }\n\n case 'select':\n case 'radio': {\n const field = clientField as RadioFieldClient | SelectFieldClient\n\n if (incomingField.options?.length) {\n for (let i = 0; i < incomingField.options.length; i++) {\n const option = incomingField.options[i]\n\n if (typeof option === 'object' && typeof option.label === 'function') {\n field.options[i] = {\n label: option.label({ t: i18n.t }),\n value: option.value,\n }\n }\n }\n }\n\n break\n }\n\n default:\n break\n }\n\n const serverOnlyFieldAdminProperties: Partial<ServerOnlyFieldAdminProperties>[] = ['condition']\n\n if (!clientField.admin) {\n clientField.admin = {}\n }\n\n if (!clientField.admin.components) {\n clientField.admin.components = {}\n }\n\n serverOnlyFieldAdminProperties.forEach((key) => {\n if (key in clientField.admin) {\n delete clientField.admin[key]\n }\n })\n\n const fieldServerProps: {\n serverProps: ServerFieldBase\n } = {\n serverProps: {\n clientField,\n field: incomingField,\n },\n }\n\n type FieldWithDescription = {\n admin: AdminClient\n } & ClientField\n\n if (incomingField.admin && 'description' in incomingField.admin) {\n if (\n typeof incomingField.admin?.description === 'string' ||\n typeof incomingField.admin?.description === 'object'\n ) {\n ;(clientField as FieldWithDescription).admin.description = incomingField.admin.description\n } else if (typeof incomingField.admin?.description === 'function') {\n ;(clientField as FieldWithDescription).admin.description = incomingField.admin?.description({\n t: i18n.t,\n })\n }\n }\n\n if (incomingField?.admin?.components?.Cell !== undefined) {\n clientField.admin.components.Cell = createMappedComponent(\n incomingField.admin.components.Cell,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Cell',\n )\n }\n\n type FieldWithDescriptionComponent = {\n admin: AdminClient\n } & ClientField\n\n if (\n incomingField?.admin?.components &&\n 'Description' in incomingField.admin.components &&\n incomingField?.admin?.components?.Description !== undefined\n ) {\n ;(clientField as FieldWithDescriptionComponent).admin.components.Description =\n createMappedComponent(\n incomingField.admin.components.Description,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Description',\n )\n }\n\n type FieldWithErrorComponent = {\n admin: {\n components: {\n Error: MappedComponent\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'Error' in incomingField.admin.components &&\n incomingField.admin.components.Error !== undefined\n ) {\n ;(clientField as FieldWithErrorComponent).admin.components.Error = createMappedComponent(\n incomingField.admin.components.Error,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Error',\n )\n }\n\n if (incomingField?.admin?.components?.Field !== undefined) {\n clientField.admin.components.Field = createMappedComponent(\n incomingField.admin.components.Field,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Field',\n )\n }\n\n if (\n incomingField?.admin?.components &&\n 'Filter' in incomingField.admin.components &&\n incomingField.admin.components.Filter !== undefined\n ) {\n clientField.admin.components.Filter = createMappedComponent(\n incomingField.admin.components.Filter,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Filter',\n )\n }\n\n type FieldWithLabelComponent = {\n admin: {\n components: {\n Label: MappedComponent\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'Label' in incomingField.admin.components &&\n incomingField.admin.components.Label !== undefined\n ) {\n ;(clientField as FieldWithLabelComponent).admin.components.Label = createMappedComponent(\n CustomLabel,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Label',\n )\n }\n\n type FieldWithBeforeInputComponent = {\n admin: {\n components: {\n beforeInput: MappedComponent[]\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'beforeInput' in incomingField.admin.components &&\n incomingField.admin.components.beforeInput !== undefined\n ) {\n ;(clientField as FieldWithBeforeInputComponent).admin.components.beforeInput =\n createMappedComponent(\n incomingField.admin?.components?.beforeInput,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.beforeInput',\n )\n }\n\n type FieldWithAfterInputComponent = {\n admin: {\n components: {\n afterInput: MappedComponent[]\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'afterInput' in incomingField.admin.components &&\n incomingField.admin.components.afterInput !== undefined\n ) {\n ;(clientField as FieldWithAfterInputComponent).admin.components.afterInput =\n createMappedComponent(\n incomingField.admin?.components?.afterInput,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.afterInput',\n )\n }\n\n return clientField\n}\n\nexport const createClientFields = ({\n clientFields,\n createMappedComponent,\n disableAddingID,\n fields,\n i18n,\n importMap,\n parentPath,\n payload,\n}: {\n clientFields: ClientField[]\n createMappedComponent: CreateMappedComponent\n disableAddingID?: boolean\n fields: Field[]\n i18n: I18nClient\n importMap: ImportMap\n parentPath?: string\n payload: Payload\n}): ClientField[] => {\n const newClientFields: ClientField[] = []\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i]\n\n const newField = createClientField({\n clientField: clientFields[i],\n createMappedComponent,\n field,\n i18n,\n importMap,\n parentPath,\n payload,\n })\n\n if (newField) {\n newClientFields.push(newField)\n }\n }\n\n const hasID = newClientFields.findIndex((f) => fieldAffectsData(f) && f.name === 'id') > -1\n\n if (!disableAddingID && !hasID) {\n newClientFields.push({\n name: 'id',\n type: payload.db.defaultIDType === 'number' ? 'number' : 'text',\n _schemaPath: generateFieldPath(parentPath, 'id'),\n admin: {\n components: {\n Field: null,\n },\n description: 'The unique identifier for this document',\n disableBulkEdit: true,\n hidden: true,\n },\n hidden: true,\n label: 'ID',\n localized: undefined,\n })\n }\n return newClientFields\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"fields.js","names":["deepCopyObjectSimple","MissingEditorProp","fieldAffectsData","fieldIsPresentationalOnly","getComponent","generateFieldPath","parentPath","name","tabPath","createClientField","clientField","createMappedComponent","field","incomingField","i18n","importMap","payload","serverOnlyFieldProperties","forEach","key","_isPresentational","isHidden","hidden","disabledFromAdmin","admin","disabled","_schemaPath","label","t","CustomLabel","components","Label","serverProps","undefined","style","width","Object","flex","type","fields","createClientFields","clientFields","disableAddingID","RowLabel","blocks","length","i","block","clientBlock","slug","custom","imageAltText","imageURL","labels","singular","plural","editor","Error","FieldComponent","clientProps","Field","CellComponent","Cell","generateComponentMap","Component","richTextServerProps","identifier","payloadComponent","silent","actualGenerateComponentMap","result","schemaPath","richTextComponentMap","tabs","tab","clientTab","options","option","value","serverOnlyFieldAdminProperties","fieldServerProps","description","Description","Filter","beforeInput","afterInput","newClientFields","newField","push","hasID","findIndex","f","db","defaultIDType","disableBulkEdit","localized"],"sources":["../../../../src/providers/Config/createClientConfig/fields.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n AdminClient,\n ArrayFieldClient,\n BlocksFieldClient,\n ClientBlock,\n ClientField,\n CreateMappedComponent,\n Field,\n FieldLabelClientComponent,\n FieldLabelServerComponent,\n ImportMap,\n LabelsClient,\n MappedComponent,\n Payload,\n PayloadComponent,\n RadioFieldClient,\n RichTextFieldClient,\n RichTextGenerateComponentMap,\n RowFieldClient,\n RowLabelComponent,\n SelectFieldClient,\n ServerFieldBase,\n ServerOnlyFieldAdminProperties,\n ServerOnlyFieldProperties,\n TabsFieldClient,\n} from 'payload'\n\nimport { deepCopyObjectSimple, MissingEditorProp } from 'payload'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\n\nimport { getComponent } from './getComponent.js'\n\nfunction generateFieldPath(parentPath: string, name: string): string {\n let tabPath = parentPath || ''\n if (parentPath && name) {\n tabPath = `${parentPath}.${name}`\n } else if (!parentPath && name) {\n tabPath = name\n }\n\n return tabPath\n}\n\nexport const createClientField = ({\n clientField,\n createMappedComponent,\n field: incomingField,\n i18n,\n importMap,\n parentPath,\n payload,\n}: {\n clientField: ClientField\n createMappedComponent: CreateMappedComponent\n field: Field\n i18n: I18nClient\n importMap: ImportMap\n parentPath?: string\n payload: Payload\n}): ClientField => {\n const serverOnlyFieldProperties: Partial<ServerOnlyFieldProperties>[] = [\n 'hooks',\n 'access',\n 'validate',\n 'defaultValue',\n 'filterOptions', // This is a `relationship` and `upload` only property\n 'editor', // This is a `richText` only property\n 'custom',\n 'typescriptSchema',\n 'dbName', // can be a function\n 'enumName', // can be a function\n // the following props are handled separately (see below):\n // `label`\n // `fields`\n // `blocks`\n // `tabs`\n // `admin`\n ]\n\n serverOnlyFieldProperties.forEach((key) => {\n if (key in clientField) {\n delete clientField[key]\n }\n })\n\n if (fieldIsPresentationalOnly(incomingField)) {\n clientField._isPresentational = true\n }\n\n const isHidden = 'hidden' in incomingField && incomingField?.hidden\n const disabledFromAdmin =\n incomingField?.admin && 'disabled' in incomingField.admin && incomingField.admin.disabled\n\n if (fieldAffectsData(clientField) && (isHidden || disabledFromAdmin)) {\n return null\n }\n\n clientField._schemaPath = generateFieldPath(\n parentPath,\n fieldAffectsData(clientField) ? clientField.name : '',\n )\n\n if (\n 'label' in clientField &&\n 'label' in incomingField &&\n typeof incomingField.label === 'function'\n ) {\n clientField.label = incomingField.label({ t: i18n.t })\n }\n\n const CustomLabel: FieldLabelClientComponent | FieldLabelServerComponent | RowLabelComponent =\n 'admin' in incomingField &&\n 'components' in incomingField.admin &&\n 'Label' in incomingField.admin.components &&\n incomingField.admin.components.Label\n\n const serverProps: {\n serverProps: ServerFieldBase\n } = {\n serverProps: {\n clientField: undefined,\n field: incomingField,\n },\n }\n\n if ('admin' in incomingField && 'width' in incomingField.admin) {\n clientField.admin.style = {\n ...clientField.admin.style,\n '--field-width': clientField.admin.width,\n width: undefined, // avoid needlessly adding this to the element's style attribute\n }\n } else {\n if (!(clientField.admin instanceof Object)) {\n clientField.admin = {}\n }\n if (!(clientField.admin.style instanceof Object)) {\n clientField.admin.style = {}\n }\n clientField.admin.style.flex = '1 1 auto'\n }\n\n switch (incomingField.type) {\n case 'array':\n case 'group':\n case 'collapsible':\n case 'row': {\n const field = clientField as unknown as RowFieldClient\n\n field.fields = createClientFields({\n clientFields: field.fields,\n createMappedComponent,\n disableAddingID: incomingField.type !== 'array',\n fields: incomingField.fields,\n i18n,\n importMap,\n parentPath: field._schemaPath,\n payload,\n })\n\n if (incomingField?.admin?.components && 'RowLabel' in incomingField.admin.components) {\n ;(field as unknown as ArrayFieldClient).admin.components.RowLabel = createMappedComponent(\n incomingField.admin.components.RowLabel,\n serverProps,\n undefined,\n 'incomingField.admin.components.RowLabel',\n )\n }\n\n break\n }\n\n case 'blocks': {\n const field = clientField as unknown as BlocksFieldClient\n\n if (incomingField.blocks?.length) {\n for (let i = 0; i < incomingField.blocks.length; i++) {\n const block = incomingField.blocks[i]\n const clientBlock: ClientBlock = {\n slug: block.slug,\n admin: {\n components: {},\n custom: block.admin?.custom,\n },\n fields: field.blocks[i].fields,\n imageAltText: block.imageAltText,\n imageURL: block.imageURL,\n }\n\n if (block.labels) {\n clientBlock.labels = {} as unknown as LabelsClient\n if (block.labels.singular) {\n if (typeof block.labels.singular === 'function') {\n clientBlock.labels.singular = block.labels.singular({ t: i18n.t })\n } else {\n clientBlock.labels.singular = block.labels.singular\n }\n if (typeof block.labels.plural === 'function') {\n clientBlock.labels.plural = block.labels.plural({ t: i18n.t })\n } else {\n clientBlock.labels.plural = block.labels.plural\n }\n }\n }\n\n if (block.admin?.components?.Label) {\n clientBlock.admin.components.Label = createMappedComponent(\n block.admin.components.Label,\n serverProps,\n undefined,\n 'block.admin.components.Label',\n )\n }\n\n clientBlock.fields = createClientFields({\n clientFields: clientBlock.fields,\n createMappedComponent,\n fields: block.fields,\n i18n,\n importMap,\n parentPath: `${field._schemaPath}.${block.slug}`,\n payload,\n })\n\n field.blocks[i] = clientBlock\n }\n }\n\n break\n }\n\n case 'richText': {\n const field = clientField\n\n if (!incomingField?.editor) {\n throw new MissingEditorProp(incomingField) // 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 incomingField?.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 /**\n * We have to deep copy all the props we send to the client (= FieldComponent.clientProps).\n * That way, every editor's field / cell props we send to the client have their own object references.\n *\n * If we send the same object reference to the client twice (e.g. through some configurations where 2 or more fields\n * reference the same editor object, like the root editor), the admin panel may hang indefinitely. This has been happening since\n * a newer Next.js update that made it break when sending the same object reference to the client twice.\n *\n * We can use deepCopyObjectSimple as client props should be JSON-serializable.\n */\n const FieldComponent: PayloadComponent = incomingField.editor.FieldComponent\n if (typeof FieldComponent === 'object' && FieldComponent.clientProps) {\n FieldComponent.clientProps = deepCopyObjectSimple(FieldComponent.clientProps)\n }\n\n field.admin.components.Field = createMappedComponent(\n FieldComponent,\n serverProps,\n undefined,\n 'incomingField.editor.FieldComponent',\n )\n\n const CellComponent: PayloadComponent = incomingField.editor.CellComponent\n if (typeof CellComponent === 'object' && CellComponent.clientProps) {\n CellComponent.clientProps = deepCopyObjectSimple(CellComponent.clientProps)\n }\n\n field.admin.components.Cell = createMappedComponent(\n CellComponent,\n serverProps,\n undefined,\n 'incomingField.editor.CellComponent',\n )\n\n if (incomingField.editor.generateComponentMap) {\n const { Component: generateComponentMap, serverProps: richTextServerProps } = getComponent({\n identifier: 'richText-generateComponentMap',\n importMap,\n payloadComponent: incomingField.editor.generateComponentMap,\n silent: true,\n })\n\n if (generateComponentMap) {\n const actualGenerateComponentMap: RichTextGenerateComponentMap = (\n generateComponentMap as any\n )(richTextServerProps)\n\n const result = actualGenerateComponentMap({\n clientField: field as RichTextFieldClient,\n createMappedComponent,\n field: incomingField,\n i18n,\n importMap,\n payload,\n schemaPath: field._schemaPath,\n })\n\n ;(field as RichTextFieldClient).richTextComponentMap = result\n }\n }\n break\n }\n\n case 'tabs': {\n const field = clientField as unknown as TabsFieldClient\n\n if (incomingField.tabs?.length) {\n for (let i = 0; i < incomingField.tabs.length; i++) {\n const tab = incomingField.tabs[i]\n const clientTab = field.tabs[i]\n\n serverOnlyFieldProperties.forEach((key) => {\n if (key in clientTab) {\n delete clientTab[key]\n }\n })\n\n clientTab.fields = createClientFields({\n clientFields: clientTab.fields,\n createMappedComponent,\n disableAddingID: true,\n fields: tab.fields,\n i18n,\n importMap,\n parentPath: field._schemaPath,\n payload,\n })\n }\n }\n\n break\n }\n\n // case 'joins': {\n //\n // }\n\n case 'select':\n case 'radio': {\n const field = clientField as RadioFieldClient | SelectFieldClient\n\n if (incomingField.options?.length) {\n for (let i = 0; i < incomingField.options.length; i++) {\n const option = incomingField.options[i]\n\n if (typeof option === 'object' && typeof option.label === 'function') {\n field.options[i] = {\n label: option.label({ t: i18n.t }),\n value: option.value,\n }\n }\n }\n }\n\n break\n }\n\n default:\n break\n }\n\n const serverOnlyFieldAdminProperties: Partial<ServerOnlyFieldAdminProperties>[] = ['condition']\n\n if (!clientField.admin) {\n clientField.admin = {}\n }\n\n if (!clientField.admin.components) {\n clientField.admin.components = {}\n }\n\n serverOnlyFieldAdminProperties.forEach((key) => {\n if (key in clientField.admin) {\n delete clientField.admin[key]\n }\n })\n\n const fieldServerProps: {\n serverProps: ServerFieldBase\n } = {\n serverProps: {\n clientField,\n field: incomingField,\n },\n }\n\n type FieldWithDescription = {\n admin: AdminClient\n } & ClientField\n\n if (incomingField.admin && 'description' in incomingField.admin) {\n if (\n typeof incomingField.admin?.description === 'string' ||\n typeof incomingField.admin?.description === 'object'\n ) {\n ;(clientField as FieldWithDescription).admin.description = incomingField.admin.description\n } else if (typeof incomingField.admin?.description === 'function') {\n ;(clientField as FieldWithDescription).admin.description = incomingField.admin?.description({\n t: i18n.t,\n })\n }\n }\n\n if (incomingField?.admin?.components?.Cell !== undefined) {\n clientField.admin.components.Cell = createMappedComponent(\n incomingField.admin.components.Cell,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Cell',\n )\n }\n\n type FieldWithDescriptionComponent = {\n admin: AdminClient\n } & ClientField\n\n if (\n incomingField?.admin?.components &&\n 'Description' in incomingField.admin.components &&\n incomingField?.admin?.components?.Description !== undefined\n ) {\n ;(clientField as FieldWithDescriptionComponent).admin.components.Description =\n createMappedComponent(\n incomingField.admin.components.Description,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Description',\n )\n }\n\n type FieldWithErrorComponent = {\n admin: {\n components: {\n Error: MappedComponent\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'Error' in incomingField.admin.components &&\n incomingField.admin.components.Error !== undefined\n ) {\n ;(clientField as FieldWithErrorComponent).admin.components.Error = createMappedComponent(\n incomingField.admin.components.Error,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Error',\n )\n }\n\n if (incomingField?.admin?.components?.Field !== undefined) {\n clientField.admin.components.Field = createMappedComponent(\n incomingField.admin.components.Field,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Field',\n )\n }\n\n if (\n incomingField?.admin?.components &&\n 'Filter' in incomingField.admin.components &&\n incomingField.admin.components.Filter !== undefined\n ) {\n clientField.admin.components.Filter = createMappedComponent(\n incomingField.admin.components.Filter,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Filter',\n )\n }\n\n type FieldWithLabelComponent = {\n admin: {\n components: {\n Label: MappedComponent\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'Label' in incomingField.admin.components &&\n incomingField.admin.components.Label !== undefined\n ) {\n ;(clientField as FieldWithLabelComponent).admin.components.Label = createMappedComponent(\n CustomLabel,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.Label',\n )\n }\n\n type FieldWithBeforeInputComponent = {\n admin: {\n components: {\n beforeInput: MappedComponent[]\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'beforeInput' in incomingField.admin.components &&\n incomingField.admin.components.beforeInput !== undefined\n ) {\n ;(clientField as FieldWithBeforeInputComponent).admin.components.beforeInput =\n createMappedComponent(\n incomingField.admin?.components?.beforeInput,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.beforeInput',\n )\n }\n\n type FieldWithAfterInputComponent = {\n admin: {\n components: {\n afterInput: MappedComponent[]\n }\n } & AdminClient\n } & ClientField\n if (\n incomingField?.admin?.components &&\n 'afterInput' in incomingField.admin.components &&\n incomingField.admin.components.afterInput !== undefined\n ) {\n ;(clientField as FieldWithAfterInputComponent).admin.components.afterInput =\n createMappedComponent(\n incomingField.admin?.components?.afterInput,\n fieldServerProps,\n undefined,\n 'incomingField.admin.components.afterInput',\n )\n }\n\n return clientField\n}\n\nexport const createClientFields = ({\n clientFields,\n createMappedComponent,\n disableAddingID,\n fields,\n i18n,\n importMap,\n parentPath,\n payload,\n}: {\n clientFields: ClientField[]\n createMappedComponent: CreateMappedComponent\n disableAddingID?: boolean\n fields: Field[]\n i18n: I18nClient\n importMap: ImportMap\n parentPath?: string\n payload: Payload\n}): ClientField[] => {\n const newClientFields: ClientField[] = []\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i]\n\n const newField = createClientField({\n clientField: clientFields[i],\n createMappedComponent,\n field,\n i18n,\n importMap,\n parentPath,\n payload,\n })\n\n if (newField) {\n newClientFields.push(newField)\n }\n }\n\n const hasID = newClientFields.findIndex((f) => fieldAffectsData(f) && f.name === 'id') > -1\n\n if (!disableAddingID && !hasID) {\n newClientFields.push({\n name: 'id',\n type: payload.db.defaultIDType === 'number' ? 'number' : 'text',\n _schemaPath: generateFieldPath(parentPath, 'id'),\n admin: {\n components: {\n Field: null,\n },\n description: 'The unique identifier for this document',\n disableBulkEdit: true,\n hidden: true,\n },\n hidden: true,\n label: 'ID',\n localized: undefined,\n })\n }\n return newClientFields\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA8E,MAAM,OAAO,CAAA;AAElG,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAgBxE,mBAAmB,YAAY,CAAA;AAE/B,eAAO,MAAM,eAAe,QAAO,mBAA0C,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA8E,MAAM,OAAO,CAAA;AAElG,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAgBxE,mBAAmB,YAAY,CAAA;AAE/B,eAAO,MAAM,eAAe,QAAO,mBAA0C,CAAA;AA2pB7E,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CACzC;IACE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,GAAG,iBAAiB,CAOtB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["notFound","reduceFieldsToValues","qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","requests","formatDocTitle","getFormState","hasSavePermission","getHasSavePermission","isEditing","getIsEditing","useAuth","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","docPermissions","docPermissionsFromProps","globalSlug","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermissionFromProps","initialData","initialDataFromProps","initialState","initialStateFromProps","onLoadError","onSave","onSaveFromProps","config","admin","dateFormat","collections","globals","routes","api","serverURL","collectionConfig","find","c","slug","globalConfig","g","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","isLoading","setIsLoading","isError","setIsError","setData","setInitialState","publishedDoc","setPublishedDoc","versions","setVersions","setDocPermissions","setHasSavePermission","setHasPublishPermission","documentIsLocked","setDocumentIsLocked","currentEditor","setCurrentEditor","isInitializing","unpublishedVersions","setUnpublishedVersions","getPreference","setPreference","permissions","code","locale","prevLocale","hasInitializedDocPermissions","versionsConfig","baseURL","pluralType","preferencesKey","operation","shouldFetchVersions","Boolean","readVersions","permission","unlockDocument","docId","isGlobal","query","request","get","docs","json","length","lockId","delete","headers","error","console","updateDocumentEditor","user","patch","body","JSON","stringify","relationTo","collection","value","fetchDocumentLockState","newEditor","getVersions","versionFetchURL","publishedFetchURL","unpublishedVersionJSON","versionJSON","shouldFetch","versionParams","depth","limit","where","and","publishedVersionParams","or","_status","equals","exists","push","parent","publishedJSON","drafts","fetch","credentials","language","then","res","updatedAt","newerVersionParams","greater_than","newerVersionRes","status","getDocPermissions","params","idToUse","newIsEditing","docAccessURL","method","publishedAccessJSON","update","newDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","docPreferences","newData","doc","result","state","newState","apiRoute","schemaPath","abortController","AbortController","localeChanged","current","getInitialState","onError","signal","err","aborted","abort","action","useMemo","docURL","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n DocumentPermissions,\n DocumentPreferences,\n FormState,\n PaginatedDocs,\n TypeWithID,\n TypeWithTimestamps,\n TypeWithVersion,\n Where,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../utilities/hasSavePermission.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData: initialDataFromProps,\n initialState: initialStateFromProps,\n onLoadError,\n onSave: onSaveFromProps,\n } = props\n\n const {\n config: {\n admin: { dateFormat },\n collections,\n globals,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n const globalConfig = globals.find((g) => g.slug === globalSlug)\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() => {\n if (!initialDataFromProps) {\n return ''\n }\n\n return formatDocTitle({\n collectionConfig,\n data: { ...initialDataFromProps, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n })\n })\n\n const [isLoading, setIsLoading] = useState(false)\n const [isError, setIsError] = useState(false)\n const [data, setData] = useState<Data>(initialDataFromProps)\n const [initialState, setInitialState] = useState<FormState>(initialStateFromProps)\n const [publishedDoc, setPublishedDoc] = useState<TypeWithID & TypeWithTimestamps>(null)\n const [versions, setVersions] = useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(docPermissionsFromProps)\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(false)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(null)\n\n const isInitializing = initialState === undefined || data === undefined\n const [unpublishedVersions, setUnpublishedVersions] =\n useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n\n const { getPreference, setPreference } = usePreferences()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n const hasInitializedDocPermissions = useRef(false)\n\n const versionsConfig = docConfig?.versions\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n const operation = isEditing ? 'update' : 'create'\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions?.permission)\n\n const unlockDocument = useCallback(\n async (docId: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docId: number | string, slug: string, user: ClientUser) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n body: JSON.stringify({\n user: { relationTo: user?.collection, value: user?.id },\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n useEffect(() => {\n if (!isLockingEnabled || (!id && !globalSlug)) {\n return\n }\n\n const fetchDocumentLockState = async () => {\n if (id || globalSlug) {\n try {\n const slug = collectionSlug ?? globalSlug\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${id}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const newEditor = docs[0].user?.value\n if (newEditor && newEditor.id !== currentEditor?.id) {\n setCurrentEditor(newEditor)\n setDocumentIsLocked(true)\n }\n } else {\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // swallow error\n }\n }\n }\n void fetchDocumentLockState()\n }, [id, serverURL, api, collectionSlug, globalSlug, currentEditor, isLockingEnabled])\n\n const getVersions = useCallback(async () => {\n let versionFetchURL\n let publishedFetchURL\n let unpublishedVersionJSON = null\n let versionJSON = null\n let shouldFetch = true\n\n const versionParams = {\n depth: 0,\n limit: 0,\n where: {\n and: [],\n },\n }\n\n const publishedVersionParams: { depth: number; locale: string; where: Where } = {\n depth: 0,\n locale: locale || undefined,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n ],\n },\n }\n\n if (globalSlug) {\n versionFetchURL = `${baseURL}/globals/${globalSlug}/versions`\n publishedFetchURL = `${baseURL}/globals/${globalSlug}?${qs.stringify(publishedVersionParams)}`\n }\n\n if (collectionSlug) {\n versionFetchURL = `${baseURL}/${collectionSlug}/versions`\n\n publishedVersionParams.where.and.push({\n id: {\n equals: id,\n },\n })\n\n publishedFetchURL = `${baseURL}/${collectionSlug}?${qs.stringify(publishedVersionParams)}`\n\n if (!id) {\n shouldFetch = false\n }\n\n versionParams.where.and.push({\n parent: {\n equals: id,\n },\n })\n }\n\n if (shouldFetch) {\n let publishedJSON\n\n if (versionsConfig?.drafts) {\n publishedJSON = await fetch(publishedFetchURL, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (collectionSlug) {\n publishedJSON = publishedJSON?.docs?.[0]\n }\n }\n\n if (shouldFetchVersions) {\n versionJSON = await fetch(`${versionFetchURL}?${qs.stringify(versionParams)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (publishedJSON?.updatedAt) {\n const newerVersionParams = {\n ...versionParams,\n where: {\n ...versionParams.where,\n and: [\n ...versionParams.where.and,\n {\n updatedAt: {\n greater_than: publishedJSON.updatedAt,\n },\n },\n ],\n },\n }\n\n // Get any newer versions available\n const newerVersionRes = await fetch(\n `${versionFetchURL}?${qs.stringify(newerVersionParams)}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (newerVersionRes.status === 200) {\n unpublishedVersionJSON = await newerVersionRes.json()\n }\n }\n }\n\n setPublishedDoc(publishedJSON)\n setVersions(versionJSON)\n setUnpublishedVersions(unpublishedVersionJSON)\n }\n }, [i18n, globalSlug, collectionSlug, id, baseURL, locale, versionsConfig, shouldFetchVersions])\n\n const getDocPermissions = React.useCallback(\n async (data: Data) => {\n const params = {\n locale: locale || undefined,\n }\n\n const idToUse = data?.id || id\n const newIsEditing = getIsEditing({ id: idToUse, collectionSlug, globalSlug })\n\n if (newIsEditing) {\n const docAccessURL = collectionSlug\n ? `/${collectionSlug}/access/${idToUse}`\n : globalSlug\n ? `/globals/${globalSlug}/access`\n : null\n\n if (docAccessURL) {\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'draft',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n }\n } else {\n // when creating new documents, there is no permissions saved for this document yet\n // use the generic entity permissions instead\n const newDocPermissions = collectionSlug\n ? permissions?.collections?.[collectionSlug]\n : permissions?.globals?.[globalSlug]\n\n setDocPermissions(newDocPermissions)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: newDocPermissions,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n }\n },\n [serverURL, api, id, permissions, i18n.language, locale, collectionSlug, globalSlug],\n )\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const onSave = React.useCallback<DocumentInfoContext['onSave']>(\n async (json) => {\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps(json)\n }\n\n const docPreferences = await getDocPreferences()\n\n const newData = collectionSlug ? json.doc : json.result\n\n const { state: newState } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n data: newData,\n docPreferences,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n setInitialState(newState)\n setData(newData)\n\n await getDocPermissions(newData)\n },\n [\n api,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n id,\n operation,\n locale,\n onSaveFromProps,\n serverURL,\n getDocPermissions,\n ],\n )\n\n useEffect(() => {\n const abortController = new AbortController()\n const localeChanged = locale !== prevLocale.current\n\n if (\n initialStateFromProps === undefined ||\n initialDataFromProps === undefined ||\n localeChanged\n ) {\n if (localeChanged) {\n prevLocale.current = locale\n }\n\n const getInitialState = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const { state: result } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n onError: onLoadError,\n serverURL,\n signal: abortController.signal,\n })\n const data = reduceFieldsToValues(result, true)\n setData(data)\n\n if (localeChanged) {\n void getDocPermissions(data)\n }\n\n setInitialState(result)\n } catch (err) {\n if (!abortController.signal.aborted) {\n if (typeof onLoadError === 'function') {\n void onLoadError()\n }\n setIsError(true)\n setIsLoading(false)\n }\n }\n setIsLoading(false)\n }\n\n void getInitialState()\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n }, [\n api,\n operation,\n collectionSlug,\n serverURL,\n id,\n globalSlug,\n locale,\n onLoadError,\n initialDataFromProps,\n initialStateFromProps,\n getDocPermissions,\n ])\n\n useEffect(() => {\n void getVersions()\n }, [getVersions])\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, data, dateFormat, i18n, id, globalConfig])\n\n useEffect(() => {\n if (data && (collectionSlug || globalSlug)) {\n if (\n hasInitializedDocPermissions.current === false &&\n (!docPermissions ||\n hasSavePermission === undefined ||\n hasSavePermission === null ||\n hasPublishPermission === undefined ||\n hasPublishPermission === null)\n ) {\n hasInitializedDocPermissions.current = true\n void getDocPermissions(data)\n }\n }\n }, [\n getDocPermissions,\n docPermissionsFromProps,\n hasSavePermissionFromProps,\n hasPublishPermissionFromProps,\n setDocPermissions,\n collectionSlug,\n globalSlug,\n data,\n docPermissions,\n hasSavePermission,\n hasPublishPermission,\n ])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n if (isError) {\n notFound()\n }\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isInitializing,\n isLoading,\n onSave,\n preferencesKey,\n publishedDoc,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n title: documentTitle,\n unlockDocument,\n unpublishedVersions,\n updateDocumentEditor,\n versions,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["notFound","reduceFieldsToValues","qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","requests","formatDocTitle","getFormState","hasSavePermission","getHasSavePermission","isEditing","getIsEditing","useAuth","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","docPermissions","docPermissionsFromProps","globalSlug","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermissionFromProps","initialData","initialDataFromProps","initialState","initialStateFromProps","onLoadError","onSave","onSaveFromProps","config","admin","dateFormat","collections","globals","routes","api","serverURL","collectionConfig","find","c","slug","globalConfig","g","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","isLoading","setIsLoading","isError","setIsError","setData","setInitialState","publishedDoc","setPublishedDoc","versions","setVersions","setDocPermissions","setHasSavePermission","setHasPublishPermission","documentIsLocked","setDocumentIsLocked","currentEditor","setCurrentEditor","isInitializing","unpublishedVersions","setUnpublishedVersions","getPreference","setPreference","permissions","code","locale","prevLocale","hasInitializedDocPermissions","versionsConfig","baseURL","pluralType","preferencesKey","operation","shouldFetchVersions","Boolean","readVersions","permission","unlockDocument","docId","isGlobal","query","request","get","docs","json","length","lockId","delete","headers","error","console","updateDocumentEditor","user","patch","body","JSON","stringify","relationTo","collection","value","fetchDocumentLockState","newEditor","getVersions","versionFetchURL","publishedFetchURL","unpublishedVersionJSON","versionJSON","shouldFetch","versionParams","depth","limit","where","and","publishedVersionParams","or","_status","equals","exists","push","parent","publishedJSON","drafts","fetch","credentials","language","then","res","updatedAt","newerVersionParams","greater_than","newerVersionRes","status","getDocPermissions","params","idToUse","newIsEditing","docAccessURL","method","publishedAccessJSON","update","newDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","docPreferences","newData","doc","result","state","newState","apiRoute","schemaPath","abortController","AbortController","localeChanged","current","getInitialState","onError","signal","err","aborted","abort","action","useMemo","docURL","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n DocumentPermissions,\n DocumentPreferences,\n FormState,\n PaginatedDocs,\n TypeWithID,\n TypeWithTimestamps,\n TypeWithVersion,\n Where,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../utilities/hasSavePermission.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData: initialDataFromProps,\n initialState: initialStateFromProps,\n onLoadError,\n onSave: onSaveFromProps,\n } = props\n\n const {\n config: {\n admin: { dateFormat },\n collections,\n globals,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n const globalConfig = globals.find((g) => g.slug === globalSlug)\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() => {\n if (!initialDataFromProps) {\n return ''\n }\n\n return formatDocTitle({\n collectionConfig,\n data: { ...initialDataFromProps, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n })\n })\n\n const [isLoading, setIsLoading] = useState(false)\n const [isError, setIsError] = useState(false)\n const [data, setData] = useState<Data>(initialDataFromProps)\n const [initialState, setInitialState] = useState<FormState>(initialStateFromProps)\n const [publishedDoc, setPublishedDoc] = useState<TypeWithID & TypeWithTimestamps>(null)\n const [versions, setVersions] = useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(docPermissionsFromProps)\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(false)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(null)\n\n const isInitializing = initialState === undefined || data === undefined\n const [unpublishedVersions, setUnpublishedVersions] =\n useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n\n const { getPreference, setPreference } = usePreferences()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n const hasInitializedDocPermissions = useRef(false)\n\n const versionsConfig = docConfig?.versions\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n const operation = isEditing ? 'update' : 'create'\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions?.permission)\n\n const unlockDocument = useCallback(\n async (docId: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docId: number | string, slug: string, user: ClientUser) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n body: JSON.stringify({\n user: { relationTo: user?.collection, value: user?.id },\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n useEffect(() => {\n if (!isLockingEnabled || (!id && !globalSlug)) {\n return\n }\n\n const fetchDocumentLockState = async () => {\n if (id || globalSlug) {\n try {\n const slug = collectionSlug ?? globalSlug\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${id}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const newEditor = docs[0].user?.value\n if (newEditor && newEditor.id !== currentEditor?.id) {\n setCurrentEditor(newEditor)\n setDocumentIsLocked(true)\n }\n } else {\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // swallow error\n }\n }\n }\n void fetchDocumentLockState()\n }, [id, serverURL, api, collectionSlug, globalSlug, currentEditor, isLockingEnabled])\n\n const getVersions = useCallback(async () => {\n let versionFetchURL\n let publishedFetchURL\n let unpublishedVersionJSON = null\n let versionJSON = null\n let shouldFetch = true\n\n const versionParams = {\n depth: 0,\n limit: 0,\n where: {\n and: [],\n },\n }\n\n const publishedVersionParams: { depth: number; locale: string; where: Where } = {\n depth: 0,\n locale: locale || undefined,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n ],\n },\n }\n\n if (globalSlug) {\n versionFetchURL = `${baseURL}/globals/${globalSlug}/versions`\n publishedFetchURL = `${baseURL}/globals/${globalSlug}?${qs.stringify(publishedVersionParams)}`\n }\n\n if (collectionSlug) {\n versionFetchURL = `${baseURL}/${collectionSlug}/versions`\n\n publishedVersionParams.where.and.push({\n id: {\n equals: id,\n },\n })\n\n publishedFetchURL = `${baseURL}/${collectionSlug}?${qs.stringify(publishedVersionParams)}`\n\n if (!id) {\n shouldFetch = false\n }\n\n versionParams.where.and.push({\n parent: {\n equals: id,\n },\n })\n }\n\n if (shouldFetch) {\n let publishedJSON\n\n if (versionsConfig?.drafts) {\n publishedJSON = await fetch(publishedFetchURL, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (collectionSlug) {\n publishedJSON = publishedJSON?.docs?.[0]\n }\n }\n\n if (shouldFetchVersions) {\n versionJSON = await fetch(`${versionFetchURL}?${qs.stringify(versionParams)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (publishedJSON?.updatedAt) {\n const newerVersionParams = {\n ...versionParams,\n where: {\n ...versionParams.where,\n and: [\n ...versionParams.where.and,\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedJSON.updatedAt,\n },\n },\n ],\n },\n }\n\n // Get any newer versions available\n const newerVersionRes = await fetch(\n `${versionFetchURL}?${qs.stringify(newerVersionParams)}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (newerVersionRes.status === 200) {\n unpublishedVersionJSON = await newerVersionRes.json()\n }\n }\n }\n\n setPublishedDoc(publishedJSON)\n setVersions(versionJSON)\n setUnpublishedVersions(unpublishedVersionJSON)\n }\n }, [i18n, globalSlug, collectionSlug, id, baseURL, locale, versionsConfig, shouldFetchVersions])\n\n const getDocPermissions = React.useCallback(\n async (data: Data) => {\n const params = {\n locale: locale || undefined,\n }\n\n const idToUse = data?.id || id\n const newIsEditing = getIsEditing({ id: idToUse, collectionSlug, globalSlug })\n\n if (newIsEditing) {\n const docAccessURL = collectionSlug\n ? `/${collectionSlug}/access/${idToUse}`\n : globalSlug\n ? `/globals/${globalSlug}/access`\n : null\n\n if (docAccessURL) {\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'draft',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n }\n } else {\n // when creating new documents, there is no permissions saved for this document yet\n // use the generic entity permissions instead\n const newDocPermissions = collectionSlug\n ? permissions?.collections?.[collectionSlug]\n : permissions?.globals?.[globalSlug]\n\n setDocPermissions(newDocPermissions)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: newDocPermissions,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n }\n },\n [serverURL, api, id, permissions, i18n.language, locale, collectionSlug, globalSlug],\n )\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const onSave = React.useCallback<DocumentInfoContext['onSave']>(\n async (json) => {\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps(json)\n }\n\n const docPreferences = await getDocPreferences()\n\n const newData = collectionSlug ? json.doc : json.result\n\n const { state: newState } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n data: newData,\n docPreferences,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n setInitialState(newState)\n setData(newData)\n\n await getDocPermissions(newData)\n },\n [\n api,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n id,\n operation,\n locale,\n onSaveFromProps,\n serverURL,\n getDocPermissions,\n ],\n )\n\n useEffect(() => {\n const abortController = new AbortController()\n const localeChanged = locale !== prevLocale.current\n\n if (\n initialStateFromProps === undefined ||\n initialDataFromProps === undefined ||\n localeChanged\n ) {\n if (localeChanged) {\n prevLocale.current = locale\n }\n\n const getInitialState = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const { state: result } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n onError: onLoadError,\n serverURL,\n signal: abortController.signal,\n })\n const data = reduceFieldsToValues(result, true)\n setData(data)\n\n if (localeChanged) {\n void getDocPermissions(data)\n }\n\n setInitialState(result)\n } catch (err) {\n if (!abortController.signal.aborted) {\n if (typeof onLoadError === 'function') {\n void onLoadError()\n }\n setIsError(true)\n setIsLoading(false)\n }\n }\n setIsLoading(false)\n }\n\n void getInitialState()\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n }, [\n api,\n operation,\n collectionSlug,\n serverURL,\n id,\n globalSlug,\n locale,\n onLoadError,\n initialDataFromProps,\n initialStateFromProps,\n getDocPermissions,\n ])\n\n useEffect(() => {\n void getVersions()\n }, [getVersions])\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, data, dateFormat, i18n, id, globalConfig])\n\n useEffect(() => {\n if (data && (collectionSlug || globalSlug)) {\n if (\n hasInitializedDocPermissions.current === false &&\n (!docPermissions ||\n hasSavePermission === undefined ||\n hasSavePermission === null ||\n hasPublishPermission === undefined ||\n hasPublishPermission === null)\n ) {\n hasInitializedDocPermissions.current = true\n void getDocPermissions(data)\n }\n }\n }, [\n getDocPermissions,\n docPermissionsFromProps,\n hasSavePermissionFromProps,\n hasPublishPermissionFromProps,\n setDocPermissions,\n collectionSlug,\n globalSlug,\n data,\n docPermissions,\n hasSavePermission,\n hasPublishPermission,\n ])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n if (isError) {\n notFound()\n }\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isInitializing,\n isLoading,\n onSave,\n preferencesKey,\n publishedDoc,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n title: documentTitle,\n unlockDocument,\n unpublishedVersions,\n updateDocumentEditor,\n versions,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -80,7 +80,7 @@ export const SelectionProvider = ({
|
|
|
80
80
|
}
|
|
81
81
|
setSelected(newMap);
|
|
82
82
|
}, [selected, docs, user?.id]);
|
|
83
|
-
const getQueryParams = useCallback(
|
|
83
|
+
const getQueryParams = useCallback(additionalWhereParams => {
|
|
84
84
|
let where;
|
|
85
85
|
if (selectAll === "allAvailable") {
|
|
86
86
|
const params = searchParams?.where;
|
|
@@ -102,10 +102,10 @@ export const SelectionProvider = ({
|
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
|
-
if (
|
|
105
|
+
if (additionalWhereParams) {
|
|
106
106
|
where = {
|
|
107
107
|
and: [{
|
|
108
|
-
...
|
|
108
|
+
...additionalWhereParams
|
|
109
109
|
}, where]
|
|
110
110
|
};
|
|
111
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useLocale","useSearchParams","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const { searchParams } = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalParams?: Where): string => {\n let where: Where\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = searchParams?.where as Where\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n if (additionalParams) {\n where = {\n and: [{ ...additionalParams }, where],\n }\n }\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.Some)\n } else {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useLocale","useSearchParams","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalWhereParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const { searchParams } = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = searchParams?.where as Where\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.Some)\n } else {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
|