@payloadcms/ui 3.69.0-internal.424436e → 3.69.0
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.js +1 -2
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/AppHeader/index.scss +0 -1
- package/dist/elements/ArrayAction/index.d.ts +6 -6
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +8 -8
- 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 +20 -5
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +10 -6
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +36 -39
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +1 -2
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +9 -7
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +19 -16
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +2 -4
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +4 -6
- 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 +8 -12
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -1
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +2 -4
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.js +9 -2
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.js +7 -4
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +5 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/IDLabel/index.d.ts.map +1 -1
- package/dist/elements/IDLabel/index.js +11 -14
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/ItemSearch/index.d.ts +8 -0
- package/dist/elements/ItemsDrawer/ItemSearch/index.d.ts.map +1 -0
- package/dist/elements/ItemsDrawer/ItemSearch/index.js +56 -0
- package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -0
- package/dist/elements/ItemsDrawer/ItemSearch/index.scss +38 -0
- package/dist/elements/ItemsDrawer/index.d.ts +15 -0
- package/dist/elements/ItemsDrawer/index.d.ts.map +1 -0
- package/dist/elements/ItemsDrawer/index.js +195 -0
- package/dist/elements/ItemsDrawer/index.js.map +1 -0
- package/dist/elements/ItemsDrawer/index.scss +102 -0
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/Link/index.js +5 -3
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +6 -4
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +9 -2
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/Logout/index.d.ts.map +1 -1
- package/dist/elements/Logout/index.js +8 -11
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.js +19 -14
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.scss +1 -0
- package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -1
- package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +24 -92
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/index.d.ts +32 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +249 -122
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/Popup/index.scss +49 -231
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +6 -2
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +14 -4
- 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 +8 -5
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +7 -9
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/RestoreButton/index.d.ts.map +1 -1
- package/dist/elements/RestoreButton/index.js +19 -14
- package/dist/elements/RestoreButton/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.d.ts.map +1 -1
- package/dist/elements/RestoreMany/index.js +17 -14
- 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 +11 -5
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +11 -5
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +17 -20
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/context.d.ts.map +1 -1
- package/dist/elements/StepNav/context.js +9 -1
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/StepNav/index.scss +0 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +39 -41
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +9 -12
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +5 -1
- 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 +25 -24
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +8 -5
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +7 -5
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +14 -8
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/withMergedProps/index.d.ts +1 -1
- package/dist/elements/withMergedProps/index.js +1 -1
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +1 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -0
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -0
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.d.ts +3 -0
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Array/ArrayRow.d.ts +7 -18
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +133 -65
- 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 +3 -10
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +9 -3
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +7 -3
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +8 -1
- package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +1 -1
- package/dist/graphics/Account/index.d.ts.map +1 -1
- package/dist/graphics/Account/index.js +2 -4
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +23 -26
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +16 -15
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +1 -2
- package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.js +16 -6
- package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
- package/dist/providers/Folders/index.d.ts.map +1 -1
- package/dist/providers/Folders/index.js +14 -11
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +45 -34
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js +16 -7
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +6 -1
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/scss/app.scss +14 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getGlobalData.d.ts +11 -0
- package/dist/utilities/getGlobalData.d.ts.map +1 -0
- package/dist/utilities/getGlobalData.js +49 -0
- package/dist/utilities/getGlobalData.js.map +1 -0
- package/dist/utilities/getNavGroups.d.ts +5 -0
- package/dist/utilities/getNavGroups.d.ts.map +1 -0
- package/dist/utilities/getNavGroups.js +22 -0
- package/dist/utilities/getNavGroups.js.map +1 -0
- package/dist/utilities/getVisibleEntities.d.ts +5 -0
- package/dist/utilities/getVisibleEntities.d.ts.map +1 -0
- package/dist/utilities/getVisibleEntities.js +31 -0
- package/dist/utilities/getVisibleEntities.js.map +1 -0
- package/dist/utilities/groupNavItems.d.ts +3 -0
- package/dist/utilities/groupNavItems.d.ts.map +1 -1
- package/dist/utilities/groupNavItems.js +3 -0
- package/dist/utilities/groupNavItems.js.map +1 -1
- package/dist/utilities/handleBackToDashboard.js +1 -1
- package/dist/utilities/handleBackToDashboard.js.map +1 -1
- package/dist/utilities/handleGoBack.d.ts.map +1 -1
- package/dist/utilities/handleGoBack.js +1 -2
- package/dist/utilities/handleGoBack.js.map +1 -1
- package/dist/utilities/normalizeRelationshipValue.spec.js +1 -1
- package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +2 -4
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +22 -21
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +36 -22
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +2 -3
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +1 -2
- package/dist/views/List/index.js.map +1 -1
- package/dist/widgets/CollectionCards/index.d.ts +5 -0
- package/dist/widgets/CollectionCards/index.d.ts.map +1 -0
- package/dist/widgets/CollectionCards/index.js +135 -0
- package/dist/widgets/CollectionCards/index.js.map +1 -0
- package/dist/widgets/CollectionCards/index.scss +70 -0
- package/package.json +5 -5
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useModal } from '@faceless-ui/modal';
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
4
|
import { useRouter } from 'next/navigation.js';
|
|
5
|
+
import { formatAdminURL } from 'payload/shared';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
import { toast } from 'sonner';
|
|
7
8
|
import { Dots } from '../../../icons/Dots/index.js';
|
|
@@ -49,8 +50,7 @@ export function CurrentFolderActions({
|
|
|
49
50
|
config
|
|
50
51
|
} = useConfig();
|
|
51
52
|
const {
|
|
52
|
-
routes
|
|
53
|
-
serverURL
|
|
53
|
+
routes
|
|
54
54
|
} = config;
|
|
55
55
|
const {
|
|
56
56
|
closeModal,
|
|
@@ -61,14 +61,17 @@ export function CurrentFolderActions({
|
|
|
61
61
|
t
|
|
62
62
|
} = useTranslation();
|
|
63
63
|
const deleteCurrentFolder = React.useCallback(async () => {
|
|
64
|
-
await fetch(
|
|
64
|
+
await fetch(formatAdminURL({
|
|
65
|
+
apiRoute: routes.api,
|
|
66
|
+
path: `/${folderCollectionSlug}/${folderID}?depth=0`
|
|
67
|
+
}), {
|
|
65
68
|
credentials: 'include',
|
|
66
69
|
method: 'DELETE'
|
|
67
70
|
});
|
|
68
71
|
startRouteTransition(() => {
|
|
69
72
|
router.push(getFolderRoute(breadcrumbs[breadcrumbs.length - 2]?.id || null));
|
|
70
73
|
});
|
|
71
|
-
}, [breadcrumbs, folderCollectionSlug, folderID, getFolderRoute, router,
|
|
74
|
+
}, [breadcrumbs, folderCollectionSlug, folderID, getFolderRoute, router, routes.api, startRouteTransition]);
|
|
72
75
|
if (!folderID) {
|
|
73
76
|
return null;
|
|
74
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","React","toast","Dots","useConfig","useFolder","useRouteCache","useRouteTransition","useTranslation","ConfirmationModal","useDocumentDrawer","Popup","PopupList","Translation","MoveItemsToFolderDrawer","moveToFolderDrawerSlug","confirmDeleteDrawerSlug","baseClass","CurrentFolderActions","className","router","startRouteTransition","breadcrumbs","currentFolder","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","getFolderRoute","moveToFolder","FolderDocumentDrawer","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","id","collectionSlug","clearRouteCache","config","routes","serverURL","closeModal","openModal","i18n","t","deleteCurrentFolder","useCallback","fetch","api","credentials","method","push","length","_jsxs","_Fragment","_jsx","button","filter","Boolean","join","render","ButtonGroup","Button","onClick","label","labels","singular","action","drawerSlug","folderAssignedCollections","value","folderType","fromFolderID","fromFolderName","_folderOrDocumentTitle","itemsToMove","onConfirm","name","toFolderID","success","folderName","title","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onSave"],"sources":["../../../../src/elements/FolderView/CurrentFolderActions/index.tsx"],"sourcesContent":["import { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { Dots } from '../../../icons/Dots/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst moveToFolderDrawerSlug = 'move-to-folder--current-folder'\nconst confirmDeleteDrawerSlug = 'confirm-many-delete'\n\nconst baseClass = 'current-folder-actions'\n\ntype Props = {\n className?: string\n}\nexport function CurrentFolderActions({ className }: Props) {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const {\n breadcrumbs,\n currentFolder,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n getFolderRoute,\n moveToFolder,\n } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n id: folderID,\n collectionSlug: folderCollectionSlug,\n })\n const { clearRouteCache } = useRouteCache()\n const { config } = useConfig()\n const { routes, serverURL } = config\n const { closeModal, openModal } = useModal()\n const { i18n, t } = useTranslation()\n\n const deleteCurrentFolder = React.useCallback(async () => {\n await fetch(`${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}?depth=0`, {\n credentials: 'include',\n method: 'DELETE',\n })\n startRouteTransition(() => {\n router.push(getFolderRoute(breadcrumbs[breadcrumbs.length - 2]?.id || null))\n })\n }, [\n breadcrumbs,\n folderCollectionSlug,\n folderID,\n getFolderRoute,\n router,\n serverURL,\n routes.api,\n startRouteTransition,\n ])\n\n if (!folderID) {\n return null\n }\n\n return (\n <>\n <Popup\n button={<Dots />}\n className={[baseClass, className].filter(Boolean).join(' ')}\n render={() => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n openFolderDrawer()\n }}\n >\n {t('general:editLabel', {\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n })}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(moveToFolderDrawerSlug)\n }}\n >\n {t('folder:moveFolder')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(confirmDeleteDrawerSlug)\n }}\n >\n {t('folder:deleteFolder')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n />\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={moveToFolderDrawerSlug}\n folderAssignedCollections={currentFolder?.value.folderType}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={currentFolder?.value.id}\n fromFolderName={currentFolder?.value._folderOrDocumentTitle}\n itemsToMove={[currentFolder]}\n onConfirm={async ({ id, name }) => {\n await moveToFolder({\n itemsToMove: [currentFolder],\n toFolderID: id,\n })\n if (id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${name}\"`,\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n }\n closeModal(moveToFolderDrawerSlug)\n }}\n title={currentFolder.value._folderOrDocumentTitle}\n />\n\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n title: currentFolder.value._folderOrDocumentTitle,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeleteDrawerSlug}\n onConfirm={deleteCurrentFolder}\n />\n\n <FolderDocumentDrawer\n onSave={() => {\n closeFolderDrawer()\n clearRouteCache()\n }}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","React","toast","Dots","useConfig","useFolder","useRouteCache","useRouteTransition","useTranslation","ConfirmationModal","useDocumentDrawer","Popup","PopupList","Translation","MoveItemsToFolderDrawer","moveToFolderDrawerSlug","confirmDeleteDrawerSlug","baseClass","CurrentFolderActions","className","router","startRouteTransition","breadcrumbs","currentFolder","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","getFolderRoute","moveToFolder","FolderDocumentDrawer","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","id","collectionSlug","clearRouteCache","config","routes","closeModal","openModal","i18n","t","deleteCurrentFolder","useCallback","fetch","apiRoute","api","path","credentials","method","push","length","_jsxs","_Fragment","_jsx","button","filter","Boolean","join","render","ButtonGroup","Button","onClick","label","labels","singular","action","drawerSlug","folderAssignedCollections","value","folderType","fromFolderID","fromFolderName","_folderOrDocumentTitle","itemsToMove","onConfirm","name","toFolderID","success","folderName","title","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onSave"],"sources":["../../../../src/elements/FolderView/CurrentFolderActions/index.tsx"],"sourcesContent":["import { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { Dots } from '../../../icons/Dots/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst moveToFolderDrawerSlug = 'move-to-folder--current-folder'\nconst confirmDeleteDrawerSlug = 'confirm-many-delete'\n\nconst baseClass = 'current-folder-actions'\n\ntype Props = {\n className?: string\n}\nexport function CurrentFolderActions({ className }: Props) {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const {\n breadcrumbs,\n currentFolder,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n getFolderRoute,\n moveToFolder,\n } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n id: folderID,\n collectionSlug: folderCollectionSlug,\n })\n const { clearRouteCache } = useRouteCache()\n const { config } = useConfig()\n const { routes } = config\n const { closeModal, openModal } = useModal()\n const { i18n, t } = useTranslation()\n\n const deleteCurrentFolder = React.useCallback(async () => {\n await fetch(\n formatAdminURL({\n apiRoute: routes.api,\n path: `/${folderCollectionSlug}/${folderID}?depth=0`,\n }),\n {\n credentials: 'include',\n method: 'DELETE',\n },\n )\n startRouteTransition(() => {\n router.push(getFolderRoute(breadcrumbs[breadcrumbs.length - 2]?.id || null))\n })\n }, [\n breadcrumbs,\n folderCollectionSlug,\n folderID,\n getFolderRoute,\n router,\n routes.api,\n startRouteTransition,\n ])\n\n if (!folderID) {\n return null\n }\n\n return (\n <>\n <Popup\n button={<Dots />}\n className={[baseClass, className].filter(Boolean).join(' ')}\n render={() => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n openFolderDrawer()\n }}\n >\n {t('general:editLabel', {\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n })}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(moveToFolderDrawerSlug)\n }}\n >\n {t('folder:moveFolder')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n openModal(confirmDeleteDrawerSlug)\n }}\n >\n {t('folder:deleteFolder')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n />\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={moveToFolderDrawerSlug}\n folderAssignedCollections={currentFolder?.value.folderType}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={currentFolder?.value.id}\n fromFolderName={currentFolder?.value._folderOrDocumentTitle}\n itemsToMove={[currentFolder]}\n onConfirm={async ({ id, name }) => {\n await moveToFolder({\n itemsToMove: [currentFolder],\n toFolderID: id,\n })\n if (id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${name}\"`,\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: currentFolder.value._folderOrDocumentTitle,\n }),\n )\n }\n closeModal(moveToFolderDrawerSlug)\n }}\n title={currentFolder.value._folderOrDocumentTitle}\n />\n\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(folderCollectionConfig.labels.singular, i18n),\n title: currentFolder.value._folderOrDocumentTitle,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeleteDrawerSlug}\n onConfirm={deleteCurrentFolder}\n />\n\n <FolderDocumentDrawer\n onSave={() => {\n closeFolderDrawer()\n clearRouteCache()\n }}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAkB,MAAM,gBAAgB,CAAA;AACtE,OAAO,KAAgB,MAAM,OAAO,CAAA;AAGpC,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AASjE,OAAO,cAAc,CAAA;AAKrB;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,SAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,EAAE;IACD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC,qBA2DA;AAED,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CACpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,uLAc/B,0BAA0B,sBA0E5B,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
5
|
import { useModal } from '@faceless-ui/modal';
|
|
6
6
|
import { getTranslation } from '@payloadcms/translations';
|
|
7
|
+
import { formatAdminURL } from 'payload/shared';
|
|
7
8
|
import React, { useId } from 'react';
|
|
8
9
|
import { toast } from 'sonner';
|
|
9
10
|
import { useForm, useFormFields } from '../../../forms/Form/context.js';
|
|
@@ -73,7 +74,10 @@ export function MoveDocToFolder(t0) {
|
|
|
73
74
|
t4 = () => {
|
|
74
75
|
const fetchFolderLabel = async function fetchFolderLabel() {
|
|
75
76
|
if (fromFolderID && (typeof fromFolderID === "string" || typeof fromFolderID === "number")) {
|
|
76
|
-
const response = await fetch(
|
|
77
|
+
const response = await fetch(formatAdminURL({
|
|
78
|
+
apiRoute: config.routes.api,
|
|
79
|
+
path: `/${folderCollectionSlug}/${fromFolderID}`
|
|
80
|
+
}));
|
|
77
81
|
const folderData = await response.json();
|
|
78
82
|
setFromFolderName(folderData?.name || t("folder:noFolder"));
|
|
79
83
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","folderData","json","name","useEffect","t6","t7","t8","id_0","type","path","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug } from 'payload'\nimport type { FolderOrDocument } from 'payload/shared'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(`${config.routes.api}/${folderCollectionSlug}/${fromFolderID}`)\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","apiRoute","path","folderData","json","name","useEffect","t6","t7","t8","id_0","type","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { type FolderOrDocument, formatAdminURL } from 'payload/shared'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${folderCollectionSlug}/${fromFolderID}`,\n }),\n )\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAUrB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAUrB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA0BjF,CAAA"}
|
|
@@ -12,7 +12,7 @@ import { sanitizeID } from '../../utilities/sanitizeID.js';
|
|
|
12
12
|
import { useDrawerDepth } from '../Drawer/index.js';
|
|
13
13
|
const baseClass = 'id-label';
|
|
14
14
|
export const IDLabel = t0 => {
|
|
15
|
-
const $ = _c(
|
|
15
|
+
const $ = _c(9);
|
|
16
16
|
const {
|
|
17
17
|
id,
|
|
18
18
|
className,
|
|
@@ -23,8 +23,7 @@ export const IDLabel = t0 => {
|
|
|
23
23
|
config: t2
|
|
24
24
|
} = useConfig();
|
|
25
25
|
const {
|
|
26
|
-
routes: t3
|
|
27
|
-
serverURL
|
|
26
|
+
routes: t3
|
|
28
27
|
} = t2;
|
|
29
28
|
const {
|
|
30
29
|
admin: adminRoute
|
|
@@ -36,19 +35,18 @@ export const IDLabel = t0 => {
|
|
|
36
35
|
const drawerDepth = useDrawerDepth();
|
|
37
36
|
const t4 = `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`;
|
|
38
37
|
let t5;
|
|
39
|
-
if ($[0] !== adminRoute || $[1] !== className || $[2] !== drawerDepth || $[3] !== id || $[4] !== prefix || $[5] !==
|
|
38
|
+
if ($[0] !== adminRoute || $[1] !== className || $[2] !== drawerDepth || $[3] !== id || $[4] !== prefix || $[5] !== t4) {
|
|
40
39
|
const docPath = formatAdminURL({
|
|
41
40
|
adminRoute,
|
|
42
|
-
path: t4
|
|
43
|
-
serverURL
|
|
41
|
+
path: t4
|
|
44
42
|
});
|
|
45
43
|
let t6;
|
|
46
|
-
if ($[
|
|
44
|
+
if ($[7] !== className) {
|
|
47
45
|
t6 = [baseClass, className].filter(Boolean);
|
|
48
|
-
$[
|
|
49
|
-
$[
|
|
46
|
+
$[7] = className;
|
|
47
|
+
$[8] = t6;
|
|
50
48
|
} else {
|
|
51
|
-
t6 = $[
|
|
49
|
+
t6 = $[8];
|
|
52
50
|
}
|
|
53
51
|
t5 = _jsxs("div", {
|
|
54
52
|
className: t6.join(" "),
|
|
@@ -63,11 +61,10 @@ export const IDLabel = t0 => {
|
|
|
63
61
|
$[2] = drawerDepth;
|
|
64
62
|
$[3] = id;
|
|
65
63
|
$[4] = prefix;
|
|
66
|
-
$[5] =
|
|
67
|
-
$[6] =
|
|
68
|
-
$[7] = t5;
|
|
64
|
+
$[5] = t4;
|
|
65
|
+
$[6] = t5;
|
|
69
66
|
} else {
|
|
70
|
-
t5 = $[
|
|
67
|
+
t5 = $[6];
|
|
71
68
|
}
|
|
72
69
|
return t5;
|
|
73
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","t4","t5","docPath","path","t6","filter","Boolean","_jsxs","join","title","children","_jsx","href"],"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => {\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n \n {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,OAAA,GAAyEC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,EAAA;IAAAC,SAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAL,EAItF;EADC,MAAAI,MAAA,GAAAC,EAAc,KAAAC,SAAA,GAAL,KAAK,GAAdD,EAAc;EAEd;IAAAE,MAAA,EAAAC;EAAA,IAIIf,SAAA;EAHM;IAAAgB,MAAA,EAAAC;EAAA,IAAAF,EAEP;EADS;IAAAG,KAAA,EAAAC;EAAA,IAAAF,EAAqB;EAIjC;IAAAG,cAAA;IAAAC;EAAA,IAAuCpB,eAAA;EACvC,MAAAqB,WAAA,GAAoBlB,cAAA;EAIZ,MAAAmB,EAAA,OAAIH,cAAA,GAAiB,eAAeA,cAAA,EAAgB,GAAG,WAAWC,UAAA,EAAY,IAAIZ,EAAA,EAAI;EAAA,IAAAe,EAAA;EAAA,IAAAhB,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAc,WAAA,IAAAd,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAe,EAAA;IAF9F,MAAAE,OAAA,GAAgBvB,cAAA;MAAAiB,UAAA;MAAAO,IAAA,EAERH;IAAsF,CAC9F;IAAA,IAAAI,EAAA;IAAA,IAAAnB,CAAA,QAAAE,SAAA;MAGkBiB,EAAA,IAAAtB,SAAA,EAAYK,SAAA,EAAAkB,MAAA,CAAAC,OAAkB;MAAArB,CAAA,MAAAE,SAAA;MAAAF,CAAA,MAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IAA9CgB,EAAA,GAAAM,KAAA,CAAC;MAAApB,SAAA,EAAeiB,EAA8B,CAAAI,IAAA,CAAc;MAAAC,KAAA,EAAavB,EAAA;MAAAwB,QAAA,GACtEtB,MAAA,EAAO,QAEPW,WAAA,IAAc,GAAIY,IAAA,CAAAnC,IAAA;QAAAoC,IAAA,EAAYV,OAAA;QAAAQ,QAAA,EAAU9B,UAAA,CAAWM,EAAA;MAAA,C,IAAcN,UAAA,CAAWM,EAAA;IAAA,C;;;;;;;;;;;SAH/Ee,E;CAMJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ItemsDrawer/ItemSearch/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgB,MAAM,OAAO,CAAA;AAGpC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwBtC,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import React, { useId } from 'react';
|
|
6
|
+
import { SearchIcon } from '../../../icons/Search/index.js';
|
|
7
|
+
import './index.scss';
|
|
8
|
+
const baseClass = 'item-search';
|
|
9
|
+
export const ItemSearch = t0 => {
|
|
10
|
+
const $ = _c(7);
|
|
11
|
+
const {
|
|
12
|
+
placeholder,
|
|
13
|
+
setSearchTerm
|
|
14
|
+
} = t0;
|
|
15
|
+
const inputId = useId();
|
|
16
|
+
const labelId = `${inputId}-label`;
|
|
17
|
+
let t1;
|
|
18
|
+
if ($[0] !== setSearchTerm) {
|
|
19
|
+
t1 = e => {
|
|
20
|
+
setSearchTerm(e.target.value);
|
|
21
|
+
};
|
|
22
|
+
$[0] = setSearchTerm;
|
|
23
|
+
$[1] = t1;
|
|
24
|
+
} else {
|
|
25
|
+
t1 = $[1];
|
|
26
|
+
}
|
|
27
|
+
const handleChange = t1;
|
|
28
|
+
let t2;
|
|
29
|
+
if ($[2] !== handleChange || $[3] !== inputId || $[4] !== labelId || $[5] !== placeholder) {
|
|
30
|
+
t2 = _jsxs("div", {
|
|
31
|
+
className: baseClass,
|
|
32
|
+
children: [_jsx("label", {
|
|
33
|
+
className: "sr-only",
|
|
34
|
+
htmlFor: inputId,
|
|
35
|
+
id: labelId,
|
|
36
|
+
children: placeholder
|
|
37
|
+
}), _jsx("input", {
|
|
38
|
+
"aria-labelledby": labelId,
|
|
39
|
+
className: `${baseClass}__input`,
|
|
40
|
+
id: inputId,
|
|
41
|
+
onChange: handleChange,
|
|
42
|
+
placeholder,
|
|
43
|
+
type: "text"
|
|
44
|
+
}), _jsx(SearchIcon, {})]
|
|
45
|
+
});
|
|
46
|
+
$[2] = handleChange;
|
|
47
|
+
$[3] = inputId;
|
|
48
|
+
$[4] = labelId;
|
|
49
|
+
$[5] = placeholder;
|
|
50
|
+
$[6] = t2;
|
|
51
|
+
} else {
|
|
52
|
+
t2 = $[6];
|
|
53
|
+
}
|
|
54
|
+
return t2;
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useId","SearchIcon","baseClass","ItemSearch","t0","$","placeholder","setSearchTerm","inputId","labelId","t1","e","target","value","handleChange","t2","_jsxs","className","children","_jsx","htmlFor","id","onChange","type"],"sources":["../../../../src/elements/ItemsDrawer/ItemSearch/index.tsx"],"sourcesContent":["'use client'\nimport React, { useId } from 'react'\n\nimport { SearchIcon } from '../../../icons/Search/index.js'\nimport './index.scss'\n\nconst baseClass = 'item-search'\n\nexport type Props = {\n readonly placeholder?: string\n readonly setSearchTerm: (term: string) => void\n}\n\nexport const ItemSearch: React.FC<Props> = ({ placeholder, setSearchTerm }) => {\n const inputId = useId()\n const labelId = `${inputId}-label`\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(e.target.value)\n }\n\n return (\n <div className={baseClass}>\n <label className=\"sr-only\" htmlFor={inputId} id={labelId}>\n {placeholder}\n </label>\n <input\n aria-labelledby={labelId}\n className={`${baseClass}__input`}\n id={inputId}\n onChange={handleChange}\n placeholder={placeholder}\n type=\"text\"\n />\n <SearchIcon />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,KAAK,QAAQ;AAE7B,SAASC,UAAU,QAAQ;AAC3B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,UAAA,GAA8BC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,WAAA;IAAAC;EAAA,IAAAH,EAA8B;EACxE,MAAAI,OAAA,GAAgBR,KAAA;EAChB,MAAAS,OAAA,GAAgB,GAAGD,OAAA,QAAe;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAE,aAAA;IAEbG,EAAA,GAAAC,CAAA;MACnBJ,aAAA,CAAcI,CAAA,CAAAC,MAAA,CAAAC,KAAc;IAAA;IAC9BR,CAAA,MAAAE,aAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAFA,MAAAS,YAAA,GAAqBJ,EAErB;EAAA,IAAAK,EAAA;EAAA,IAAAV,CAAA,QAAAS,YAAA,IAAAT,CAAA,QAAAG,OAAA,IAAAH,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAAC,WAAA;IAGES,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAAf,SAAA;MAAAgB,QAAA,GACCC,IAAA,CAAC;QAAAF,SAAA,EAAgB;QAAAG,OAAA,EAAmBZ,OAAA;QAAAa,EAAA,EAAaZ,OAAA;QAAAS,QAAA,EAC9CZ;MAAA,C,GAEHa,IAAA,CAAC;QAAA,mBACkBV,OAAA;QAAAQ,SAAA,EACN,GAAAf,SAAA,SAAqB;QAAAmB,EAAA,EAC5Bb,OAAA;QAAAc,QAAA,EACMR,YAAA;QAAAR,WAAA;QAAAiB,IAAA,EAEL;MAAA,C,GAEPJ,IAAA,CAAAlB,UAAA,IAAC;IAAA,C;;;;;;;;;SAZHc,E;CAeJ","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
@import '../../../scss/styles.scss';
|
|
2
|
+
|
|
3
|
+
$icon-width: base(2);
|
|
4
|
+
$icon-margin: base(0.25);
|
|
5
|
+
|
|
6
|
+
@layer payload-default {
|
|
7
|
+
.item-search {
|
|
8
|
+
position: sticky;
|
|
9
|
+
top: 0;
|
|
10
|
+
display: flex;
|
|
11
|
+
width: 100%;
|
|
12
|
+
align-items: center;
|
|
13
|
+
z-index: 1;
|
|
14
|
+
|
|
15
|
+
&__input {
|
|
16
|
+
@include formInput;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.icon--search {
|
|
20
|
+
position: absolute;
|
|
21
|
+
top: 50%;
|
|
22
|
+
transform: translate3d(0, -50%, 0);
|
|
23
|
+
right: 0;
|
|
24
|
+
width: $icon-width;
|
|
25
|
+
margin: 0 $icon-margin;
|
|
26
|
+
|
|
27
|
+
.stroke {
|
|
28
|
+
stroke: var(--theme-elevation-300);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@include mid-break {
|
|
33
|
+
&__input {
|
|
34
|
+
margin-bottom: 0;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ClientBlock, ClientWidget, Labels } from 'payload';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import './index.scss';
|
|
4
|
+
export type DrawerItem = ClientBlock | ClientWidget;
|
|
5
|
+
export type ItemsDrawerProps = {
|
|
6
|
+
readonly addRowIndex?: number;
|
|
7
|
+
readonly drawerSlug: string;
|
|
8
|
+
readonly items: (DrawerItem | string)[];
|
|
9
|
+
readonly labels?: Labels;
|
|
10
|
+
readonly onItemClick: (item: DrawerItem, index?: number) => Promise<void> | void;
|
|
11
|
+
readonly searchPlaceholder?: string;
|
|
12
|
+
readonly title?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const ItemsDrawer: React.FC<ItemsDrawerProps>;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ItemsDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAKhE,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,OAAO,cAAc,CAAA;AAGrB,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,CAAA;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAChF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAmED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmIlD,CAAA"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { useModal } from '@faceless-ui/modal';
|
|
5
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
+
import { toWords } from 'payload/shared';
|
|
7
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
8
|
+
import { DefaultBlockImage } from '../../graphics/DefaultBlockImage/index.js';
|
|
9
|
+
import { useConfig } from '../../providers/Config/index.js';
|
|
10
|
+
import { useTranslation } from '../../providers/Translation/index.js';
|
|
11
|
+
import { Drawer } from '../Drawer/index.js';
|
|
12
|
+
import { ThumbnailCard } from '../ThumbnailCard/index.js';
|
|
13
|
+
import './index.scss';
|
|
14
|
+
import { ItemSearch } from './ItemSearch/index.js';
|
|
15
|
+
const baseClass = 'items-drawer';
|
|
16
|
+
const getItemLabel = (item, i18n) => {
|
|
17
|
+
// Handle ClientBlock
|
|
18
|
+
if ('labels' in item && item.labels?.singular) {
|
|
19
|
+
if (typeof item.labels.singular === 'string') {
|
|
20
|
+
return item.labels.singular.toLowerCase();
|
|
21
|
+
}
|
|
22
|
+
if (typeof item.labels.singular === 'object') {
|
|
23
|
+
return getTranslation(item.labels.singular, i18n).toLowerCase();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// Handle ClientWidget with label (already resolved from function on server)
|
|
27
|
+
if ('label' in item && item.label) {
|
|
28
|
+
if (typeof item.label === 'string') {
|
|
29
|
+
return item.label.toLowerCase();
|
|
30
|
+
}
|
|
31
|
+
if (typeof item.label === 'object') {
|
|
32
|
+
return getTranslation(item.label, i18n).toLowerCase();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Fallback to slug
|
|
36
|
+
if ('slug' in item) {
|
|
37
|
+
return toWords(item.slug).toLowerCase();
|
|
38
|
+
}
|
|
39
|
+
return '';
|
|
40
|
+
};
|
|
41
|
+
const getItemSlug = item => {
|
|
42
|
+
return item.slug;
|
|
43
|
+
};
|
|
44
|
+
const getItemImageInfo = item => {
|
|
45
|
+
if ('imageURL' in item) {
|
|
46
|
+
return {
|
|
47
|
+
imageAltText: item.imageAltText,
|
|
48
|
+
imageURL: item.imageURL
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
imageAltText: undefined,
|
|
53
|
+
imageURL: undefined
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
const getItemDisplayLabel = (item, i18n) => {
|
|
57
|
+
// Handle ClientBlock
|
|
58
|
+
if ('labels' in item && item.labels?.singular) {
|
|
59
|
+
return getTranslation(item.labels.singular, i18n);
|
|
60
|
+
}
|
|
61
|
+
// Handle ClientWidget with label (already resolved from function on server)
|
|
62
|
+
if ('label' in item && item.label) {
|
|
63
|
+
if (typeof item.label === 'string') {
|
|
64
|
+
return item.label;
|
|
65
|
+
}
|
|
66
|
+
if (typeof item.label === 'object') {
|
|
67
|
+
return getTranslation(item.label, i18n);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Fallback to slug - convert to human-readable label
|
|
71
|
+
return toWords(item.slug);
|
|
72
|
+
};
|
|
73
|
+
export const ItemsDrawer = props => {
|
|
74
|
+
const {
|
|
75
|
+
addRowIndex,
|
|
76
|
+
drawerSlug,
|
|
77
|
+
items,
|
|
78
|
+
labels,
|
|
79
|
+
onItemClick,
|
|
80
|
+
searchPlaceholder,
|
|
81
|
+
title
|
|
82
|
+
} = props;
|
|
83
|
+
const [searchTerm, setSearchTerm] = useState('');
|
|
84
|
+
const [filteredItems, setFilteredItems] = useState(items);
|
|
85
|
+
const {
|
|
86
|
+
closeModal,
|
|
87
|
+
isModalOpen
|
|
88
|
+
} = useModal();
|
|
89
|
+
const {
|
|
90
|
+
i18n,
|
|
91
|
+
t
|
|
92
|
+
} = useTranslation();
|
|
93
|
+
const {
|
|
94
|
+
config
|
|
95
|
+
} = useConfig();
|
|
96
|
+
const itemGroups = useMemo(() => {
|
|
97
|
+
const groups = {
|
|
98
|
+
_none: []
|
|
99
|
+
};
|
|
100
|
+
filteredItems.forEach(item => {
|
|
101
|
+
if (typeof item === 'object' && 'admin' in item && item.admin?.group) {
|
|
102
|
+
const group = item.admin.group;
|
|
103
|
+
const label = typeof group === 'string' ? group : getTranslation(group, i18n);
|
|
104
|
+
if (Object.hasOwn(groups, label)) {
|
|
105
|
+
groups[label].push(item);
|
|
106
|
+
} else {
|
|
107
|
+
groups[label] = [item];
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
groups._none.push(item);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return groups;
|
|
114
|
+
}, [filteredItems, i18n]);
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
if (!isModalOpen(drawerSlug)) {
|
|
117
|
+
setSearchTerm('');
|
|
118
|
+
}
|
|
119
|
+
}, [isModalOpen, drawerSlug]);
|
|
120
|
+
useEffect(() => {
|
|
121
|
+
const searchTermToUse = searchTerm.toLowerCase();
|
|
122
|
+
const matchingItems = items?.reduce((matchedItems, _item) => {
|
|
123
|
+
let item_0;
|
|
124
|
+
if (typeof _item === 'string') {
|
|
125
|
+
// Handle string references (for blocks)
|
|
126
|
+
item_0 = config.blocksMap?.[_item];
|
|
127
|
+
} else {
|
|
128
|
+
item_0 = _item;
|
|
129
|
+
}
|
|
130
|
+
if (item_0) {
|
|
131
|
+
const itemLabel = getItemLabel(item_0, i18n);
|
|
132
|
+
if (itemLabel.includes(searchTermToUse)) {
|
|
133
|
+
matchedItems.push(item_0);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return matchedItems;
|
|
137
|
+
}, []);
|
|
138
|
+
setFilteredItems(matchingItems || []);
|
|
139
|
+
}, [searchTerm, items, i18n, config.blocksMap]);
|
|
140
|
+
const finalTitle = title || (labels ? t('fields:addLabel', {
|
|
141
|
+
label: getTranslation(labels.singular, i18n)
|
|
142
|
+
}) : t('fields:addNew'));
|
|
143
|
+
return /*#__PURE__*/_jsxs(Drawer, {
|
|
144
|
+
slug: drawerSlug,
|
|
145
|
+
title: finalTitle,
|
|
146
|
+
children: [/*#__PURE__*/_jsx(ItemSearch, {
|
|
147
|
+
placeholder: searchPlaceholder || t('fields:searchForBlock'),
|
|
148
|
+
setSearchTerm: setSearchTerm
|
|
149
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
150
|
+
className: `${baseClass}__items-wrapper`,
|
|
151
|
+
children: /*#__PURE__*/_jsx("ul", {
|
|
152
|
+
className: `${baseClass}__item-groups`,
|
|
153
|
+
children: Object.entries(itemGroups).map(([groupLabel, groupItems]) => !groupItems.length ? null : /*#__PURE__*/_jsxs("li", {
|
|
154
|
+
className: [`${baseClass}__item-group`, groupLabel === '_none' && `${baseClass}__item-group-none`].filter(Boolean).join(' '),
|
|
155
|
+
children: [groupLabel !== '_none' && /*#__PURE__*/_jsx("h3", {
|
|
156
|
+
className: `${baseClass}__item-group-label`,
|
|
157
|
+
children: groupLabel
|
|
158
|
+
}), /*#__PURE__*/_jsx("ul", {
|
|
159
|
+
className: `${baseClass}__items`,
|
|
160
|
+
children: groupItems.map((_item_0, index) => {
|
|
161
|
+
const item_1 = typeof _item_0 === 'string' ? config.blocksMap?.[_item_0] : _item_0;
|
|
162
|
+
if (!item_1) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
const {
|
|
166
|
+
imageAltText,
|
|
167
|
+
imageURL
|
|
168
|
+
} = getItemImageInfo(item_1);
|
|
169
|
+
const displayLabel = getItemDisplayLabel(item_1, i18n);
|
|
170
|
+
return /*#__PURE__*/_jsx("li", {
|
|
171
|
+
className: `${baseClass}__item`,
|
|
172
|
+
children: /*#__PURE__*/_jsx(ThumbnailCard, {
|
|
173
|
+
alignLabel: "center",
|
|
174
|
+
label: displayLabel,
|
|
175
|
+
onClick: () => {
|
|
176
|
+
void onItemClick(item_1, addRowIndex);
|
|
177
|
+
closeModal(drawerSlug);
|
|
178
|
+
},
|
|
179
|
+
thumbnail: /*#__PURE__*/_jsx("div", {
|
|
180
|
+
className: `${baseClass}__default-image`,
|
|
181
|
+
children: imageURL ? /*#__PURE__*/_jsx("img", {
|
|
182
|
+
alt: imageAltText,
|
|
183
|
+
src: imageURL
|
|
184
|
+
}) : /*#__PURE__*/_jsx(DefaultBlockImage, {})
|
|
185
|
+
})
|
|
186
|
+
})
|
|
187
|
+
}, index);
|
|
188
|
+
})
|
|
189
|
+
})]
|
|
190
|
+
}, groupLabel))
|
|
191
|
+
})
|
|
192
|
+
})]
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=index.js.map
|