@payloadcms/ui 3.42.0 → 3.43.0-canary.1
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/CopyLocaleData/index.d.ts.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +6 -1
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +51 -67
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/FolderView/CollectionTypePill/index.d.ts.map +1 -1
- package/dist/elements/FolderView/CollectionTypePill/index.js +13 -10
- package/dist/elements/FolderView/CollectionTypePill/index.js.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.js +17 -11
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +1 -3
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -1
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +7 -4
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +230 -201
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.d.ts +8 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +82 -0
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileTable/index.d.ts +1 -22
- package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -1
- package/dist/elements/FolderView/FolderFileTable/index.js +245 -163
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts +2 -8
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -1
- package/dist/elements/FolderView/ItemCardGrid/index.js +24 -90
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
- package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -1
- package/dist/elements/FolderView/SortByPill/index.js +17 -15
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +8 -10
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/exports/client/index.js +22 -22
- 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/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +1 -0
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/providers/Folders/index.d.ts +59 -46
- package/dist/providers/Folders/index.d.ts.map +1 -1
- package/dist/providers/Folders/index.js +163 -572
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +6 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +19 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/index.js +1 -0
- package/dist/providers/TableColumns/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.d.ts +29 -0
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
- package/dist/utilities/getFolderResultsComponentAndData.js +128 -0
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
- package/dist/views/BrowseByFolder/index.d.ts +1 -4
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -1
- package/dist/views/BrowseByFolder/index.js +219 -158
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.js +25 -50
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.d.ts +1 -1
- package/dist/views/CollectionFolder/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/index.js +186 -153
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyLocaleData/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyLocaleData/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAgB1C,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EA8LlC,CAAA"}
|
|
@@ -5,6 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
import { useModal } from '@faceless-ui/modal';
|
|
6
6
|
import { getTranslation } from '@payloadcms/translations';
|
|
7
7
|
import { useRouter } from 'next/navigation.js';
|
|
8
|
+
import { formatAdminURL } from 'payload/shared';
|
|
8
9
|
import React, { useCallback } from 'react';
|
|
9
10
|
import { toast } from 'sonner';
|
|
10
11
|
import { CheckboxField } from '../../fields/Checkbox/index.js';
|
|
@@ -131,7 +132,11 @@ export const CopyLocaleData = () => {
|
|
|
131
132
|
toLocale: to
|
|
132
133
|
});
|
|
133
134
|
setCopying(false);
|
|
134
|
-
startRouteTransition(() => router.push(
|
|
135
|
+
startRouteTransition(() => router.push(formatAdminURL({
|
|
136
|
+
adminRoute: admin,
|
|
137
|
+
path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,
|
|
138
|
+
serverURL
|
|
139
|
+
}) + `?locale=${to}`));
|
|
135
140
|
toggleModal(drawerSlug);
|
|
136
141
|
} catch (t9) {
|
|
137
142
|
const error = t9;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","serverURL","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","t2","locales","map","_temp","localeOptions","t3","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t4","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t5","t6","useEffect","t7","t8","from","to","docID","overrideData","push","t9","error","message","copyLocaleData","info","t10","t11","Symbol","for","selectedOption","t12","selectedOption_0","t13","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","path","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } 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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n `${serverURL}${admin}/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n startRouteTransition,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","serverURL","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","t2","locales","map","_temp","localeOptions","t3","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t4","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t5","t6","useEffect","t7","t8","from","to","docID","overrideData","push","adminRoute","path","t9","error","message","copyLocaleData","info","t10","t11","Symbol","for","selectedOption","t12","selectedOption_0","t13","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } 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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n serverURL,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n startRouteTransition,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\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/Drawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Drawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqE,MAAM,OAAO,CAAA;AAEzF,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAKrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,MAAM,CAAA;AAE9B,eAAO,MAAM,gBAAgB,oBAAqB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAG,MACzD,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyBhD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoFlC,CAAA;AAED,eAAO,MAAM,kBAAkB,uBAAmB,CAAA;AAElD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAKvE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,MAAiC,CAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { Modal, useModal } from '@faceless-ui/modal';
|
|
6
|
-
import React, { createContext, use, useCallback,
|
|
6
|
+
import React, { createContext, use, useCallback, useLayoutEffect, useState } from 'react';
|
|
7
7
|
import { XIcon } from '../../icons/X/index.js';
|
|
8
8
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
9
9
|
import { Gutter } from '../Gutter/index.js';
|
|
@@ -88,7 +88,7 @@ export const DrawerToggler = t0 => {
|
|
|
88
88
|
return t2;
|
|
89
89
|
};
|
|
90
90
|
export const Drawer = t0 => {
|
|
91
|
-
const $ = _c(
|
|
91
|
+
const $ = _c(22);
|
|
92
92
|
const {
|
|
93
93
|
slug,
|
|
94
94
|
children,
|
|
@@ -107,71 +107,55 @@ export const Drawer = t0 => {
|
|
|
107
107
|
modalState
|
|
108
108
|
} = useModal();
|
|
109
109
|
const drawerDepth = useDrawerDepth();
|
|
110
|
-
const
|
|
111
|
-
const [animateIn, setAnimateIn] = useState(
|
|
110
|
+
const isOpen = !!modalState[slug]?.isOpen;
|
|
111
|
+
const [animateIn, setAnimateIn] = useState(isOpen);
|
|
112
112
|
let t2;
|
|
113
113
|
let t3;
|
|
114
|
-
if ($[0] !==
|
|
114
|
+
if ($[0] !== isOpen) {
|
|
115
115
|
t2 = () => {
|
|
116
|
-
setIsOpen(modalState[slug]?.isOpen);
|
|
117
|
-
};
|
|
118
|
-
t3 = [slug, modalState];
|
|
119
|
-
$[0] = modalState;
|
|
120
|
-
$[1] = slug;
|
|
121
|
-
$[2] = t2;
|
|
122
|
-
$[3] = t3;
|
|
123
|
-
} else {
|
|
124
|
-
t2 = $[2];
|
|
125
|
-
t3 = $[3];
|
|
126
|
-
}
|
|
127
|
-
useEffect(t2, t3);
|
|
128
|
-
let t4;
|
|
129
|
-
let t5;
|
|
130
|
-
if ($[4] !== isOpen) {
|
|
131
|
-
t4 = () => {
|
|
132
116
|
setAnimateIn(isOpen);
|
|
133
117
|
};
|
|
134
|
-
|
|
135
|
-
$[
|
|
136
|
-
$[
|
|
137
|
-
$[
|
|
118
|
+
t3 = [isOpen];
|
|
119
|
+
$[0] = isOpen;
|
|
120
|
+
$[1] = t2;
|
|
121
|
+
$[2] = t3;
|
|
138
122
|
} else {
|
|
139
|
-
|
|
140
|
-
|
|
123
|
+
t2 = $[1];
|
|
124
|
+
t3 = $[2];
|
|
141
125
|
}
|
|
142
|
-
|
|
126
|
+
useLayoutEffect(t2, t3);
|
|
143
127
|
if (isOpen) {
|
|
144
|
-
const
|
|
145
|
-
const
|
|
146
|
-
let
|
|
147
|
-
if ($[
|
|
148
|
-
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
152
|
-
$[
|
|
128
|
+
const t4 = animateIn && `${baseClass}--is-open`;
|
|
129
|
+
const t5 = drawerDepth > 1 && `${baseClass}--nested`;
|
|
130
|
+
let t6;
|
|
131
|
+
if ($[3] !== className || $[4] !== t4 || $[5] !== t5) {
|
|
132
|
+
t6 = [className, baseClass, t4, t5].filter(Boolean);
|
|
133
|
+
$[3] = className;
|
|
134
|
+
$[4] = t4;
|
|
135
|
+
$[5] = t5;
|
|
136
|
+
$[6] = t6;
|
|
153
137
|
} else {
|
|
154
|
-
|
|
138
|
+
t6 = $[6];
|
|
155
139
|
}
|
|
156
|
-
const
|
|
157
|
-
const
|
|
158
|
-
let
|
|
159
|
-
if ($[
|
|
160
|
-
let
|
|
161
|
-
if ($[
|
|
162
|
-
|
|
163
|
-
$[
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
140
|
+
const t7 = t6.join(" ");
|
|
141
|
+
const t8 = drawerZBase + drawerDepth;
|
|
142
|
+
let t9;
|
|
143
|
+
if ($[7] !== Header || $[8] !== children || $[9] !== closeModal || $[10] !== drawerDepth || $[11] !== gutter || $[12] !== hoverTitle || $[13] !== slug || $[14] !== t || $[15] !== t7 || $[16] !== t8 || $[17] !== title) {
|
|
144
|
+
let t10;
|
|
145
|
+
if ($[19] !== closeModal || $[20] !== slug) {
|
|
146
|
+
t10 = () => closeModal(slug);
|
|
147
|
+
$[19] = closeModal;
|
|
148
|
+
$[20] = slug;
|
|
149
|
+
$[21] = t10;
|
|
166
150
|
} else {
|
|
167
|
-
|
|
151
|
+
t10 = $[21];
|
|
168
152
|
}
|
|
169
|
-
|
|
153
|
+
t9 = _jsx(DrawerDepthProvider, {
|
|
170
154
|
children: _jsxs(Modal, {
|
|
171
|
-
className:
|
|
155
|
+
className: t7,
|
|
172
156
|
slug,
|
|
173
157
|
style: {
|
|
174
|
-
zIndex:
|
|
158
|
+
zIndex: t8
|
|
175
159
|
},
|
|
176
160
|
children: [(!drawerDepth || drawerDepth === 1) && _jsx("div", {
|
|
177
161
|
className: `${baseClass}__blur-bg`
|
|
@@ -179,7 +163,7 @@ export const Drawer = t0 => {
|
|
|
179
163
|
"aria-label": t("general:close"),
|
|
180
164
|
className: `${baseClass}__close`,
|
|
181
165
|
id: `close-drawer__${slug}`,
|
|
182
|
-
onClick:
|
|
166
|
+
onClick: t10,
|
|
183
167
|
type: "button"
|
|
184
168
|
}), _jsxs("div", {
|
|
185
169
|
className: `${baseClass}__content`,
|
|
@@ -211,22 +195,22 @@ export const Drawer = t0 => {
|
|
|
211
195
|
})]
|
|
212
196
|
})
|
|
213
197
|
});
|
|
214
|
-
$[
|
|
215
|
-
$[
|
|
216
|
-
$[
|
|
217
|
-
$[
|
|
218
|
-
$[
|
|
219
|
-
$[
|
|
220
|
-
$[
|
|
221
|
-
$[
|
|
222
|
-
$[
|
|
223
|
-
$[
|
|
224
|
-
$[
|
|
225
|
-
$[
|
|
198
|
+
$[7] = Header;
|
|
199
|
+
$[8] = children;
|
|
200
|
+
$[9] = closeModal;
|
|
201
|
+
$[10] = drawerDepth;
|
|
202
|
+
$[11] = gutter;
|
|
203
|
+
$[12] = hoverTitle;
|
|
204
|
+
$[13] = slug;
|
|
205
|
+
$[14] = t;
|
|
206
|
+
$[15] = t7;
|
|
207
|
+
$[16] = t8;
|
|
208
|
+
$[17] = title;
|
|
209
|
+
$[18] = t9;
|
|
226
210
|
} else {
|
|
227
|
-
|
|
211
|
+
t9 = $[18];
|
|
228
212
|
}
|
|
229
|
-
return
|
|
213
|
+
return t9;
|
|
230
214
|
}
|
|
231
215
|
return null;
|
|
232
216
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","createContext","use","useCallback","useEffect","useState","XIcon","useTranslation","Gutter","baseClass","drawerZBase","formatDrawerSlug","slug","depth","useDrawerSlug","DrawerToggler","t0","$","children","className","disabled","onClick","rest","openModal","t1","e","handleClick","t2","_jsx","type","Drawer","gutter","Header","hoverTitle","title","undefined","t","closeModal","modalState","drawerDepth","useDrawerDepth","isOpen","setIsOpen","animateIn","setAnimateIn","t3","t4","t5","t6","t7","t8","filter","Boolean","t9","join","t10","t11","t12","DrawerDepthProvider","_jsxs","style","zIndex","id","width","left","right","DrawerDepthContext","parentDepth","value"],"sources":["../../../src/elements/Drawer/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { createContext, use, useCallback, useEffect, useState } from 'react'\n\nimport type { Props, TogglerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer'\n\nexport const drawerZBase = 100\n\nexport const formatDrawerSlug = ({ slug, depth }: { depth: number; slug: string }): string =>\n `drawer_${depth}_${slug}`\n\nexport { useDrawerSlug } from './useDrawerSlug.js'\n\nexport const DrawerToggler: React.FC<TogglerProps> = ({\n slug,\n children,\n className,\n disabled,\n onClick,\n ...rest\n}) => {\n const { openModal } = useModal()\n\n const handleClick = useCallback(\n (e) => {\n openModal(slug)\n if (typeof onClick === 'function') {\n onClick(e)\n }\n },\n [openModal, slug, onClick],\n )\n\n return (\n <button className={className} disabled={disabled} onClick={handleClick} type=\"button\" {...rest}>\n {children}\n </button>\n )\n}\n\nexport const Drawer: React.FC<Props> = ({\n slug,\n children,\n className,\n gutter = true,\n Header,\n hoverTitle,\n title,\n}) => {\n const { t } = useTranslation()\n const { closeModal, modalState } = useModal()\n const drawerDepth = useDrawerDepth()\n\n const [isOpen, setIsOpen] = useState(false)\n const [animateIn, setAnimateIn] = useState(false)\n\n useEffect(() => {\n setIsOpen(modalState[slug]?.isOpen)\n }, [slug, modalState])\n\n useEffect(() => {\n setAnimateIn(isOpen)\n }, [isOpen])\n\n if (isOpen) {\n // IMPORTANT: do not render the drawer until it is explicitly open, this is to avoid large html trees especially when nesting drawers\n return (\n <DrawerDepthProvider>\n <Modal\n className={[\n className,\n baseClass,\n animateIn && `${baseClass}--is-open`,\n drawerDepth > 1 && `${baseClass}--nested`,\n ]\n .filter(Boolean)\n .join(' ')}\n slug={slug}\n style={{\n zIndex: drawerZBase + drawerDepth,\n }}\n >\n {(!drawerDepth || drawerDepth === 1) && <div className={`${baseClass}__blur-bg`} />}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n />\n <div\n className={`${baseClass}__content`}\n style={{\n width: `calc(100% - (${drawerDepth} * var(--gutter-h)))`,\n }}\n >\n <div className={`${baseClass}__blur-bg-content`} />\n <Gutter className={`${baseClass}__content-children`} left={gutter} right={gutter}>\n {Header}\n {Header === undefined && (\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`} title={hoverTitle ? title : null}>\n {title}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )}\n {children}\n </Gutter>\n </div>\n </Modal>\n </DrawerDepthProvider>\n )\n }\n\n return null\n}\n\nexport const DrawerDepthContext = createContext(1)\n\nexport const DrawerDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useDrawerDepth()\n const depth = parentDepth + 1\n\n return <DrawerDepthContext value={depth}>{children}</DrawerDepthContext>\n}\n\nexport const useDrawerDepth = (): number => use(DrawerDepthContext)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","createContext","use","useCallback","useLayoutEffect","useState","XIcon","useTranslation","Gutter","baseClass","drawerZBase","formatDrawerSlug","slug","depth","useDrawerSlug","DrawerToggler","t0","$","children","className","disabled","onClick","rest","openModal","t1","e","handleClick","t2","_jsx","type","Drawer","gutter","Header","hoverTitle","title","undefined","t","closeModal","modalState","drawerDepth","useDrawerDepth","isOpen","animateIn","setAnimateIn","t3","t4","t5","t6","filter","Boolean","t7","join","t8","t9","t10","DrawerDepthProvider","_jsxs","style","zIndex","id","width","left","right","DrawerDepthContext","parentDepth","value"],"sources":["../../../src/elements/Drawer/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { createContext, use, useCallback, useLayoutEffect, useState } from 'react'\n\nimport type { Props, TogglerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer'\n\nexport const drawerZBase = 100\n\nexport const formatDrawerSlug = ({ slug, depth }: { depth: number; slug: string }): string =>\n `drawer_${depth}_${slug}`\n\nexport { useDrawerSlug } from './useDrawerSlug.js'\n\nexport const DrawerToggler: React.FC<TogglerProps> = ({\n slug,\n children,\n className,\n disabled,\n onClick,\n ...rest\n}) => {\n const { openModal } = useModal()\n\n const handleClick = useCallback(\n (e) => {\n openModal(slug)\n if (typeof onClick === 'function') {\n onClick(e)\n }\n },\n [openModal, slug, onClick],\n )\n\n return (\n <button className={className} disabled={disabled} onClick={handleClick} type=\"button\" {...rest}>\n {children}\n </button>\n )\n}\n\nexport const Drawer: React.FC<Props> = ({\n slug,\n children,\n className,\n gutter = true,\n Header,\n hoverTitle,\n title,\n}) => {\n const { t } = useTranslation()\n const { closeModal, modalState } = useModal()\n const drawerDepth = useDrawerDepth()\n\n const isOpen = !!modalState[slug]?.isOpen\n\n const [animateIn, setAnimateIn] = useState(isOpen)\n\n useLayoutEffect(() => {\n setAnimateIn(isOpen)\n }, [isOpen])\n\n if (isOpen) {\n // IMPORTANT: do not render the drawer until it is explicitly open, this is to avoid large html trees especially when nesting drawers\n return (\n <DrawerDepthProvider>\n <Modal\n className={[\n className,\n baseClass,\n animateIn && `${baseClass}--is-open`,\n drawerDepth > 1 && `${baseClass}--nested`,\n ]\n .filter(Boolean)\n .join(' ')}\n slug={slug}\n style={{\n zIndex: drawerZBase + drawerDepth,\n }}\n >\n {(!drawerDepth || drawerDepth === 1) && <div className={`${baseClass}__blur-bg`} />}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n />\n <div\n className={`${baseClass}__content`}\n style={{\n width: `calc(100% - (${drawerDepth} * var(--gutter-h)))`,\n }}\n >\n <div className={`${baseClass}__blur-bg-content`} />\n <Gutter className={`${baseClass}__content-children`} left={gutter} right={gutter}>\n {Header}\n {Header === undefined && (\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`} title={hoverTitle ? title : null}>\n {title}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )}\n {children}\n </Gutter>\n </div>\n </Modal>\n </DrawerDepthProvider>\n )\n }\n\n return null\n}\n\nexport const DrawerDepthContext = createContext(1)\n\nexport const DrawerDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useDrawerDepth()\n const depth = parentDepth + 1\n\n return <DrawerDepthContext value={depth}>{children}</DrawerDepthContext>\n}\n\nexport const useDrawerDepth = (): number => use(DrawerDepthContext)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/CollectionTypePill/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/CollectionTypePill/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,kBAAkB,sBAoDjC"}
|
|
@@ -14,10 +14,10 @@ const baseClass = 'collection-type';
|
|
|
14
14
|
export function CollectionTypePill() {
|
|
15
15
|
const $ = _c(13);
|
|
16
16
|
const {
|
|
17
|
-
|
|
17
|
+
activeCollectionFolderSlugs: visibleCollectionSlugs,
|
|
18
|
+
allCollectionFolderSlugs: folderCollectionSlugs,
|
|
18
19
|
folderCollectionSlug,
|
|
19
|
-
|
|
20
|
-
visibleCollectionSlugs
|
|
20
|
+
refineFolderData
|
|
21
21
|
} = useFolder();
|
|
22
22
|
const {
|
|
23
23
|
i18n,
|
|
@@ -54,18 +54,21 @@ export function CollectionTypePill() {
|
|
|
54
54
|
}
|
|
55
55
|
const [allCollectionOptions] = React.useState(t0);
|
|
56
56
|
let t1;
|
|
57
|
-
if ($[6] !== allCollectionOptions || $[7] !==
|
|
57
|
+
if ($[6] !== allCollectionOptions || $[7] !== refineFolderData || $[8] !== t || $[9] !== visibleCollectionSlugs) {
|
|
58
58
|
let t2;
|
|
59
|
-
if ($[11] !==
|
|
59
|
+
if ($[11] !== refineFolderData) {
|
|
60
60
|
t2 = t3 => {
|
|
61
61
|
const {
|
|
62
|
-
selectedValues
|
|
62
|
+
selectedValues: relationTo
|
|
63
63
|
} = t3;
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
refineFolderData({
|
|
65
|
+
query: {
|
|
66
|
+
relationTo
|
|
67
|
+
},
|
|
68
|
+
updateURL: true
|
|
66
69
|
});
|
|
67
70
|
};
|
|
68
|
-
$[11] =
|
|
71
|
+
$[11] = refineFolderData;
|
|
69
72
|
$[12] = t2;
|
|
70
73
|
} else {
|
|
71
74
|
t2 = $[12];
|
|
@@ -87,7 +90,7 @@ export function CollectionTypePill() {
|
|
|
87
90
|
selectedValues: visibleCollectionSlugs
|
|
88
91
|
}, "relation-to-selection-popup");
|
|
89
92
|
$[6] = allCollectionOptions;
|
|
90
|
-
$[7] =
|
|
93
|
+
$[7] = refineFolderData;
|
|
91
94
|
$[8] = t;
|
|
92
95
|
$[9] = visibleCollectionSlugs;
|
|
93
96
|
$[10] = t1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useConfig","useFolder","useTranslation","Button","CheckboxPopup","baseClass","CollectionTypePill","$","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useConfig","useFolder","useTranslation","Button","CheckboxPopup","baseClass","CollectionTypePill","$","activeCollectionFolderSlugs","visibleCollectionSlugs","allCollectionFolderSlugs","folderCollectionSlugs","folderCollectionSlug","refineFolderData","i18n","t","config","getEntityConfig","t0","collections","reduce","acc","collection","folders","includes","slug","push","label","labels","plural","value","collectionSlug","allCollectionOptions","useState","t1","t2","t3","selectedValues","relationTo","query","updateURL","_jsx","_jsxs","buttonStyle","el","icon","margin","size","children","length","className","options"],"sources":["../../../../src/elements/FolderView/CollectionTypePill/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { CheckboxPopup } from '../../CheckboxPopup/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-type'\n\nexport function CollectionTypePill() {\n const {\n activeCollectionFolderSlugs: visibleCollectionSlugs,\n allCollectionFolderSlugs: folderCollectionSlugs,\n folderCollectionSlug,\n refineFolderData,\n } = useFolder()\n const { i18n, t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n\n const [allCollectionOptions] = React.useState(() => {\n return config.collections.reduce(\n (acc, collection) => {\n if (collection.folders && folderCollectionSlugs.includes(collection.slug)) {\n acc.push({\n label: getTranslation(collection.labels?.plural, i18n),\n value: collection.slug,\n })\n }\n\n return acc\n },\n [\n {\n label: getTranslation(\n getEntityConfig({ collectionSlug: folderCollectionSlug }).labels?.plural,\n i18n,\n ),\n value: folderCollectionSlug,\n },\n ],\n )\n })\n\n return (\n <CheckboxPopup\n Button={\n <Button buttonStyle=\"pill\" el=\"div\" icon=\"chevron\" margin={false} size=\"small\">\n {visibleCollectionSlugs.length ? (\n <span className={`${baseClass}__count`}>{visibleCollectionSlugs.length}</span>\n ) : null}\n {t('version:type')}\n </Button>\n }\n key=\"relation-to-selection-popup\"\n onChange={({ selectedValues: relationTo }) => {\n void refineFolderData({ query: { relationTo }, updateURL: true })\n }}\n options={allCollectionOptions}\n selectedValues={visibleCollectionSlugs}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/CurrentFolderActions/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/CurrentFolderActions/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAoBzB,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AACD,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,qBA8IxD"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useModal } from '@faceless-ui/modal';
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
|
+
import { useRouter } from 'next/navigation.js';
|
|
4
5
|
import React from 'react';
|
|
5
6
|
import { toast } from 'sonner';
|
|
6
7
|
import { Dots } from '../../../icons/Dots/index.js';
|
|
7
8
|
import { useConfig } from '../../../providers/Config/index.js';
|
|
8
9
|
import { useFolder } from '../../../providers/Folders/index.js';
|
|
10
|
+
import { useRouteCache } from '../../../providers/RouteCache/index.js';
|
|
11
|
+
import { useRouteTransition } from '../../../providers/RouteTransition/index.js';
|
|
9
12
|
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
10
13
|
import { ConfirmationModal } from '../../ConfirmationModal/index.js';
|
|
11
14
|
import { useDocumentDrawer } from '../../DocumentDrawer/index.js';
|
|
@@ -18,6 +21,10 @@ const baseClass = 'current-folder-actions';
|
|
|
18
21
|
export function CurrentFolderActions({
|
|
19
22
|
className
|
|
20
23
|
}) {
|
|
24
|
+
const router = useRouter();
|
|
25
|
+
const {
|
|
26
|
+
startRouteTransition
|
|
27
|
+
} = useRouteTransition();
|
|
21
28
|
const {
|
|
22
29
|
breadcrumbs,
|
|
23
30
|
currentFolder,
|
|
@@ -25,9 +32,8 @@ export function CurrentFolderActions({
|
|
|
25
32
|
folderCollectionSlug,
|
|
26
33
|
folderFieldName,
|
|
27
34
|
folderID,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
setFolderID
|
|
35
|
+
getFolderRoute,
|
|
36
|
+
moveToFolder
|
|
31
37
|
} = useFolder();
|
|
32
38
|
const [FolderDocumentDrawer,, {
|
|
33
39
|
closeDrawer: closeFolderDrawer,
|
|
@@ -36,6 +42,9 @@ export function CurrentFolderActions({
|
|
|
36
42
|
id: folderID,
|
|
37
43
|
collectionSlug: folderCollectionSlug
|
|
38
44
|
});
|
|
45
|
+
const {
|
|
46
|
+
clearRouteCache
|
|
47
|
+
} = useRouteCache();
|
|
39
48
|
const {
|
|
40
49
|
config
|
|
41
50
|
} = useConfig();
|
|
@@ -56,10 +65,10 @@ export function CurrentFolderActions({
|
|
|
56
65
|
credentials: 'include',
|
|
57
66
|
method: 'DELETE'
|
|
58
67
|
});
|
|
59
|
-
|
|
60
|
-
|
|
68
|
+
startRouteTransition(() => {
|
|
69
|
+
router.push(getFolderRoute(breadcrumbs[breadcrumbs.length - 2]?.id || null));
|
|
61
70
|
});
|
|
62
|
-
}, [breadcrumbs, folderCollectionSlug, folderID, routes.api,
|
|
71
|
+
}, [breadcrumbs, folderCollectionSlug, folderID, getFolderRoute, router, serverURL, routes.api, startRouteTransition]);
|
|
63
72
|
if (!folderID) {
|
|
64
73
|
return null;
|
|
65
74
|
}
|
|
@@ -139,12 +148,9 @@ export function CurrentFolderActions({
|
|
|
139
148
|
modalSlug: confirmDeleteDrawerSlug,
|
|
140
149
|
onConfirm: deleteCurrentFolder
|
|
141
150
|
}), /*#__PURE__*/_jsx(FolderDocumentDrawer, {
|
|
142
|
-
onSave:
|
|
143
|
-
renameFolder({
|
|
144
|
-
folderID: result.doc.id,
|
|
145
|
-
newName: result.doc[folderCollectionConfig.admin.useAsTitle]
|
|
146
|
-
});
|
|
151
|
+
onSave: () => {
|
|
147
152
|
closeFolderDrawer();
|
|
153
|
+
clearRouteCache();
|
|
148
154
|
}
|
|
149
155
|
})]
|
|
150
156
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","React","toast","Dots","useConfig","useFolder","useTranslation","ConfirmationModal","useDocumentDrawer","Popup","PopupList","Translation","MoveItemsToFolderDrawer","moveToFolderDrawerSlug","confirmDeleteDrawerSlug","baseClass","CurrentFolderActions","className","breadcrumbs","currentFolder","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","moveToFolder","renameFolder","setFolderID","FolderDocumentDrawer","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","id","collectionSlug","config","routes","serverURL","closeModal","openModal","i18n","t","deleteCurrentFolder","useCallback","fetch","api","credentials","method","length","_jsxs","_Fragment","_jsx","button","filter","Boolean","join","render","ButtonGroup","Button","onClick","label","labels","singular","action","drawerSlug","fromFolderID","value","fromFolderName","_folderOrDocumentTitle","itemsToMove","onConfirm","name","toFolderID","success","folderName","title","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onSave","result","doc","newName","admin","useAsTitle"],"sources":["../../../../src/elements/FolderView/CurrentFolderActions/index.tsx"],"sourcesContent":["import { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\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 { 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 {\n breadcrumbs,\n currentFolder,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n moveToFolder,\n renameFolder,\n setFolderID,\n } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n id: folderID,\n collectionSlug: folderCollectionSlug,\n })\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 await setFolderID({ folderID: breadcrumbs[breadcrumbs.length - 2]?.id || null })\n }, [breadcrumbs, folderCollectionSlug, folderID, routes.api, serverURL, setFolderID])\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 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={(result) => {\n renameFolder({\n folderID: result.doc.id,\n newName: result.doc[folderCollectionConfig.admin.useAsTitle],\n })\n closeFolderDrawer()\n }}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
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","fromFolderID","value","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 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":";AAAA,SAASA,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,MAAW;AAClB,SAASC,KAAK,QAAQ;AAEtB,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,uBAAuB,QAAQ;AAExC,MAAMC,sBAAA,GAAyB;AAC/B,MAAMC,uBAAA,GAA0B;AAEhC,MAAMC,SAAA,GAAY;AAKlB,OAAO,SAASC,qBAAqB;EAAEC;AAAS,CAAS;EACvD,MAAMC,MAAA,GAASpB,SAAA;EACf,MAAM;IAAEqB;EAAoB,CAAE,GAAGd,kBAAA;EACjC,MAAM;IACJe,WAAW;IACXC,aAAa;IACbC,sBAAsB;IACtBC,oBAAoB;IACpBC,eAAe;IACfC,QAAQ;IACRC,cAAc;IACdC;EAAY,CACb,GAAGxB,SAAA;EACJ,MAAM,CAACyB,oBAAA,GAAwB;IAAEC,WAAA,EAAaC,iBAAiB;IAAEC,UAAA,EAAYC;EAAgB,CAAE,CAAC,GAC9FxB,iBAAA,CAAkB;IAChByB,EAAA,EAAIR,QAAA;IACJS,cAAA,EAAgBX;EAClB;EACF,MAAM;IAAEY;EAAe,CAAE,GAAG/B,aAAA;EAC5B,MAAM;IAAEgC;EAAM,CAAE,GAAGlC,SAAA;EACnB,MAAM;IAAEmC,MAAM;IAAEC;EAAS,CAAE,GAAGF,MAAA;EAC9B,MAAM;IAAEG,UAAU;IAAEC;EAAS,CAAE,GAAG5C,QAAA;EAClC,MAAM;IAAE6C,IAAI;IAAEC;EAAC,CAAE,GAAGpC,cAAA;EAEpB,MAAMqC,mBAAA,GAAsB5C,KAAA,CAAM6C,WAAW,CAAC;IAC5C,MAAMC,KAAA,CAAM,GAAGP,SAAA,GAAYD,MAAA,CAAOS,GAAG,IAAIvB,oBAAA,IAAwBE,QAAA,UAAkB,EAAE;MACnFsB,WAAA,EAAa;MACbC,MAAA,EAAQ;IACV;IACA7B,oBAAA,CAAqB;MACnBD,MAAA,CAAO+B,IAAI,CAACvB,cAAA,CAAeN,WAAW,CAACA,WAAA,CAAY8B,MAAM,GAAG,EAAE,EAAEjB,EAAA,IAAM;IACxE;EACF,GAAG,CACDb,WAAA,EACAG,oBAAA,EACAE,QAAA,EACAC,cAAA,EACAR,MAAA,EACAoB,SAAA,EACAD,MAAA,CAAOS,GAAG,EACV3B,oBAAA,CACD;EAED,IAAI,CAACM,QAAA,EAAU;IACb,OAAO;EACT;EAEA,oBACE0B,KAAA,CAAAC,SAAA;4BACEC,IAAA,CAAC5C,KAAA;MACC6C,MAAA,eAAQD,IAAA,CAACpD,IAAA;MACTgB,SAAA,EAAW,CAACF,SAAA,EAAWE,SAAA,CAAU,CAACsC,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;MACvDC,MAAA,EAAQA,CAAA,kBACNP,KAAA,CAACzC,SAAA,CAAUiD,WAAW;gCACpBN,IAAA,CAAC3C,SAAA,CAAUkD,MAAM;UACfC,OAAA,EAASA,CAAA;YACP7B,gBAAA;UACF;oBAECU,CAAA,CAAE,qBAAqB;YACtBoB,KAAA,EAAOjE,cAAA,CAAeyB,sBAAA,CAAuByC,MAAM,CAACC,QAAQ,EAAEvB,IAAA;UAChE;yBAEFY,IAAA,CAAC3C,SAAA,CAAUkD,MAAM;UACfC,OAAA,EAASA,CAAA;YACPrB,SAAA,CAAU3B,sBAAA;UACZ;oBAEC6B,CAAA,CAAE;yBAELW,IAAA,CAAC3C,SAAA,CAAUkD,MAAM;UACfC,OAAA,EAASA,CAAA;YACPrB,SAAA,CAAU1B,uBAAA;UACZ;oBAEC4B,CAAA,CAAE;;;qBAKXW,IAAA,CAACzC,uBAAA;MACCqD,MAAA,EAAO;MACPC,UAAA,EAAYrD,sBAAA;MACZU,oBAAA,EAAsBA,oBAAA;MACtBC,eAAA,EAAiBA,eAAA;MACjB2C,YAAA,EAAc9C,aAAA,EAAe+C,KAAA,CAAMnC,EAAA;MACnCoC,cAAA,EAAgBhD,aAAA,EAAe+C,KAAA,CAAME,sBAAA;MACrCC,WAAA,EAAa,CAAClD,aAAA,CAAc;MAC5BmD,SAAA,EAAW,MAAAA,CAAO;QAAEvC,EAAE;QAAEwC;MAAI,CAAE;QAC5B,MAAM9C,YAAA,CAAa;UACjB4C,WAAA,EAAa,CAAClD,aAAA,CAAc;UAC5BqD,UAAA,EAAYzC;QACd;QACA,IAAIA,EAAA,EAAI;UACN;UACAjC,KAAA,CAAM2E,OAAO,CACXjC,CAAA,CAAE,2BAA2B;YAC3BkC,UAAA,EAAY,IAAIH,IAAA,GAAO;YACvBI,KAAA,EAAOxD,aAAA,CAAc+C,KAAK,CAACE;UAC7B;QAEJ,OAAO;UACL;UACAtE,KAAA,CAAM2E,OAAO,CACXjC,CAAA,CAAE,iCAAiC;YACjCmC,KAAA,EAAOxD,aAAA,CAAc+C,KAAK,CAACE;UAC7B;QAEJ;QACA/B,UAAA,CAAW1B,sBAAA;MACb;MACAgE,KAAA,EAAOxD,aAAA,CAAc+C,KAAK,CAACE;qBAG7BjB,IAAA,CAAC9C,iBAAA;MACCuE,IAAA,eACEzB,IAAA,CAAC1C,WAAA;QACCoE,QAAA,EAAU;UACR,KAAKC,CAAC;YAAEC;UAAQ,CAAE,kBAAK5B,IAAA,CAAC;sBAAQ4B;;QAClC;QACAC,OAAA,EAAQ;QACRxC,CAAA,EAAGA,CAAA;QACHyC,SAAA,EAAW;UACTrB,KAAA,EAAOjE,cAAA,CAAeyB,sBAAA,CAAuByC,MAAM,CAACC,QAAQ,EAAEvB,IAAA;UAC9DoC,KAAA,EAAOxD,aAAA,CAAc+C,KAAK,CAACE;QAC7B;;MAGJc,eAAA,EAAiB1C,CAAA,CAAE;MACnB2C,OAAA,EAAS3C,CAAA,CAAE;MACX4C,SAAA,EAAWxE,uBAAA;MACX0D,SAAA,EAAW7B;qBAGbU,IAAA,CAACzB,oBAAA;MACC2D,MAAA,EAAQA,CAAA;QACNzD,iBAAA;QACAK,eAAA;MACF;;;AAIR","ignoreList":[]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type { DocumentDrawerContextProps } from '../../../DocumentDrawer/Provider.js';
|
|
2
1
|
type EditFolderActionProps = {
|
|
3
2
|
folderCollectionSlug: string;
|
|
4
3
|
id: number | string;
|
|
5
|
-
onSave: DocumentDrawerContextProps['onSave'];
|
|
6
4
|
};
|
|
7
|
-
export declare const EditFolderAction: ({ id, folderCollectionSlug
|
|
5
|
+
export declare const EditFolderAction: ({ id, folderCollectionSlug }: EditFolderActionProps) => import("react").JSX.Element;
|
|
8
6
|
export {};
|
|
9
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/FolderView/Drawers/EditFolderAction/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/FolderView/Drawers/EditFolderAction/index.tsx"],"names":[],"mappings":"AAKA,KAAK,qBAAqB,GAAG;IAC3B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,gBAAgB,iCAAkC,qBAAqB,gCA0BnF,CAAA"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useRouteCache } from '../../../../providers/RouteCache/index.js';
|
|
2
3
|
import { useTranslation } from '../../../../providers/Translation/index.js';
|
|
3
4
|
import { useDocumentDrawer } from '../../../DocumentDrawer/index.js';
|
|
4
5
|
import { ListSelectionButton } from '../../../ListSelection/index.js';
|
|
5
6
|
export const EditFolderAction = ({
|
|
6
7
|
id,
|
|
7
|
-
folderCollectionSlug
|
|
8
|
-
onSave
|
|
8
|
+
folderCollectionSlug
|
|
9
9
|
}) => {
|
|
10
|
+
const {
|
|
11
|
+
clearRouteCache
|
|
12
|
+
} = useRouteCache();
|
|
10
13
|
const {
|
|
11
14
|
t
|
|
12
15
|
} = useTranslation();
|
|
@@ -26,9 +29,9 @@ export const EditFolderAction = ({
|
|
|
26
29
|
type: "button",
|
|
27
30
|
children: t('general:edit')
|
|
28
31
|
}), /*#__PURE__*/_jsx(FolderDocumentDrawer, {
|
|
29
|
-
onSave:
|
|
30
|
-
await onSave(args);
|
|
32
|
+
onSave: () => {
|
|
31
33
|
closeDrawer();
|
|
34
|
+
clearRouteCache();
|
|
32
35
|
}
|
|
33
36
|
})]
|
|
34
37
|
});
|