@payloadcms/ui 4.0.0-internal.c3ac604 → 4.0.0-internal.cc18726
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/AppHeader/index.css +1 -0
- package/dist/elements/AppHeader/index.js +1 -1
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.d.ts +1 -0
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +45 -32
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +2 -3
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +2 -3
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Button/index.css +2 -2
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +2 -0
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +8 -9
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.d.ts +1 -0
- package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +10 -8
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +2 -3
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/Drawer/index.css +10 -4
- package/dist/elements/Dropzone/index.css +10 -4
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +2 -3
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +2 -3
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
- package/dist/elements/FileManager/FileToolbar/index.js +3 -0
- package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
- package/dist/elements/FileManager/index.css +0 -30
- package/dist/elements/FileManager/index.d.ts.map +1 -1
- package/dist/elements/FileManager/index.js +379 -287
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
- package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
- package/dist/elements/IDLabel/index.css +6 -0
- package/dist/elements/IDLabel/index.d.ts +1 -1
- package/dist/elements/IDLabel/index.d.ts.map +1 -1
- package/dist/elements/IDLabel/index.js +16 -21
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -3
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +1 -1
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +1 -1
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.css +1 -1
- package/dist/elements/Popup/index.js +1 -1
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +5 -6
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +2 -3
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +5 -2
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.d.ts.map +1 -1
- package/dist/elements/RestoreMany/index.js +2 -3
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +2 -3
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SortHeader/index.d.ts.map +1 -1
- package/dist/elements/SortHeader/index.js +29 -26
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +2 -3
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StepNav/index.css +64 -14
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +143 -69
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +3 -11
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableRow.d.ts +3 -1
- package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
- package/dist/elements/Table/OrderableRow.js +17 -1
- package/dist/elements/Table/OrderableRow.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +20 -4
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +2 -3
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
- package/dist/elements/UnpublishButton/index.js +3 -4
- package/dist/elements/UnpublishButton/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
- package/dist/elements/Upload/index.css +39 -32
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +37 -99
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
- package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
- package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
- package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.js +201 -0
- package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.css +31 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.js +62 -0
- package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
- package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.js +32 -0
- package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +15 -4
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- 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 +1 -1
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/ArrayRow.d.ts +1 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +2 -0
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +40 -13
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +1 -0
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +2 -0
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +1 -0
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +22 -19
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +37 -10
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.d.ts.map +1 -1
- package/dist/fields/FieldLabel/index.js +4 -5
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +2 -3
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Slug/index.d.ts.map +1 -1
- package/dist/fields/Slug/index.js +2 -3
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +46 -19
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/Input.spec.js +242 -0
- package/dist/fields/Upload/Input.spec.js.map +1 -0
- package/dist/fields/shared/index.d.ts +1 -1
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +6 -4
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js +2 -3
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
- package/dist/hooks/usePayloadAPI.js +2 -3
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/icons/Edit/index.d.ts +0 -1
- package/dist/icons/Edit/index.d.ts.map +1 -1
- package/dist/icons/Edit/index.js +4 -4
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/providers/Actions/index.d.ts +1 -0
- package/dist/providers/Actions/index.d.ts.map +1 -1
- package/dist/providers/Actions/index.js +43 -11
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
- package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
- package/dist/providers/Auth/authSessionRequests.js +119 -0
- package/dist/providers/Auth/authSessionRequests.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
- package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
- package/dist/providers/Auth/index.d.ts +2 -56
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +283 -135
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Auth/sessionActivity.d.ts +23 -0
- package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
- package/dist/providers/Auth/sessionActivity.js +49 -0
- package/dist/providers/Auth/sessionActivity.js.map +1 -0
- package/dist/providers/Auth/sessionActivity.spec.js +44 -0
- package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
- package/dist/providers/Auth/sessionTiming.d.ts +11 -0
- package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
- package/dist/providers/Auth/sessionTiming.js +18 -0
- package/dist/providers/Auth/sessionTiming.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.js +263 -0
- package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.js +6 -0
- package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
- package/dist/providers/Auth/types.d.ts +65 -0
- package/dist/providers/Auth/types.d.ts.map +1 -0
- package/dist/providers/Auth/types.js +2 -0
- package/dist/providers/Auth/types.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
- package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +2 -3
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/FormErrorHandler/index.d.ts +5 -1
- package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
- package/dist/providers/FormErrorHandler/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts +1 -5
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +64 -137
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Root/index.js +4 -4
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
- package/dist/providers/RouteTransition/index.d.ts +2 -0
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +42 -14
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +2 -3
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +5 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +15 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/templates/Default/index.d.ts +1 -0
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +2 -0
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/formatMetadata.d.ts.map +1 -1
- package/dist/utilities/formatMetadata.js +0 -5
- package/dist/utilities/formatMetadata.js.map +1 -1
- package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
- package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
- package/dist/utilities/getFilesFromClipboard.js +49 -0
- package/dist/utilities/getFilesFromClipboard.js.map +1 -0
- package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
- package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
- package/dist/utilities/getHasScheduledPublish.js +2 -5
- package/dist/utilities/getHasScheduledPublish.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.d.ts +8 -1
- package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
- package/dist/utilities/schedulePublishHandler.js +68 -4
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
- package/dist/utilities/serverFunctionRegistry.js +2 -1
- package/dist/utilities/serverFunctionRegistry.js.map +1 -1
- package/dist/utilities/slugify.d.ts.map +1 -1
- package/dist/utilities/slugify.js +3 -0
- package/dist/utilities/slugify.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +2 -3
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +33 -140
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +1 -2
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +3 -2
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/HierarchyList/index.css +1 -1
- package/dist/views/List/ListHeader/index.d.ts +1 -10
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +1 -3
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +0 -14
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/index.css +6 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByKey.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +1 -0
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js +10 -13
- package/dist/views/Version/Default/SetStepNav.js.map +1 -1
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +12 -13
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","useEffectEvent","useAuth","useConfig","useDocumentEvents","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","useDocumentDrawer","ListColumnSelectionButton","NoListResults","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","Description","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","mostRecentUpdate","lastHandledEventRef","handleDocumentEvent","event","relationSlugs","includes","entitySlug","eventDocID","existingDoc","find","value","existingUpdatedAt","updatedAt","isAlreadyReflected","Boolean","canCreate","collections","create","memoizedListQuery","useMemo","addNewButton","_jsx","buttonStyle","className","label","onClick","columnsButton","slug","_jsxs","length","Actions","labels","singular","description","plural","title","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type DocumentEvent,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { NoListResults } from '../NoListResults/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.css'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly Description?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string, collectionSlug?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n Description,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin?.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin?.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin?.defaultColumns,\n field.admin?.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id, collectionSlug) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n\n if (collectionSlug) {\n setSelectedCollection(collectionSlug)\n } else {\n setSelectedCollection(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n // Keep this table in sync with documents created, updated, or deleted elsewhere\n // (a sibling join table, the relationship field, or an inline drawer edit).\n const { mostRecentUpdate } = useDocumentEvents()\n const lastHandledEventRef = useRef<DocumentEvent | null>(null)\n\n const handleDocumentEvent = useEffectEvent((event: DocumentEvent | null) => {\n if (disableTable || !event || event === lastHandledEventRef.current) {\n return\n }\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n if (!relationSlugs.includes(event.entitySlug)) {\n return\n }\n\n lastHandledEventRef.current = event\n\n // Skip the refetch when the current data already reflects this event — e.g. this\n // table's own drawer already applied it optimistically via onDrawerSave/onDrawerDelete,\n // or a fresh mount already loaded data that includes it. Otherwise saving/deleting from\n // this table's own drawer (which also emits a matching event) would render a second time.\n const eventDocID = event.doc?.id ?? event.id\n\n const existingDoc = isPolymorphic\n ? data?.docs?.find(\n (doc) => doc.relationTo === event.entitySlug && doc.value?.id === eventDocID,\n )\n : data?.docs?.find((doc) => doc.id === eventDocID)\n\n const existingUpdatedAt = isPolymorphic ? existingDoc?.value?.updatedAt : existingDoc?.updatedAt\n\n const isAlreadyReflected =\n event.operation === 'delete'\n ? !existingDoc\n : Boolean(existingDoc) && existingUpdatedAt === event.updatedAt\n\n if (isAlreadyReflected) {\n return\n }\n\n void renderTable()\n })\n\n useEffect(() => {\n handleDocumentEvent(mostRecentUpdate)\n }, [mostRecentUpdate])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n const addNewButton = (\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"ghost\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ''}`}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n )\n\n const columnsButton = <ListColumnSelectionButton collectionSlug={collectionConfig?.slug} />\n\n return (\n <div className={baseClass}>\n {isLoadingTable ? (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <p>{t('general:loading')}</p>\n </Fragment>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <NoListResults\n Actions={\n canCreate\n ? [\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n key=\"create\"\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />,\n ]\n : []\n }\n description={i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n title={i18n.t('general:noResultsFound')}\n />\n </Fragment>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {addNewButton}\n {columnsButton}\n </div>\n {Description}\n </div>\n {BeforeInput}\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","useEffectEvent","useAuth","useConfig","useDocumentEvents","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","useDocumentDrawer","ListColumnSelectionButton","NoListResults","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","Description","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","mostRecentUpdate","lastHandledEventRef","handleDocumentEvent","event","relationSlugs","includes","entitySlug","eventDocID","existingDoc","find","value","existingUpdatedAt","updatedAt","isAlreadyReflected","Boolean","canCreate","collections","create","openSelectedCollectionDrawer","memoizedListQuery","useMemo","addNewButton","_jsx","buttonStyle","className","label","onClick","columnsButton","slug","_jsxs","length","Actions","labels","singular","description","plural","title","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type DocumentEvent,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { NoListResults } from '../NoListResults/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.css'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly Description?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string, collectionSlug?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n Description,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin?.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin?.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin?.defaultColumns,\n field.admin?.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id, collectionSlug) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n\n if (collectionSlug) {\n setSelectedCollection(collectionSlug)\n } else {\n setSelectedCollection(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n // Keep this table in sync with documents created, updated, or deleted elsewhere\n // (a sibling join table, the relationship field, or an inline drawer edit).\n const { mostRecentUpdate } = useDocumentEvents()\n const lastHandledEventRef = useRef<DocumentEvent | null>(null)\n\n const handleDocumentEvent = useEffectEvent((event: DocumentEvent | null) => {\n if (disableTable || !event || event === lastHandledEventRef.current) {\n return\n }\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n if (!relationSlugs.includes(event.entitySlug)) {\n return\n }\n\n lastHandledEventRef.current = event\n\n // Skip the refetch when the current data already reflects this event — e.g. this\n // table's own drawer already applied it optimistically via onDrawerSave/onDrawerDelete,\n // or a fresh mount already loaded data that includes it. Otherwise saving/deleting from\n // this table's own drawer (which also emits a matching event) would render a second time.\n const eventDocID = event.doc?.id ?? event.id\n\n const existingDoc = isPolymorphic\n ? data?.docs?.find(\n (doc) => doc.relationTo === event.entitySlug && doc.value?.id === eventDocID,\n )\n : data?.docs?.find((doc) => doc.id === eventDocID)\n\n const existingUpdatedAt = isPolymorphic ? existingDoc?.value?.updatedAt : existingDoc?.updatedAt\n\n const isAlreadyReflected =\n event.operation === 'delete'\n ? !existingDoc\n : Boolean(existingDoc) && existingUpdatedAt === event.updatedAt\n\n if (isAlreadyReflected) {\n return\n }\n\n void renderTable()\n })\n\n useEffect(() => {\n handleDocumentEvent(mostRecentUpdate)\n }, [mostRecentUpdate])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n const openSelectedCollectionDrawer = useEffectEvent(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n })\n\n useEffect(() => {\n openSelectedCollectionDrawer()\n }, [selectedCollection, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n const addNewButton = (\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"ghost\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ''}`}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n )\n\n const columnsButton = <ListColumnSelectionButton collectionSlug={collectionConfig?.slug} />\n\n return (\n <div className={baseClass}>\n {isLoadingTable ? (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <p>{t('general:loading')}</p>\n </Fragment>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <NoListResults\n Actions={\n canCreate\n ? [\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n key=\"create\"\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />,\n ]\n : []\n }\n description={i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n title={i18n.t('general:noResultsFound')}\n />\n </Fragment>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {addNewButton}\n {columnsButton}\n </div>\n {Description}\n </div>\n {BeforeInput}\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAS,MAAM,SAAS,CAAA;AAMvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAS,MAAM,SAAS,CAAA;AAMvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgLvC,CAAA"}
|
|
@@ -37,9 +37,8 @@ export const RestoreMany = props => {
|
|
|
37
37
|
serverURL
|
|
38
38
|
}
|
|
39
39
|
} = useConfig();
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
} = useLocale();
|
|
40
|
+
const currentLocale = useLocale();
|
|
41
|
+
const locale = currentLocale?.code;
|
|
43
42
|
const router = useRouter();
|
|
44
43
|
const {
|
|
45
44
|
clearRouteCache
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","confirmManyRestoreDrawerSlug","RestoreMany","props","collection","slug","viewType","permissions","config","collections","routes","serverURL","code","locale","router","clearRouteCache","searchParams","count","getSelectedIds","selectAll","toggleAll","openModal","i18n","t","restoreAsPublished","setRestoreAsPublished","useState","collectionPermissions","hasUpdatePermission","update","None","selectingAll","AllAvailable","selectedIDs","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","handleRestore","collectionConfig","find","c","whereConstraint","id","in","url","apiRoute","api","path","stringify","limit","select","trash","search","addQueryPrefix","body","versions","drafts","_status","restoreManyResponse","patch","JSON","headers","language","plural","singular","labels","json","restoredDocs","docs","length","successLabel","status","success","label","errors","error","message","description","map","e","join","err","replace","page","undefined","s","labelString","_jsxs","Fragment","_jsx","onClick","checked","name","onToggle","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/RestoreMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\n\nconst confirmManyRestoreDrawerSlug = `confirm-restore-many-docs`\n\nexport type Props = {\n collection: ClientCollectionConfig\n viewType?: ViewTypes\n}\n\nexport const RestoreMany: React.FC<Props> = (props) => {\n const { collection: { slug } = {}, viewType } = props\n\n const { permissions } = useAuth()\n const {\n config: { collections, routes, serverURL },\n } = useConfig()\n const { code: locale } = useLocale()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const searchParams = useSearchParams()\n const { count, getSelectedIds, selectAll, toggleAll } = useSelection()\n const { openModal } = useModal()\n\n const { i18n, t } = useTranslation()\n\n const [restoreAsPublished, setRestoreAsPublished] = React.useState(false)\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission || viewType !== 'trash') {\n return null\n }\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n const selectedIDs = !selectingAll ? getSelectedIds() : []\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere = {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n\n const handleRestore = async () => {\n const collectionConfig = collections.find((c) => c.slug === slug)\n if (!collectionConfig) {\n return\n }\n\n let whereConstraint: Where\n\n if (selectingAll) {\n whereConstraint = finalWhere\n } else {\n whereConstraint = {\n and: [{ id: { in: selectedIDs } }, { deletedAt: { exists: true } }],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: routes.api,\n path: `/${slug}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n trash: true, // Ensure trashed docs are returned\n where: mergeListSearchAndWhere({\n collectionConfig,\n search: parseSearchParams(searchParams)?.search as string,\n where: whereConstraint,\n }),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const restoreManyResponse = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await restoreManyResponse.json()\n\n const restoredDocs = json?.docs?.length || 0\n const successLabel = restoredDocs > 1 ? plural : singular\n\n if (restoreManyResponse.status < 400 || restoredDocs > 0) {\n toast.success(\n t('general:restoredCountSuccessfully', {\n count: restoredDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((e) => e.message).join('\\n'),\n })\n }\n } catch (err) {\n toast.error(t('error:unknown'))\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectingAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }\n\n const collectionConfig = collections.find(({ slug: s }) => s === slug)\n\n const labelString = getTranslation(\n count === 1 ? collectionConfig.labels.singular : collectionConfig.labels.plural,\n i18n,\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:restore')}\n onClick={() => {\n openModal(confirmManyRestoreDrawerSlug)\n }}\n >\n {t('general:restore')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n {t(\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraftCount'\n : 'general:aboutToRestoreCount',\n {\n count,\n label: labelString,\n },\n )}\n {collectionConfig?.versions?.drafts && (\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published-many\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published-many\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={confirmManyRestoreDrawerSlug}\n onConfirm={handleRestore}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","confirmManyRestoreDrawerSlug","RestoreMany","props","collection","slug","viewType","permissions","config","collections","routes","serverURL","currentLocale","locale","code","router","clearRouteCache","searchParams","count","getSelectedIds","selectAll","toggleAll","openModal","i18n","t","restoreAsPublished","setRestoreAsPublished","useState","collectionPermissions","hasUpdatePermission","update","None","selectingAll","AllAvailable","selectedIDs","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","handleRestore","collectionConfig","find","c","whereConstraint","id","in","url","apiRoute","api","path","stringify","limit","select","trash","search","addQueryPrefix","body","versions","drafts","_status","restoreManyResponse","patch","JSON","headers","language","plural","singular","labels","json","restoredDocs","docs","length","successLabel","status","success","label","errors","error","message","description","map","e","join","err","replace","page","undefined","s","labelString","_jsxs","Fragment","_jsx","onClick","checked","name","onToggle","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/RestoreMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\n\nconst confirmManyRestoreDrawerSlug = `confirm-restore-many-docs`\n\nexport type Props = {\n collection: ClientCollectionConfig\n viewType?: ViewTypes\n}\n\nexport const RestoreMany: React.FC<Props> = (props) => {\n const { collection: { slug } = {}, viewType } = props\n\n const { permissions } = useAuth()\n const {\n config: { collections, routes, serverURL },\n } = useConfig()\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const searchParams = useSearchParams()\n const { count, getSelectedIds, selectAll, toggleAll } = useSelection()\n const { openModal } = useModal()\n\n const { i18n, t } = useTranslation()\n\n const [restoreAsPublished, setRestoreAsPublished] = React.useState(false)\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission || viewType !== 'trash') {\n return null\n }\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n const selectedIDs = !selectingAll ? getSelectedIds() : []\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere = {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n\n const handleRestore = async () => {\n const collectionConfig = collections.find((c) => c.slug === slug)\n if (!collectionConfig) {\n return\n }\n\n let whereConstraint: Where\n\n if (selectingAll) {\n whereConstraint = finalWhere\n } else {\n whereConstraint = {\n and: [{ id: { in: selectedIDs } }, { deletedAt: { exists: true } }],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: routes.api,\n path: `/${slug}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n trash: true, // Ensure trashed docs are returned\n where: mergeListSearchAndWhere({\n collectionConfig,\n search: parseSearchParams(searchParams)?.search as string,\n where: whereConstraint,\n }),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const restoreManyResponse = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await restoreManyResponse.json()\n\n const restoredDocs = json?.docs?.length || 0\n const successLabel = restoredDocs > 1 ? plural : singular\n\n if (restoreManyResponse.status < 400 || restoredDocs > 0) {\n toast.success(\n t('general:restoredCountSuccessfully', {\n count: restoredDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((e) => e.message).join('\\n'),\n })\n }\n } catch (err) {\n toast.error(t('error:unknown'))\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectingAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }\n\n const collectionConfig = collections.find(({ slug: s }) => s === slug)\n\n const labelString = getTranslation(\n count === 1 ? collectionConfig.labels.singular : collectionConfig.labels.plural,\n i18n,\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:restore')}\n onClick={() => {\n openModal(confirmManyRestoreDrawerSlug)\n }}\n >\n {t('general:restore')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n {t(\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraftCount'\n : 'general:aboutToRestoreCount',\n {\n count,\n label: labelString,\n },\n )}\n {collectionConfig?.versions?.drafts && (\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published-many\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published-many\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={confirmManyRestoreDrawerSlug}\n onConfirm={handleRestore}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAGzD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,wBAAgB,eAAe,CAAC,KAAK,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAGzD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,wBAAgB,eAAe,CAAC,KAAK,EAAE,0BAA0B,qBAuFhE"}
|
|
@@ -29,9 +29,8 @@ export function SaveDraftButton(props) {
|
|
|
29
29
|
uploadStatus
|
|
30
30
|
} = useDocumentInfo();
|
|
31
31
|
const modified = useFormModified();
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
} = useLocale();
|
|
32
|
+
const currentLocale = useLocale();
|
|
33
|
+
const locale = currentLocale?.code;
|
|
35
34
|
const ref = useRef(null);
|
|
36
35
|
const editDepth = useEditDepth();
|
|
37
36
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","props","config","routes","api","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","
|
|
1
|
+
{"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","props","config","routes","api","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","currentLocale","locale","code","ref","editDepth","t","submit","operation","disabled","saveDraft","search","action","method","apiRoute","path","overrides","_status","skipValidation","count","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","_jsx","buttonId","buttonStyle","className","onClick","size","type"],"sources":["../../../src/elements/SaveDraftButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SaveDraftButtonClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nexport function SaveDraftButton(props: SaveDraftButtonClientProps) {\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { id, collectionSlug, globalSlug, setUnpublishedVersionCount, uploadStatus } =\n useDocumentInfo()\n\n const modified = useFormModified()\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n const operation = useOperation()\n\n const disabled = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${search}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${search}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n\n setUnpublishedVersionCount((count) => count + 1)\n }, [submit, collectionSlug, globalSlug, api, locale, id, disabled, setUnpublishedVersionCount])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (disabled) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={disabled}\n onClick={() => {\n return void saveDraft()\n }}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,MAAM,QAAQ;AAE3C,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,SAASC,gBAAgBC,KAAiC;EAC/D,MAAM;IACJC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG;IAAE;EAChB,CACF,GAAGX,SAAA;EAEJ,MAAM;IAAEY,EAAE;IAAEC,cAAc;IAAEC,UAAU;IAAEC,0BAA0B;IAAEC;EAAY,CAAE,GAChFf,eAAA;EAEF,MAAMgB,QAAA,GAAWpB,eAAA;EACjB,MAAMqB,aAAA,GAAgBf,SAAA;EACtB,MAAMgB,MAAA,GAASD,aAAA,EAAeE,IAAA;EAC9B,MAAMC,GAAA,GAAM1B,MAAA,CAA0B;EACtC,MAAM2B,SAAA,GAAYpB,YAAA;EAClB,MAAM;IAAEqB;EAAC,CAAE,GAAGlB,cAAA;EACd,MAAM;IAAEmB;EAAM,CAAE,GAAG5B,OAAA;EACnB,MAAM6B,SAAA,GAAYrB,YAAA;EAElB,MAAMsB,QAAA,GAAWD,SAAC,KAAc,YAAY,CAACR,QAAA,IAAaD,YAAA,KAAiB;EAE3E,MAAMW,SAAA,GAAYjC,WAAA,CAAY;IAC5B,IAAIgC,QAAA,EAAU;MACZ;IACF;IAEA,MAAME,MAAA,GAAS,WAAWT,MAAA,0CAAgD;IAC1E,IAAIU,MAAA;IACJ,IAAIC,MAAA,GAAS;IAEb,IAAIjB,cAAA,EAAgB;MAClBgB,MAAA,GAASrC,cAAA,CAAe;QACtBuC,QAAA,EAAUpB,GAAA;QACVqB,IAAA,EAAM,IAAInB,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,KAAKgB,MAAA;MAClD;MACA,IAAIhB,EAAA,EAAI;QACNkB,MAAA,GAAS;MACX;IACF;IAEA,IAAIhB,UAAA,EAAY;MACde,MAAA,GAASrC,cAAA,CAAe;QACtBuC,QAAA,EAAUpB,GAAA;QACVqB,IAAA,EAAM,YAAYlB,UAAA,GAAac,MAAA;MACjC;IACF;IAEA,MAAMJ,MAAA,CAAO;MACXK,MAAA;MACAC,MAAA;MACAG,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;MACAC,cAAA,EAAgB;IAClB;IAEApB,0BAAA,CAA4BqB,KAAA,IAAUA,KAAA,GAAQ;EAChD,GAAG,CAACZ,MAAA,EAAQX,cAAA,EAAgBC,UAAA,EAAYH,GAAA,EAAKQ,MAAA,EAAQP,EAAA,EAAIc,QAAA,EAAUX,0BAAA,CAA2B;EAE9FhB,SAAA,CAAU;IAAEsC,UAAA,EAAY;IAAMf,SAAA;IAAWgB,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3D,IAAIb,QAAA,EAAU;MACZ;IAAA;IAGFa,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IACjB,IAAIpB,GAAA,EAAKqB,OAAA,EAAS;MAChBrB,GAAA,CAAIqB,OAAO,CAACC,KAAK;IACnB;EACF;EAEA,oBACEC,IAAA,CAAC9C,UAAA;IACC+C,QAAA,EAAS;IACTC,WAAA,EAAY;IACZC,SAAA,EAAWzC,SAAA;IACXoB,QAAA,EAAUA,QAAA;IACVsB,OAAA,EAASA,CAAA;MACP,OAAO,KAAKrB,SAAA;IACd;IACAN,GAAA,EAAKA,GAAA;IACL4B,IAAA,EAAK;IACLC,IAAA,EAAK;cAEJ3B,CAAA,CAAE;;AAGT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAkBD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwBhD,CAAA"}
|
|
@@ -3,30 +3,29 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import React from 'react';
|
|
6
|
-
import { SortDownIcon } from '../../icons/Sort/index.js';
|
|
6
|
+
import { SortDownIcon, SortUpIcon } from '../../icons/Sort/index.js';
|
|
7
7
|
import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
8
8
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
9
9
|
import './index.css';
|
|
10
10
|
const baseClass = 'sort-header';
|
|
11
11
|
function useSort() {
|
|
12
|
-
const $ = _c(
|
|
12
|
+
const $ = _c(8);
|
|
13
13
|
const {
|
|
14
14
|
handleSortChange,
|
|
15
15
|
orderableFieldName,
|
|
16
16
|
query
|
|
17
17
|
} = useListQuery();
|
|
18
18
|
const querySort = Array.isArray(query.sort) ? query.sort[0] : query.sort;
|
|
19
|
-
const
|
|
19
|
+
const isAscending = querySort === orderableFieldName;
|
|
20
|
+
const isDescending = querySort === `-${orderableFieldName}`;
|
|
21
|
+
const isActive = isAscending || isDescending;
|
|
20
22
|
let t0;
|
|
21
|
-
if ($[0] !== handleSortChange || $[1] !==
|
|
23
|
+
if ($[0] !== handleSortChange || $[1] !== isAscending || $[2] !== orderableFieldName) {
|
|
22
24
|
t0 = () => {
|
|
23
|
-
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
handleSortChange(orderableFieldName);
|
|
25
|
+
handleSortChange(isAscending ? `-${orderableFieldName}` : orderableFieldName);
|
|
27
26
|
};
|
|
28
27
|
$[0] = handleSortChange;
|
|
29
|
-
$[1] =
|
|
28
|
+
$[1] = isAscending;
|
|
30
29
|
$[2] = orderableFieldName;
|
|
31
30
|
$[3] = t0;
|
|
32
31
|
} else {
|
|
@@ -34,62 +33,66 @@ function useSort() {
|
|
|
34
33
|
}
|
|
35
34
|
const handleSortPress = t0;
|
|
36
35
|
let t1;
|
|
37
|
-
if ($[4] !== handleSortPress || $[5] !== isActive) {
|
|
36
|
+
if ($[4] !== handleSortPress || $[5] !== isActive || $[6] !== isAscending) {
|
|
38
37
|
t1 = {
|
|
39
38
|
handleSortPress,
|
|
40
|
-
isActive
|
|
39
|
+
isActive,
|
|
40
|
+
isAscending
|
|
41
41
|
};
|
|
42
42
|
$[4] = handleSortPress;
|
|
43
43
|
$[5] = isActive;
|
|
44
|
-
$[6] =
|
|
44
|
+
$[6] = isAscending;
|
|
45
|
+
$[7] = t1;
|
|
45
46
|
} else {
|
|
46
|
-
t1 = $[
|
|
47
|
+
t1 = $[7];
|
|
47
48
|
}
|
|
48
49
|
return t1;
|
|
49
50
|
}
|
|
50
51
|
export const SortHeader = props => {
|
|
51
|
-
const $ = _c(
|
|
52
|
+
const $ = _c(9);
|
|
52
53
|
const {
|
|
53
54
|
appearance
|
|
54
55
|
} = props;
|
|
55
56
|
const {
|
|
56
57
|
handleSortPress,
|
|
57
|
-
isActive
|
|
58
|
+
isActive,
|
|
59
|
+
isAscending
|
|
58
60
|
} = useSort();
|
|
59
61
|
const {
|
|
60
62
|
t
|
|
61
63
|
} = useTranslation();
|
|
62
64
|
let t0;
|
|
63
|
-
if ($[0] !== appearance || $[1] !== handleSortPress || $[2] !== isActive || $[3] !== t) {
|
|
65
|
+
if ($[0] !== appearance || $[1] !== handleSortPress || $[2] !== isActive || $[3] !== isAscending || $[4] !== t) {
|
|
64
66
|
const t1 = t("general:sortByLabelDirection", {
|
|
65
|
-
direction: t("general:ascending"),
|
|
67
|
+
direction: isAscending ? t("general:descending") : t("general:ascending"),
|
|
66
68
|
label: "Order"
|
|
67
69
|
});
|
|
68
70
|
const t2 = appearance && `${baseClass}--appearance-${appearance}`;
|
|
69
71
|
const t3 = isActive && `${baseClass}--active`;
|
|
70
72
|
let t4;
|
|
71
|
-
if ($[
|
|
73
|
+
if ($[6] !== t2 || $[7] !== t3) {
|
|
72
74
|
t4 = [baseClass, t2, t3].filter(Boolean);
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
75
|
+
$[6] = t2;
|
|
76
|
+
$[7] = t3;
|
|
77
|
+
$[8] = t4;
|
|
76
78
|
} else {
|
|
77
|
-
t4 = $[
|
|
79
|
+
t4 = $[8];
|
|
78
80
|
}
|
|
79
81
|
t0 = _jsx("button", {
|
|
80
82
|
"aria-label": t1,
|
|
81
83
|
className: t4.join(" "),
|
|
82
84
|
onClick: handleSortPress,
|
|
83
85
|
type: "button",
|
|
84
|
-
children: _jsx(SortDownIcon, {})
|
|
86
|
+
children: isAscending ? _jsx(SortUpIcon, {}) : _jsx(SortDownIcon, {})
|
|
85
87
|
});
|
|
86
88
|
$[0] = appearance;
|
|
87
89
|
$[1] = handleSortPress;
|
|
88
90
|
$[2] = isActive;
|
|
89
|
-
$[3] =
|
|
90
|
-
$[4] =
|
|
91
|
+
$[3] = isAscending;
|
|
92
|
+
$[4] = t;
|
|
93
|
+
$[5] = t0;
|
|
91
94
|
} else {
|
|
92
|
-
t0 = $[
|
|
95
|
+
t0 = $[5];
|
|
93
96
|
}
|
|
94
97
|
return t0;
|
|
95
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","SortDownIcon","useListQuery","useTranslation","baseClass","useSort","$","handleSortChange","orderableFieldName","query","querySort","Array","isArray","sort","isActive","t0","handleSortPress","t1","SortHeader","props","appearance","t","direction","label","t2","t3","t4","filter","Boolean","_jsx","className","join","onClick","type","children"],"sources":["../../../src/elements/SortHeader/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { SortDownIcon } from '../../icons/Sort/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.css'\n\nexport type SortHeaderProps = {\n readonly appearance?: 'condensed' | 'default'\n readonly disable?: boolean\n}\n\nconst baseClass = 'sort-header'\n\nfunction useSort() {\n const { handleSortChange, orderableFieldName, query } = useListQuery()\n const querySort = Array.isArray(query.sort) ? query.sort[0] : query.sort\n const
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","SortDownIcon","SortUpIcon","useListQuery","useTranslation","baseClass","useSort","$","handleSortChange","orderableFieldName","query","querySort","Array","isArray","sort","isAscending","isDescending","isActive","t0","handleSortPress","t1","SortHeader","props","appearance","t","direction","label","t2","t3","t4","filter","Boolean","_jsx","className","join","onClick","type","children"],"sources":["../../../src/elements/SortHeader/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { SortDownIcon, SortUpIcon } from '../../icons/Sort/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.css'\n\nexport type SortHeaderProps = {\n readonly appearance?: 'condensed' | 'default'\n readonly disable?: boolean\n}\n\nconst baseClass = 'sort-header'\n\nfunction useSort() {\n const { handleSortChange, orderableFieldName, query } = useListQuery()\n const querySort = Array.isArray(query.sort) ? query.sort[0] : query.sort\n const isAscending = querySort === orderableFieldName\n const isDescending = querySort === `-${orderableFieldName}`\n const isActive = isAscending || isDescending\n\n const handleSortPress = () => {\n void handleSortChange(isAscending ? `-${orderableFieldName}` : orderableFieldName)\n }\n\n return { handleSortPress, isActive, isAscending }\n}\n\nexport const SortHeader: React.FC<SortHeaderProps> = (props) => {\n const { appearance } = props\n const { handleSortPress, isActive, isAscending } = useSort()\n const { t } = useTranslation()\n\n return (\n <button\n aria-label={t('general:sortByLabelDirection', {\n direction: isAscending ? t('general:descending') : t('general:ascending'),\n label: 'Order',\n })}\n className={[\n baseClass,\n appearance && `${baseClass}--appearance-${appearance}`,\n isActive && `${baseClass}--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={handleSortPress}\n type=\"button\"\n >\n {isAscending ? <SortUpIcon /> : <SortDownIcon />}\n </button>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAuK1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","formatAdminURL","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","reset","resetForm","
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","formatAdminURL","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","reset","resetForm","currentLocale","locale","code","i18n","t","revertModalSlug","statusToRender","displayStatusKey","performAction","url","method","apiRoute","path","publishedDoc","get","headers","language","then","res","json","body","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.css'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const { i18n, t } = useTranslation()\n\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(async () => {\n let url\n let method\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'post'\n }\n\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n const body = publishedDoc\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n setUnpublishedVersionCount(0)\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:revertingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:revertingDocument'))\n }\n }\n }, [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n ])\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n\n {!isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction()}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|