@payloadcms/ui 3.69.0-internal.2883df2 → 3.69.0-internal.424436e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/AddNewRelation/index.js +1 -1
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +4 -2
- package/dist/elements/AppHeader/index.js.map +1 -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/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +4 -2
- 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 +10 -5
- 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 +16 -4
- 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 +4 -2
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
- package/dist/elements/IDLabel/index.d.ts.map +1 -1
- package/dist/elements/IDLabel/index.js +14 -11
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/Logout/index.d.ts.map +1 -1
- package/dist/elements/Logout/index.js +11 -8
- 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 +2 -1
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +3 -1
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +15 -6
- 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 +2 -1
- package/dist/elements/RestoreButton/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +20 -17
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +12 -9
- package/dist/elements/Table/DefaultCell/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 +2 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +24 -24
- package/dist/exports/client/index.js.map +3 -3
- package/dist/exports/shared/index.js +1 -1
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Array/ArrayRow.d.ts +18 -7
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +65 -133
- 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 +10 -3
- 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 +3 -2
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +2 -2
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
- package/dist/graphics/Account/index.d.ts.map +1 -1
- package/dist/graphics/Account/index.js +4 -2
- 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 +29 -8
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Folders/index.d.ts.map +1 -1
- package/dist/providers/Folders/index.js +3 -2
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +2 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/utilities/buildFormState.js +2 -2
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/handleBackToDashboard.d.ts +2 -1
- package/dist/utilities/handleBackToDashboard.d.ts.map +1 -1
- package/dist/utilities/handleBackToDashboard.js +4 -2
- package/dist/utilities/handleBackToDashboard.js.map +1 -1
- package/dist/utilities/handleGoBack.d.ts +2 -1
- package/dist/utilities/handleGoBack.d.ts.map +1 -1
- package/dist/utilities/handleGoBack.js +4 -2
- package/dist/utilities/handleGoBack.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +5 -3
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +23 -17
- 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 +9 -5
- 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 +5 -3
- package/dist/views/List/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","hasAutosaveEnabled","hasScheduledPublishEnabled","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","t","entityConfig","useMemo","hasNewerVersions","canPublish","scheduledPublishEnabled","hasAutosave","canSchedulePublish","Boolean","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","isSpecificLocalePublishEnabled","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","result","publishSpecificLocale","locale","params","stringify","depth","isDefaultPublishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","undefined","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","type","defaultType","schedulePublishConfig","versions","drafts","schedulePublish","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hasAutosaveEnabled, hasScheduledPublishEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = hasScheduledPublishEnabled(entityConfig)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const result = await submit({\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n depth: 0,\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params ? '?' + params : ''}`\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setHasPublishedDoc(true)\n }\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'\n const isDefaultPublishAll =\n !isSpecificLocalePublishEnabled ||\n (localization && localization?.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={isDefaultPublishAll ? publish : () => publishSpecificLocale(activeLocale.code)}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {isSpecificLocalePublishEnabled && (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"publish-locale\"\n onClick={\n isDefaultPublishAll\n ? () => publishSpecificLocale(activeLocale.code)\n : publish\n }\n >\n {isDefaultPublishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {!isDefaultPublishAll ? t('version:publishIn', { locale: activeLocaleLabel }) : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={\n scheduledPublishEnabled &&\n typeof entityConfig.versions.drafts.schedulePublish === 'object'\n ? entityConfig.versions.drafts.schedulePublish\n : undefined\n }\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","hasAutosaveEnabled","hasScheduledPublishEnabled","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","i18n","t","entityConfig","useMemo","hasNewerVersions","canPublish","scheduledPublishEnabled","hasAutosave","canSchedulePublish","Boolean","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","isSpecificLocalePublishEnabled","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","result","publishSpecificLocale","locale","params","stringify","depth","isDefaultPublishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","undefined","type","defaultType","schedulePublishConfig","versions","drafts","schedulePublish","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { hasAutosaveEnabled, hasScheduledPublishEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = hasScheduledPublishEnabled(entityConfig)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const result = await submit({\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n depth: 0,\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params ? '?' + params : ''}`\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setHasPublishedDoc(true)\n }\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'\n const isDefaultPublishAll =\n !isSpecificLocalePublishEnabled ||\n (localization && localization?.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={isDefaultPublishAll ? publish : () => publishSpecificLocale(activeLocale.code)}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {isSpecificLocalePublishEnabled && (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"publish-locale\"\n onClick={\n isDefaultPublishAll\n ? () => publishSpecificLocale(activeLocale.code)\n : publish\n }\n >\n {isDefaultPublishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {!isDefaultPublishAll ? t('version:publishIn', { locale: activeLocaleLabel }) : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={\n scheduledPublishEnabled &&\n typeof entityConfig.versions.drafts.schedulePublish === 'object'\n ? entityConfig.versions.drafts.schedulePublish\n : undefined\n }\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,EAAEC,0BAA0B,QAAQ;AAC/D,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAExD,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAE/B,OAAO,SAASC,cAAc;EAAEC,KAAA,EAAOC;AAAS,CAA4B;EAC1E,MAAM;IACJC,EAAE;IACFC,cAAc;IACdC,UAAU;IACVC,eAAe;IACfC,oBAAoB;IACpBC,kBAAkB;IAClBC,+BAA+B;IAC/BC,0BAA0B;IAC1BC,uBAAuB;IACvBC;EAAY,CACb,GAAGpB,eAAA;EAEJ,MAAM;IAAEqB,MAAM;IAAEC;EAAe,CAAE,GAAGvB,SAAA;EACpC,MAAM;IAAEwB;EAAM,CAAE,GAAG5B,OAAA;EACnB,MAAM6B,QAAA,GAAW5B,eAAA;EACjB,MAAM6B,SAAA,GAAYxB,YAAA;EAClB,MAAM;IAAEyB,IAAA,EAAMC;EAAU,CAAE,GAAGzB,SAAA;EAC7B,MAAM;IAAE0B,WAAW;IAAEC;EAAW,CAAE,GAAG3C,QAAA;EAErC,MAAM4C,UAAA,GAAa,oBAAoBnB,EAAA,EAAI;EAE3C,MAAM;IACJoB,YAAY;IACZC,MAAA,EAAQ;MAAEC;IAAG,CAAE;IACfC;EAAS,CACV,GAAGb,MAAA;EAEJ,MAAM;IAAEc,IAAI;IAAEC;EAAC,CAAE,GAAGhC,cAAA;EACpB,MAAMK,KAAA,GAAQC,SAAA,IAAa0B,CAAA,CAAE;EAE7B,MAAMC,YAAA,GAAe9C,KAAA,CAAM+C,OAAO,CAAC;IACjC,IAAI1B,cAAA,EAAgB;MAClB,OAAOU,eAAA,CAAgB;QAAEV;MAAe;IAC1C;IAEA,IAAIC,UAAA,EAAY;MACd,OAAOS,eAAA,CAAgB;QAAET;MAAW;IACtC;EACF,GAAG,CAACD,cAAA,EAAgBC,UAAA,EAAYS,eAAA,CAAgB;EAEhD,MAAMiB,gBAAA,GAAmBpB,uBAAA,GAA0B;EAEnD,MAAMqB,UAAA,GACJzB,oBAAA,KACCS,QAAA,IAAYe,gBAAA,IAAoB,CAACzB,eAAc,KAChDM,YAAA,KAAiB;EAEnB,MAAMqB,uBAAA,GAA0BpD,0BAAA,CAA2BgD,YAAA;EAE3D;EACA,MAAMK,WAAA,GAActD,kBAAA,CAAmBiD,YAAA;EAEvC,MAAMM,kBAAA,GAAqBC,OAAA,CACzBH,uBAAA,IACE1B,oBAAA,KACCF,UAAA,IAAeD,cAAA,IAAkBD,EAAE,MACnC+B,WAAA,IAAe,CAAClB,QAAO;EAG5B,MAAM,CAACqB,kBAAA,EAAoBC,qBAAA,CAAsB,GAAGpD,QAAA,CAAS;EAE7DD,SAAA,CAAU;IACR,MAAMsD,iBAAA,GAAoB1C,0BAAA,CAA2BgC,YAAA,EAAcW,MAAA;IACnEF,qBAAA,CAAsBC,iBAAA;EACxB,GAAG,CAACV,YAAA,EAAcW,MAAA,CAAO;EAEzB,MAAMC,8BAAA,GAAiClB,YAAA,IAAgBc,kBAAA,IAAsB9B,oBAAA;EAE7E,MAAMmC,SAAA,GAAY/C,YAAA;EAElB,MAAMgD,QAAA,GAAWD,SAAA,KAAc,YAAY,CAAC1B,QAAA;EAE5C,MAAM4B,SAAA,GAAY5D,WAAA,CAAY;IAC5B,IAAI2D,QAAA,EAAU;MACZ;IACF;IAEA,MAAME,MAAA,GAAS,WAAW1B,UAAA,0CAAoD;IAC9E,IAAI2B,MAAA;IACJ,IAAIC,MAAA,GAAS;IAEb,IAAI3C,cAAA,EAAgB;MAClB0C,MAAA,GAAS,GAAGpB,SAAA,GAAYD,GAAA,IAAOrB,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,KAAK0C,MAAA,EAAQ;MAC7E,IAAI1C,EAAA,EAAI;QACN4C,MAAA,GAAS;MACX;IACF;IAEA,IAAI1C,UAAA,EAAY;MACdyC,MAAA,GAAS,GAAGpB,SAAA,GAAYD,GAAA,YAAepB,UAAA,GAAawC,MAAA,EAAQ;IAC9D;IAEA,MAAM9B,MAAA,CAAO;MACX+B,MAAA;MACAC,MAAA;MACAC,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;MACAC,cAAA,EAAgB;IAClB;EACF,GAAG,CAACnC,MAAA,EAAQX,cAAA,EAAgBC,UAAA,EAAYqB,SAAA,EAAWD,GAAA,EAAKN,UAAA,EAAYhB,EAAA,EAAIwC,QAAA,CAAS;EAEjFrD,SAAA,CAAU;IAAE6D,UAAA,EAAY;IAAMlC,SAAA;IAAWmC,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3DA,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IAEjB,IAAIX,SAAA,IAAaV,WAAA,EAAa;MAC5B,KAAKU,SAAA;IACP;EACF;EAEA,MAAMY,OAAA,GAAUxE,WAAA,CAAY;IAC1B,IAAI4B,YAAA,KAAiB,aAAa;MAChC;IACF;IAEA,MAAM6C,MAAA,GAAS,MAAM1C,MAAA,CAAO;MAC1BiC,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;IACF;IAEA,IAAIQ,MAAA,EAAQ;MACV/C,0BAAA,CAA2B;MAC3BD,+BAAA,CAAgC;MAChCD,kBAAA,CAAmB;IACrB;EACF,GAAG,CACDA,kBAAA,EACAO,MAAA,EACAL,0BAAA,EACAE,YAAA,EACAH,+BAAA,CACD;EAED,MAAMiD,qBAAA,GAAwB1E,WAAA,CAC5B,MAAO2E,MAAA;IACL,IAAI/C,YAAA,KAAiB,aAAa;MAChC;IACF;IAEA,MAAMgD,MAAA,GAAS9E,EAAA,CAAG+E,SAAS,CAAC;MAC1BC,KAAA,EAAO;MACPJ,qBAAA,EAAuBC;IACzB;IAEA,MAAMb,QAAA,GAAS,GAAGpB,SAAA,GAAYD,GAAA,GAC5BpB,UAAA,GAAa,YAAYA,UAAA,EAAY,GAAG,IAAID,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,IAAI,GAChFyD,MAAA,GAAS,MAAMA,MAAA,GAAS,IAAI;IAE/B,MAAMH,QAAA,GAAS,MAAM1C,MAAA,CAAO;MAC1B+B,MAAA,EAAAA,QAAA;MACAE,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;IACF;IAEA,IAAIQ,QAAA,EAAQ;MACVjD,kBAAA,CAAmB;IACrB;EACF,GACA,CAACiB,GAAA,EAAKrB,cAAA,EAAgBC,UAAA,EAAYF,EAAA,EAAIuB,SAAA,EAAWlB,kBAAA,EAAoBO,MAAA,EAAQH,YAAA,CAAa;EAG5F;EACA,MAAMmD,mBAAA,GACJ,CAACtB,8BAAA,IACAlB,YAAA,IAAgBA,YAAA,EAAcyC,0BAAA,KAA+B;EAEhE,MAAMC,YAAA,GACJ1C,YAAA,IACAA,YAAA,EAAc2C,OAAA,CAAQC,IAAA,CAAMR,QAAA,IAC1B,OAAOA,QAAA,KAAW,WAAWA,QAAA,KAAWxC,UAAA,GAAawC,QAAA,CAAOzC,IAAI,KAAKC,UAAA;EAGzE,MAAMiD,iBAAA,GAAoBH,YAAA,IAAgBtF,cAAA,CAAesF,YAAA,CAAahE,KAAK,EAAE0B,IAAA;EAE7E,IAAI,CAACpB,oBAAA,EAAsB;IACzB,OAAO;EACT;EAEA,oBACE8D,KAAA,CAACtF,KAAA,CAAMuF,QAAQ;4BACbC,IAAA,CAAClF,UAAA;MACCmF,QAAA,EAAS;MACT7B,QAAA,EAAU,CAACX,UAAA;MACXyC,aAAA,EAAetC,kBAAA;MACfuC,OAAA,EAASX,mBAAA,GAAsBP,OAAA,GAAU,MAAME,qBAAA,CAAsBO,YAAA,CAAa/C,IAAI;MACtFyD,IAAA,EAAK;MACLC,mBAAA,EACEnC,8BAAA,IAAkCN,kBAAA,GAC9B,CAAC;QAAE0C;MAAK,CAAE;QACR,oBACER,KAAA,CAACtF,KAAA,CAAMuF,QAAQ;qBACZnC,kBAAA,iBACCoC,IAAA,CAACzE,SAAA,CAAUgF,WAAW;sBACpB,aAAAP,IAAA,CAACzE,SAAA,CAAUiF,MAAM;cACf5E,EAAA,EAAG;cACHuE,OAAA,EAASA,CAAA,KAAM,CAACrD,WAAA,CAAYC,UAAA,GAAauD,KAAA,GAAQ;wBAEhDjD,CAAA,CAAE;;aALoB,qBAS5Ba,8BAAA,iBACC8B,IAAA,CAACzE,SAAA,CAAUgF,WAAW;sBACpB,aAAAP,IAAA,CAACzE,SAAA,CAAUiF,MAAM;cACf5E,EAAA,EAAG;cACHuE,OAAA,EACEX,mBAAA,GACI,MAAML,qBAAA,CAAsBO,YAAA,CAAa/C,IAAI,IAC7CsC,OAAA;wBAGLO,mBAAA,GACGnC,CAAA,CAAE,qBAAqB;gBAAE+B,MAAA,EAAQS;cAAkB,KACnDxC,CAAA,CAAE;;;;MAMlB,IACAoD,SAAA;MAENC,IAAA,EAAK;gBAEJ,CAAClB,mBAAA,GAAsBnC,CAAA,CAAE,qBAAqB;QAAE+B,MAAA,EAAQS;MAAkB,KAAKnE;QAEjFkC,kBAAA,IAAsBf,WAAA,CAAYE,UAAA,kBACjCiD,IAAA,CAACxE,cAAA;MACCmF,WAAA,EAAa,CAACnD,gBAAA,GAAmB,cAAc;MAC/CoD,qBAAA,EACElD,uBAAA,IACA,OAAOJ,YAAA,CAAauD,QAAQ,CAACC,MAAM,CAACC,eAAe,KAAK,WACpDzD,YAAA,CAAauD,QAAQ,CAACC,MAAM,CAACC,eAAe,GAC5CN,SAAA;MAENO,IAAA,EAAMjE;;;AAKhB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;AASzE,OAAO,KAAyC,MAAM,OAAO,CAAA;AAc7D,OAAO,cAAc,CAAA;AAQrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,YAAY,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,6BAA6B,CAAA;CACtD,CA0TA,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useModal } from '@faceless-ui/modal';
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
|
-
import { transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared';
|
|
4
|
+
import { formatApiURL, transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared';
|
|
5
5
|
import React, { Fragment, useCallback, useMemo } from 'react';
|
|
6
6
|
import { toast } from 'sonner';
|
|
7
7
|
import { PlusIcon } from '../../../icons/Plus/index.js';
|
|
@@ -41,7 +41,8 @@ export const QueryPresetBar = ({
|
|
|
41
41
|
config: {
|
|
42
42
|
routes: {
|
|
43
43
|
api: apiRoute
|
|
44
|
-
}
|
|
44
|
+
},
|
|
45
|
+
serverURL
|
|
45
46
|
},
|
|
46
47
|
getEntityConfig
|
|
47
48
|
} = useConfig();
|
|
@@ -96,7 +97,11 @@ export const QueryPresetBar = ({
|
|
|
96
97
|
}, [refineListData]);
|
|
97
98
|
const handleDeletePreset = useCallback(async () => {
|
|
98
99
|
try {
|
|
99
|
-
await fetch(
|
|
100
|
+
await fetch(formatApiURL({
|
|
101
|
+
apiRoute,
|
|
102
|
+
path: `/${queryPresetsSlug}/${activePreset.id}`,
|
|
103
|
+
serverURL
|
|
104
|
+
}), {
|
|
100
105
|
method: 'DELETE'
|
|
101
106
|
}).then(async res => {
|
|
102
107
|
try {
|
|
@@ -127,10 +132,14 @@ export const QueryPresetBar = ({
|
|
|
127
132
|
title: activePreset.title
|
|
128
133
|
}));
|
|
129
134
|
}
|
|
130
|
-
}, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset]);
|
|
135
|
+
}, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset, serverURL]);
|
|
131
136
|
const saveCurrentChanges = useCallback(async () => {
|
|
132
137
|
try {
|
|
133
|
-
await fetch(
|
|
138
|
+
await fetch(formatApiURL({
|
|
139
|
+
apiRoute,
|
|
140
|
+
path: `/${queryPresetsSlug}/${activePreset.id}`,
|
|
141
|
+
serverURL
|
|
142
|
+
}), {
|
|
134
143
|
body: JSON.stringify({
|
|
135
144
|
columns: transformColumnsToPreferences(query.columns),
|
|
136
145
|
groupBy: query.groupBy,
|
|
@@ -163,7 +172,7 @@ export const QueryPresetBar = ({
|
|
|
163
172
|
} catch (_err) {
|
|
164
173
|
toast.error(t('error:unknown'));
|
|
165
174
|
}
|
|
166
|
-
}, [apiRoute, activePreset?.id, query.columns, query.groupBy, query.where, t, presetConfig?.labels?.singular, i18n, setQueryModified]);
|
|
175
|
+
}, [apiRoute, activePreset?.id, query.columns, query.groupBy, query.where, t, presetConfig?.labels?.singular, i18n, setQueryModified, serverURL]);
|
|
167
176
|
const hasModifiedPreset = activePreset && modified;
|
|
168
177
|
return /*#__PURE__*/_jsxs(Fragment, {
|
|
169
178
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","useCallback","useMemo","toast","PlusIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","useListDrawer","ListSelectionButton","Pill","Translation","QueryPresetToggler","confirmDeletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","i18n","t","openModal","config","routes","api","apiRoute","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openDocumentDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","closeListDrawer","openListDrawer","collectionSlugs","selectedCollection","handlePresetChange","preset","columns","undefined","groupBy","where","resetQueryPreset","handleDeletePreset","fetch","method","then","res","json","status","success","label","labels","singular","title","errors","forEach","error","message","_err","saveCurrentChanges","body","JSON","stringify","credentials","headers","hasModifiedPreset","_jsxs","className","_jsx","openPresetListDrawer","resetPreset","icon","onClick","size","type","update","isShared","delete","initialData","onSave","doc","redirectAfterCreate","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect"],"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["import type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { QueryPresetToggler } from '../QueryPresetToggler/index.js'\nimport './index.scss'\n\nconst confirmDeletePresetModalSlug = 'confirm-delete-preset'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n\n const { i18n, t } = useTranslation()\n const { openModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openDocumentDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const resetQueryPreset = useCallback(async () => {\n await refineListData(\n {\n columns: [],\n groupBy: '',\n preset: '',\n where: {},\n },\n false,\n )\n }, [refineListData])\n\n const handleDeletePreset = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/${queryPresetsSlug}/${activePreset.id}`, {\n method: 'DELETE',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset.title,\n }),\n )\n\n await resetQueryPreset()\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n })\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset])\n\n const saveCurrentChanges = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/payload-query-presets/${activePreset.id}`, {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:updatedLabelSuccessfully', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n }),\n )\n\n setQueryModified(false)\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:unknown'))\n }\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n })\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n }, [\n apiRoute,\n activePreset?.id,\n query.columns,\n query.groupBy,\n query.where,\n t,\n presetConfig?.labels?.singular,\n i18n,\n setQueryModified,\n ])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__menu`}>\n <QueryPresetToggler\n activePreset={activePreset}\n openPresetListDrawer={openListDrawer}\n resetPreset={resetQueryPreset}\n />\n <Pill\n aria-label={t('general:newLabel', { label: presetConfig?.labels?.singular })}\n className={`${baseClass}__create-new-preset`}\n icon={<PlusIcon />}\n id=\"create-new-preset\"\n onClick={() => {\n openCreateNewDrawer()\n }}\n size=\"small\"\n />\n </div>\n <div className={`${baseClass}__menu-items`}>\n {hasModifiedPreset && (\n <ListSelectionButton\n id=\"reset-preset\"\n key=\"reset\"\n onClick={async () => {\n await refineListData(\n {\n columns: transformColumnsToSearchParams(activePreset.columns),\n groupBy: activePreset.groupBy || '',\n where: activePreset.where,\n },\n false,\n )\n }}\n type=\"button\"\n >\n {t('general:reset')}\n </ListSelectionButton>\n )}\n {hasModifiedPreset && queryPresetPermissions.update && (\n <ListSelectionButton\n id=\"save-preset\"\n key=\"save\"\n onClick={async () => {\n await saveCurrentChanges()\n }}\n type=\"button\"\n >\n {activePreset?.isShared ? t('general:updateForEveryone') : t('fields:saveChanges')}\n </ListSelectionButton>\n )}\n {activePreset && queryPresetPermissions?.delete && (\n <Fragment>\n <ListSelectionButton\n id=\"delete-preset\"\n onClick={() => openModal(confirmDeletePresetModalSlug)}\n type=\"button\"\n >\n {t('general:deleteLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n <ListSelectionButton\n id=\"edit-preset\"\n onClick={() => {\n openDocumentDrawer()\n }}\n type=\"button\"\n >\n {t('general:editLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n </Fragment>\n )}\n </div>\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n redirectAfterCreate={false}\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: presetConfig?.labels?.singular,\n title: activePreset?.title,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n // setSelectedPreset(undefined)\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n closeListDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatApiURL","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","useCallback","useMemo","toast","PlusIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","useListDrawer","ListSelectionButton","Pill","Translation","QueryPresetToggler","confirmDeletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","i18n","t","openModal","config","routes","api","apiRoute","serverURL","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openDocumentDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","closeListDrawer","openListDrawer","collectionSlugs","selectedCollection","handlePresetChange","preset","columns","undefined","groupBy","where","resetQueryPreset","handleDeletePreset","fetch","path","method","then","res","json","status","success","label","labels","singular","title","errors","forEach","error","message","_err","saveCurrentChanges","body","JSON","stringify","credentials","headers","hasModifiedPreset","_jsxs","className","_jsx","openPresetListDrawer","resetPreset","icon","onClick","size","type","update","isShared","delete","initialData","onSave","doc","redirectAfterCreate","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect"],"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["import type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatApiURL,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { QueryPresetToggler } from '../QueryPresetToggler/index.js'\nimport './index.scss'\n\nconst confirmDeletePresetModalSlug = 'confirm-delete-preset'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n\n const { i18n, t } = useTranslation()\n const { openModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openDocumentDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const resetQueryPreset = useCallback(async () => {\n await refineListData(\n {\n columns: [],\n groupBy: '',\n preset: '',\n where: {},\n },\n false,\n )\n }, [refineListData])\n\n const handleDeletePreset = useCallback(async () => {\n try {\n await fetch(\n formatApiURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n serverURL,\n }),\n {\n method: 'DELETE',\n },\n ).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset.title,\n }),\n )\n\n await resetQueryPreset()\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n })\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }, [\n apiRoute,\n activePreset?.id,\n activePreset?.title,\n t,\n presetConfig,\n i18n,\n resetQueryPreset,\n serverURL,\n ])\n\n const saveCurrentChanges = useCallback(async () => {\n try {\n await fetch(\n formatApiURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n serverURL,\n }),\n {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n },\n ).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:updatedLabelSuccessfully', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n }),\n )\n\n setQueryModified(false)\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:unknown'))\n }\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n })\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n }, [\n apiRoute,\n activePreset?.id,\n query.columns,\n query.groupBy,\n query.where,\n t,\n presetConfig?.labels?.singular,\n i18n,\n setQueryModified,\n serverURL,\n ])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__menu`}>\n <QueryPresetToggler\n activePreset={activePreset}\n openPresetListDrawer={openListDrawer}\n resetPreset={resetQueryPreset}\n />\n <Pill\n aria-label={t('general:newLabel', { label: presetConfig?.labels?.singular })}\n className={`${baseClass}__create-new-preset`}\n icon={<PlusIcon />}\n id=\"create-new-preset\"\n onClick={() => {\n openCreateNewDrawer()\n }}\n size=\"small\"\n />\n </div>\n <div className={`${baseClass}__menu-items`}>\n {hasModifiedPreset && (\n <ListSelectionButton\n id=\"reset-preset\"\n key=\"reset\"\n onClick={async () => {\n await refineListData(\n {\n columns: transformColumnsToSearchParams(activePreset.columns),\n groupBy: activePreset.groupBy || '',\n where: activePreset.where,\n },\n false,\n )\n }}\n type=\"button\"\n >\n {t('general:reset')}\n </ListSelectionButton>\n )}\n {hasModifiedPreset && queryPresetPermissions.update && (\n <ListSelectionButton\n id=\"save-preset\"\n key=\"save\"\n onClick={async () => {\n await saveCurrentChanges()\n }}\n type=\"button\"\n >\n {activePreset?.isShared ? t('general:updateForEveryone') : t('fields:saveChanges')}\n </ListSelectionButton>\n )}\n {activePreset && queryPresetPermissions?.delete && (\n <Fragment>\n <ListSelectionButton\n id=\"delete-preset\"\n onClick={() => openModal(confirmDeletePresetModalSlug)}\n type=\"button\"\n >\n {t('general:deleteLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n <ListSelectionButton\n id=\"edit-preset\"\n onClick={() => {\n openDocumentDrawer()\n }}\n type=\"button\"\n >\n {t('general:editLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n </Fragment>\n )}\n </div>\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n redirectAfterCreate={false}\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: presetConfig?.labels?.singular,\n title: activePreset?.title,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n // setSelectedPreset(undefined)\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n closeListDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":";AAEA,SAASA,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SACEC,YAAY,EACZC,6BAA6B,EAC7BC,8BAA8B,QACzB;AACP,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,OAAO,QAAQ;AACtD,SAASC,KAAK,QAAQ;AAEtB,SAASC,QAAQ,QAAQ;AACzB,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;AACrB,SAASC,WAAW,QAAQ;AAC5B,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,4BAAA,GAA+B;AAErC,MAAMC,gBAAA,GAAmB;AAEzB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,cAAA,GAIRA,CAAC;EAAEC,YAAY;EAAEC,cAAc;EAAEC;AAAsB,CAAE;EAC5D,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,cAAc;IAAEC,WAAA,EAAaC;EAAgB,CAAE,GAAGpB,YAAA;EAE3E,MAAM;IAAEqB,IAAI;IAAEC;EAAC,CAAE,GAAGrB,cAAA;EACpB,MAAM;IAAEsB;EAAS,CAAE,GAAGnC,QAAA;EAEtB,MAAM;IACJoC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC,GAAA,EAAKC;MAAQ,CAAE;MACzBC;IAAS,CACV;IACDC;EAAe,CAChB,GAAG9B,SAAA;EAEJ,MAAM+B,YAAA,GAAeD,eAAA,CAAgB;IAAEf,cAAA,EAAgBJ;EAAiB;EAExE,MAAM,CAACqB,oBAAA,GAAwB;IAAEC,UAAA,EAAYC;EAAkB,CAAE,CAAC,GAAG9B,iBAAA,CAAkB;IACrF+B,EAAA,EAAIrB,YAAA,EAAcqB,EAAA;IAClBpB,cAAA,EAAgBJ;EAClB;EAEA,MAAM,CACJyB,qBAAA,GAEA;IAAEC,WAAA,EAAaC,oBAAoB;IAAEL,UAAA,EAAYM;EAAmB,CAAE,CACvE,GAAGnC,iBAAA,CAAkB;IACpBW,cAAA,EAAgBJ;EAClB;EAEA,MAAM6B,aAAA,GAAgB3C,OAAA,CACpB,OAAO;IACL,yBAAyB;MACvB4C,MAAA,EAAQ;QACNC,UAAA,EAAY;MACd;MACAC,iBAAA,EAAmB;QACjBC,MAAA,EAAQ7B;MACV;IACF;EACF,IACA,CAACA,cAAA,CAAe;EAGlB,MAAM,CAAC8B,UAAA,GAAc;IAAER,WAAA,EAAaS,eAAe;IAAEb,UAAA,EAAYc;EAAc,CAAE,CAAC,GAChF1C,aAAA,CAAc;IACZ2C,eAAA,EAAiB,CAACrC,gBAAA,CAAiB;IACnC6B,aAAA;IACAS,kBAAA,EAAoBtC;EACtB;EAEF,MAAMuC,kBAAA,GAAqBtD,WAAA,CACzB,MAAOuD,MAAA;IACL,MAAMhC,cAAA,CACJ;MACEiC,OAAA,EAASD,MAAA,CAAOC,OAAO,GAAG3D,8BAAA,CAA+B0D,MAAA,CAAOC,OAAO,IAAIC,SAAA;MAC3EC,OAAA,EAASH,MAAA,CAAOG,OAAO,IAAI;MAC3BH,MAAA,EAAQA,MAAA,CAAOhB,EAAE;MACjBoB,KAAA,EAAOJ,MAAA,CAAOI;IAChB,GACA;EAEJ,GACA,CAACpC,cAAA,CAAe;EAGlB,MAAMqC,gBAAA,GAAmB5D,WAAA,CAAY;IACnC,MAAMuB,cAAA,CACJ;MACEiC,OAAA,EAAS,EAAE;MACXE,OAAA,EAAS;MACTH,MAAA,EAAQ;MACRI,KAAA,EAAO,CAAC;IACV,GACA;EAEJ,GAAG,CAACpC,cAAA,CAAe;EAEnB,MAAMsC,kBAAA,GAAqB7D,WAAA,CAAY;IACrC,IAAI;MACF,MAAM8D,KAAA,CACJnE,YAAA,CAAa;QACXqC,QAAA;QACA+B,IAAA,EAAM,IAAIhD,gBAAA,IAAoBG,YAAA,CAAaqB,EAAE,EAAE;QAC/CN;MACF,IACA;QACE+B,MAAA,EAAQ;MACV,GACAC,IAAI,CAAC,MAAOC,GAAA;QACZ,IAAI;UACF,MAAMC,IAAA,GAAO,MAAMD,GAAA,CAAIC,IAAI;UAE3B,IAAID,GAAA,CAAIE,MAAM,GAAG,KAAK;YACpBlE,KAAA,CAAMmE,OAAO,CACX1C,CAAA,CAAE,wBAAwB;cACxB2C,KAAA,EAAO5E,cAAA,CAAeyC,YAAA,EAAcoC,MAAA,EAAQC,QAAA,EAAU9C,IAAA;cACtD+C,KAAA,EAAOvD,YAAA,CAAauD;YACtB;YAGF,MAAMb,gBAAA;UACR,OAAO;YACL,IAAIO,IAAA,CAAKO,MAAM,EAAE;cACfP,IAAA,CAAKO,MAAM,CAACC,OAAO,CAAEC,KAAA,IAAU1E,KAAA,CAAM0E,KAAK,CAACA,KAAA,CAAMC,OAAO;YAC1D,OAAO;cACL3E,KAAA,CAAM0E,KAAK,CAACjD,CAAA,CAAE,uBAAuB;gBAAE8C,KAAA,EAAOvD,YAAA,CAAauD;cAAM;YACnE;UACF;QACF,EAAE,OAAOK,IAAA,EAAM;UACb5E,KAAA,CAAM0E,KAAK,CAACjD,CAAA,CAAE,uBAAuB;YAAE8C,KAAA,EAAOvD,YAAA,CAAauD;UAAM;QACnE;MACF;IACF,EAAE,OAAOK,IAAA,EAAM;MACb5E,KAAA,CAAM0E,KAAK,CAACjD,CAAA,CAAE,uBAAuB;QAAE8C,KAAA,EAAOvD,YAAA,CAAauD;MAAM;IACnE;EACF,GAAG,CACDzC,QAAA,EACAd,YAAA,EAAcqB,EAAA,EACdrB,YAAA,EAAcuD,KAAA,EACd9C,CAAA,EACAQ,YAAA,EACAT,IAAA,EACAkC,gBAAA,EACA3B,SAAA,CACD;EAED,MAAM8C,kBAAA,GAAqB/E,WAAA,CAAY;IACrC,IAAI;MACF,MAAM8D,KAAA,CACJnE,YAAA,CAAa;QACXqC,QAAA;QACA+B,IAAA,EAAM,IAAIhD,gBAAA,IAAoBG,YAAA,CAAaqB,EAAE,EAAE;QAC/CN;MACF,IACA;QACE+C,IAAA,EAAMC,IAAA,CAAKC,SAAS,CAAC;UACnB1B,OAAA,EAAS5D,6BAAA,CAA8B0B,KAAA,CAAMkC,OAAO;UACpDE,OAAA,EAASpC,KAAA,CAAMoC,OAAO;UACtBC,KAAA,EAAOrC,KAAA,CAAMqC;QACf;QACAwB,WAAA,EAAa;QACbC,OAAA,EAAS;UACP,gBAAgB;QAClB;QACApB,MAAA,EAAQ;MACV,GACAC,IAAI,CAAC,MAAOC,GAAA;QACZ,IAAI;UACF,MAAMC,IAAA,GAAO,MAAMD,GAAA,CAAIC,IAAI;UAE3B,IAAID,GAAA,CAAIE,MAAM,GAAG,KAAK;YACpBlE,KAAA,CAAMmE,OAAO,CACX1C,CAAA,CAAE,oCAAoC;cACpC2C,KAAA,EAAO5E,cAAA,CAAeyC,YAAA,EAAcoC,MAAA,EAAQC,QAAA,EAAU9C,IAAA;YACxD;YAGFD,gBAAA,CAAiB;UACnB,OAAO;YACL,IAAI0C,IAAA,CAAKO,MAAM,EAAE;cACfP,IAAA,CAAKO,MAAM,CAACC,OAAO,CAAEC,KAAA,IAAU1E,KAAA,CAAM0E,KAAK,CAACA,KAAA,CAAMC,OAAO;YAC1D,OAAO;cACL3E,KAAA,CAAM0E,KAAK,CAACjD,CAAA,CAAE;YAChB;UACF;QACF,EAAE,OAAOmD,IAAA,EAAM;UACb5E,KAAA,CAAM0E,KAAK,CAACjD,CAAA,CAAE;QAChB;MACF;IACF,EAAE,OAAOmD,IAAA,EAAM;MACb5E,KAAA,CAAM0E,KAAK,CAACjD,CAAA,CAAE;IAChB;EACF,GAAG,CACDK,QAAA,EACAd,YAAA,EAAcqB,EAAA,EACdjB,KAAA,CAAMkC,OAAO,EACblC,KAAA,CAAMoC,OAAO,EACbpC,KAAA,CAAMqC,KAAK,EACXhC,CAAA,EACAQ,YAAA,EAAcoC,MAAA,EAAQC,QAAA,EACtB9C,IAAA,EACAD,gBAAA,EACAQ,SAAA,CACD;EAED,MAAMoD,iBAAA,GAAoBnE,YAAA,IAAgBG,QAAA;EAE1C,oBACEiE,KAAA,CAACvF,QAAA;4BACCuF,KAAA,CAAC;MAAIC,SAAA,EAAWvE,SAAA;8BACdsE,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGvE,SAAA,QAAiB;gCAClCwE,IAAA,CAAC3E,kBAAA;UACCK,YAAA,EAAcA,YAAA;UACduE,oBAAA,EAAsBtC,cAAA;UACtBuC,WAAA,EAAa9B;yBAEf4B,IAAA,CAAC7E,IAAA;UACC,cAAYgB,CAAA,CAAE,oBAAoB;YAAE2C,KAAA,EAAOnC,YAAA,EAAcoC,MAAA,EAAQC;UAAS;UAC1Ee,SAAA,EAAW,GAAGvE,SAAA,qBAA8B;UAC5C2E,IAAA,eAAMH,IAAA,CAACrF,QAAA;UACPoC,EAAA,EAAG;UACHqD,OAAA,EAASA,CAAA;YACPjD,mBAAA;UACF;UACAkD,IAAA,EAAK;;uBAGTP,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGvE,SAAA,cAAuB;mBACvCqE,iBAAA,iBACCG,IAAA,CAAC9E,mBAAA;UACC6B,EAAA,EAAG;UAEHqD,OAAA,EAAS,MAAAA,CAAA;YACP,MAAMrE,cAAA,CACJ;cACEiC,OAAA,EAAS3D,8BAAA,CAA+BqB,YAAA,CAAasC,OAAO;cAC5DE,OAAA,EAASxC,YAAA,CAAawC,OAAO,IAAI;cACjCC,KAAA,EAAOzC,YAAA,CAAayC;YACtB,GACA;UAEJ;UACAmC,IAAA,EAAK;oBAEJnE,CAAA,CAAE;WAbC,UAgBP0D,iBAAA,IAAqBjE,sBAAA,CAAuB2E,MAAM,iBACjDP,IAAA,CAAC9E,mBAAA;UACC6B,EAAA,EAAG;UAEHqD,OAAA,EAAS,MAAAA,CAAA;YACP,MAAMb,kBAAA;UACR;UACAe,IAAA,EAAK;oBAEJ5E,YAAA,EAAc8E,QAAA,GAAWrE,CAAA,CAAE,+BAA+BA,CAAA,CAAE;WANzD,SASPT,YAAA,IAAgBE,sBAAA,EAAwB6E,MAAA,iBACvCX,KAAA,CAACvF,QAAA;kCACCyF,IAAA,CAAC9E,mBAAA;YACC6B,EAAA,EAAG;YACHqD,OAAA,EAASA,CAAA,KAAMhE,SAAA,CAAUd,4BAAA;YACzBgF,IAAA,EAAK;sBAEJnE,CAAA,CAAE,uBAAuB;cAAE2C,KAAA,EAAOnC,YAAA,EAAcoC,MAAA,EAAQC;YAAS;2BAEpEgB,IAAA,CAAC9E,mBAAA;YACC6B,EAAA,EAAG;YACHqD,OAAA,EAASA,CAAA;cACPtD,kBAAA;YACF;YACAwD,IAAA,EAAK;sBAEJnE,CAAA,CAAE,qBAAqB;cAAE2C,KAAA,EAAOnC,YAAA,EAAcoC,MAAA,EAAQC;YAAS;;;;qBAM1EgB,IAAA,CAAChD,qBAAA;MACC0D,WAAA,EAAa;QACX1C,OAAA,EAAS5D,6BAAA,CAA8B0B,KAAA,CAAMkC,OAAO;QACpDE,OAAA,EAASpC,KAAA,CAAMoC,OAAO;QACtBX,iBAAA,EAAmB5B,cAAA;QACnBwC,KAAA,EAAOrC,KAAA,CAAMqC;MACf;MACAwC,MAAA,EAAQ,MAAAA,CAAO;QAAEC;MAAG,CAAE;QACpB1D,oBAAA;QACA,MAAMY,kBAAA,CAAmB8C,GAAA;MAC3B;MACAC,mBAAA,EAAqB;qBAEvBb,IAAA,CAACjF,iBAAA;MACCyE,IAAA,eACEQ,IAAA,CAAC5E,WAAA;QACC0F,QAAA,EAAU;UACR,KAAKC,CAAC;YAAEC;UAAQ,CAAE,kBAAKhB,IAAA,CAAC;sBAAQgB;;QAClC;QACAC,OAAA,EAAQ;QACR9E,CAAA,EAAGA,CAAA;QACH+E,SAAA,EAAW;UACTpC,KAAA,EAAOnC,YAAA,EAAcoC,MAAA,EAAQC,QAAA;UAC7BC,KAAA,EAAOvD,YAAA,EAAcuD;QACvB;;MAGJkC,eAAA,EAAiBhF,CAAA,CAAE;MACnBiF,OAAA,EAASjF,CAAA,CAAE;MACXkF,SAAA,EAAW/F,4BAAA;MACXgG,SAAA,EAAWjD;qBAEb2B,IAAA,CAACpD,oBAAA;MACC2E,QAAA,EAAUA,CAAA;QACR;MAAA,CACF;MACAC,WAAA,EAAa,MAAAA,CAAO;QAAEZ;MAAG,CAAE;QACzB,MAAM9C,kBAAA,CAAmB8C,GAAA;MAC3B;MACAD,MAAA,EAAQ,MAAAA,CAAO;QAAEC;MAAG,CAAE;QACpB,MAAM9C,kBAAA,CAAmB8C,GAAA;MAC3B;qBAEFZ,IAAA,CAACvC,UAAA;MACCgE,WAAA,EAAa;MACbC,mBAAmB;MACnBC,QAAA,EAAU,MAAAA,CAAO;QAAEf;MAAG,CAAE;QACtBlD,eAAA;QACA,MAAMI,kBAAA,CAAmB8C,GAAA;MAC3B;;;AAIR","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAW9E,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAC3D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAW9E,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAC3D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2KzC,CAAA"}
|
|
@@ -102,7 +102,8 @@ export const RestoreButton = props => {
|
|
|
102
102
|
if (redirectAfterRestore) {
|
|
103
103
|
return startRouteTransition(() => router.push(formatAdminURL({
|
|
104
104
|
adminRoute,
|
|
105
|
-
path: `/collections/${collectionSlug}/${id}
|
|
105
|
+
path: `/collections/${collectionSlug}/${id}`,
|
|
106
|
+
serverURL
|
|
106
107
|
})));
|
|
107
108
|
}
|
|
108
109
|
if (typeof onRestore === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","qs","React","Fragment","useCallback","useState","toast","CheckboxInput","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","Button","ConfirmationModal","Translation","baseClass","RestoreButton","props","id","buttonId","collectionSlug","onRestore","redirectAfterRestore","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","router","i18n","t","startRouteTransition","openModal","modalSlug","restoreAsPublished","setRestoreAsPublished","addDefaultError","error","handleRestore","url","stringify","trash","where","and","equals","deletedAt","exists","body","versions","drafts","_status","res","patch","JSON","headers","language","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","_jsx","buttonStyle","onClick","elements","1","children","i18nKey","variables","className","checked","name","onToggle","e","target","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/RestoreButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'restore-button'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly redirectAfterRestore?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n}\n\nexport const RestoreButton: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onRestore,\n redirectAfterRestore = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n\n const modalSlug = `restore-${id}`\n\n const [restoreAsPublished, setRestoreAsPublished] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:restoringTitle', { title }))\n }, [t, title])\n\n const handleRestore = useCallback(async () => {\n try {\n const url = `${serverURL}${api}/${collectionSlug}?${qs.stringify({\n trash: true,\n where: {\n and: [{ id: { equals: id } }, { deletedAt: { exists: true } }],\n },\n })}`\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const res = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleRestored', {\n label: getTranslation(singularLabel, i18n),\n title,\n }) || json.message,\n )\n\n if (redirectAfterRestore) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${id}`,\n }),\n ),\n )\n }\n\n if (typeof onRestore === 'function') {\n await onRestore({ id, collectionConfig })\n }\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n } catch (_err) {\n addDefaultError()\n }\n }, [\n serverURL,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterRestore,\n onRestore,\n collectionConfig,\n startRouteTransition,\n restoreAsPublished,\n ])\n\n if (id) {\n return (\n <Fragment>\n <Button\n buttonStyle=\"primary\"\n id={buttonId}\n key={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:restore')}\n </Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraft'\n : 'general:aboutToRestore'\n }\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig?.versions?.drafts && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n </div>\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={modalSlug}\n onConfirm={handleRestore}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","qs","React","Fragment","useCallback","useState","toast","CheckboxInput","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","Button","ConfirmationModal","Translation","baseClass","RestoreButton","props","id","buttonId","collectionSlug","onRestore","redirectAfterRestore","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","router","i18n","t","startRouteTransition","openModal","modalSlug","restoreAsPublished","setRestoreAsPublished","addDefaultError","error","handleRestore","url","stringify","trash","where","and","equals","deletedAt","exists","body","versions","drafts","_status","res","patch","JSON","headers","language","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","_jsx","buttonStyle","onClick","elements","1","children","i18nKey","variables","className","checked","name","onToggle","e","target","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/RestoreButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'restore-button'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly redirectAfterRestore?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n}\n\nexport const RestoreButton: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onRestore,\n redirectAfterRestore = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n\n const modalSlug = `restore-${id}`\n\n const [restoreAsPublished, setRestoreAsPublished] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:restoringTitle', { title }))\n }, [t, title])\n\n const handleRestore = useCallback(async () => {\n try {\n const url = `${serverURL}${api}/${collectionSlug}?${qs.stringify({\n trash: true,\n where: {\n and: [{ id: { equals: id } }, { deletedAt: { exists: true } }],\n },\n })}`\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const res = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleRestored', {\n label: getTranslation(singularLabel, i18n),\n title,\n }) || json.message,\n )\n\n if (redirectAfterRestore) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${id}`,\n serverURL,\n }),\n ),\n )\n }\n\n if (typeof onRestore === 'function') {\n await onRestore({ id, collectionConfig })\n }\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n } catch (_err) {\n addDefaultError()\n }\n }, [\n serverURL,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterRestore,\n onRestore,\n collectionConfig,\n startRouteTransition,\n restoreAsPublished,\n ])\n\n if (id) {\n return (\n <Fragment>\n <Button\n buttonStyle=\"primary\"\n id={buttonId}\n key={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:restore')}\n </Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraft'\n : 'general:aboutToRestore'\n }\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig?.versions?.drafts && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n </div>\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={modalSlug}\n onConfirm={handleRestore}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAU1C,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAU1C,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EA4CrC,CAAA"}
|
|
@@ -12,7 +12,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
12
12
|
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
13
13
|
export const stayLoggedInModalSlug = 'stay-logged-in';
|
|
14
14
|
export const StayLoggedInModal = () => {
|
|
15
|
-
const $ = _c(
|
|
15
|
+
const $ = _c(12);
|
|
16
16
|
const {
|
|
17
17
|
refreshCookie
|
|
18
18
|
} = useAuth();
|
|
@@ -22,7 +22,8 @@ export const StayLoggedInModal = () => {
|
|
|
22
22
|
} = useConfig();
|
|
23
23
|
const {
|
|
24
24
|
admin: t0,
|
|
25
|
-
routes: t1
|
|
25
|
+
routes: t1,
|
|
26
|
+
serverURL
|
|
26
27
|
} = config;
|
|
27
28
|
const {
|
|
28
29
|
routes: t2
|
|
@@ -40,33 +41,35 @@ export const StayLoggedInModal = () => {
|
|
|
40
41
|
startRouteTransition
|
|
41
42
|
} = useRouteTransition();
|
|
42
43
|
let t3;
|
|
43
|
-
if ($[0] !== adminRoute || $[1] !== logoutRoute || $[2] !== router || $[3] !== startRouteTransition) {
|
|
44
|
+
if ($[0] !== adminRoute || $[1] !== logoutRoute || $[2] !== router || $[3] !== serverURL || $[4] !== startRouteTransition) {
|
|
44
45
|
t3 = () => startRouteTransition(() => router.push(formatAdminURL({
|
|
45
46
|
adminRoute,
|
|
46
|
-
path: logoutRoute
|
|
47
|
+
path: logoutRoute,
|
|
48
|
+
serverURL
|
|
47
49
|
})));
|
|
48
50
|
$[0] = adminRoute;
|
|
49
51
|
$[1] = logoutRoute;
|
|
50
52
|
$[2] = router;
|
|
51
|
-
$[3] =
|
|
52
|
-
$[4] =
|
|
53
|
+
$[3] = serverURL;
|
|
54
|
+
$[4] = startRouteTransition;
|
|
55
|
+
$[5] = t3;
|
|
53
56
|
} else {
|
|
54
|
-
t3 = $[
|
|
57
|
+
t3 = $[5];
|
|
55
58
|
}
|
|
56
59
|
const onConfirm = t3;
|
|
57
60
|
let t4;
|
|
58
|
-
if ($[
|
|
61
|
+
if ($[6] !== refreshCookie) {
|
|
59
62
|
t4 = () => {
|
|
60
63
|
refreshCookie();
|
|
61
64
|
};
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
65
|
+
$[6] = refreshCookie;
|
|
66
|
+
$[7] = t4;
|
|
64
67
|
} else {
|
|
65
|
-
t4 = $[
|
|
68
|
+
t4 = $[7];
|
|
66
69
|
}
|
|
67
70
|
const onCancel = t4;
|
|
68
71
|
let t5;
|
|
69
|
-
if ($[
|
|
72
|
+
if ($[8] !== onCancel || $[9] !== onConfirm || $[10] !== t) {
|
|
70
73
|
t5 = _jsx(ConfirmationModal, {
|
|
71
74
|
body: t("authentication:youAreInactive"),
|
|
72
75
|
cancelLabel: t("authentication:stayLoggedIn"),
|
|
@@ -76,12 +79,12 @@ export const StayLoggedInModal = () => {
|
|
|
76
79
|
onCancel,
|
|
77
80
|
onConfirm
|
|
78
81
|
});
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
82
|
-
$[
|
|
82
|
+
$[8] = onCancel;
|
|
83
|
+
$[9] = onConfirm;
|
|
84
|
+
$[10] = t;
|
|
85
|
+
$[11] = t5;
|
|
83
86
|
} else {
|
|
84
|
-
t5 = $[
|
|
87
|
+
t5 = $[11];
|
|
85
88
|
}
|
|
86
89
|
return t5;
|
|
87
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useRouter","formatAdminURL","React","useCallback","useAuth","useConfig","useRouteTransition","useTranslation","ConfirmationModal","stayLoggedInModalSlug","StayLoggedInModal","$","refreshCookie","router","config","admin","t0","routes","t1","t2","logout","logoutRoute","adminRoute","t","startRouteTransition","t3","push","path","onConfirm","t4","onCancel","t5","_jsx","body","cancelLabel","confirmLabel","heading","modalSlug"],"sources":["../../../src/elements/StayLoggedIn/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\nexport const stayLoggedInModalSlug = 'stay-logged-in'\n\nexport const StayLoggedInModal: React.FC = () => {\n const { refreshCookie } = useAuth()\n\n const router = useRouter()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n const { t } = useTranslation()\n const { startRouteTransition } = useRouteTransition()\n\n const onConfirm = useCallback(() => {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: logoutRoute,\n }),\n ),\n )\n }, [router, startRouteTransition, adminRoute, logoutRoute])\n\n const onCancel: OnCancel = useCallback(() => {\n refreshCookie()\n }, [refreshCookie])\n\n return (\n <ConfirmationModal\n body={t('authentication:youAreInactive')}\n cancelLabel={t('authentication:stayLoggedIn')}\n confirmLabel={t('authentication:logOut')}\n heading={t('authentication:stayLoggedIn')}\n modalSlug={stayLoggedInModalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,qBAAA,GAAwB;AAErC,OAAO,MAAMC,iBAAA,GAA8BA,CAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACzC;IAAAa;EAAA,IAA0BR,OAAA;EAE1B,MAAAS,MAAA,GAAeb,SAAA;EACf;IAAAc;EAAA,IAAmBT,SAAA;EAEnB;IAAAU,KAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC;EAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useRouter","formatAdminURL","React","useCallback","useAuth","useConfig","useRouteTransition","useTranslation","ConfirmationModal","stayLoggedInModalSlug","StayLoggedInModal","$","refreshCookie","router","config","admin","t0","routes","t1","serverURL","t2","logout","logoutRoute","adminRoute","t","startRouteTransition","t3","push","path","onConfirm","t4","onCancel","t5","_jsx","body","cancelLabel","confirmLabel","heading","modalSlug"],"sources":["../../../src/elements/StayLoggedIn/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\nexport const stayLoggedInModalSlug = 'stay-logged-in'\n\nexport const StayLoggedInModal: React.FC = () => {\n const { refreshCookie } = useAuth()\n\n const router = useRouter()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const { startRouteTransition } = useRouteTransition()\n\n const onConfirm = useCallback(() => {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: logoutRoute,\n serverURL,\n }),\n ),\n )\n }, [router, startRouteTransition, adminRoute, logoutRoute, serverURL])\n\n const onCancel: OnCancel = useCallback(() => {\n refreshCookie()\n }, [refreshCookie])\n\n return (\n <ConfirmationModal\n body={t('authentication:youAreInactive')}\n cancelLabel={t('authentication:stayLoggedIn')}\n confirmLabel={t('authentication:logOut')}\n heading={t('authentication:stayLoggedIn')}\n modalSlug={stayLoggedInModalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,qBAAA,GAAwB;AAErC,OAAO,MAAMC,iBAAA,GAA8BA,CAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACzC;IAAAa;EAAA,IAA0BR,OAAA;EAE1B,MAAAS,MAAA,GAAeb,SAAA;EACf;IAAAc;EAAA,IAAmBT,SAAA;EAEnB;IAAAU,KAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAMIL,MAAA;EALK;IAAAG,MAAA,EAAAG;EAAA,IAAAJ,EAEN;EADS;IAAAK,MAAA,EAAAC;EAAA,IAAAF,EAAuB;EAEzB;IAAAL,KAAA,EAAAQ;EAAA,IAAAL,EAAqB;EAI/B;IAAAM;EAAA,IAAcjB,cAAA;EACd;IAAAkB;EAAA,IAAiCnB,kBAAA;EAAA,IAAAoB,EAAA;EAAA,IAAAf,CAAA,QAAAY,UAAA,IAAAZ,CAAA,QAAAW,WAAA,IAAAX,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAQ,SAAA,IAAAR,CAAA,QAAAc,oBAAA;IAEHC,EAAA,GAAAA,CAAA,KACrBD,oBAAA,OACLZ,MAAA,CAAAc,IAAA,CACE1B,cAAA;MAAAsB,UAAA;MAAAK,IAAA,EAEQN,WAAA;MAAAH;IAAA,CAER;IAGNR,CAAA,MAAAY,UAAA;IAAAZ,CAAA,MAAAW,WAAA;IAAAX,CAAA,MAAAE,MAAA;IAAAF,CAAA,MAAAQ,SAAA;IAAAR,CAAA,MAAAc,oBAAA;IAAAd,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAVA,MAAAkB,SAAA,GAAkBH,EAUmD;EAAA,IAAAI,EAAA;EAAA,IAAAnB,CAAA,QAAAC,aAAA;IAE9BkB,EAAA,GAAAA,CAAA;MACrClB,aAAA;IAAA;IACFD,CAAA,MAAAC,aAAA;IAAAD,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAFA,MAAAoB,QAAA,GAA2BD,EAET;EAAA,IAAAE,EAAA;EAAA,IAAArB,CAAA,QAAAoB,QAAA,IAAApB,CAAA,QAAAkB,SAAA,IAAAlB,CAAA,SAAAa,CAAA;IAGhBQ,EAAA,GAAAC,IAAA,CAAAzB,iBAAA;MAAA0B,IAAA,EACQV,CAAA,CAAE;MAAAW,WAAA,EACKX,CAAA,CAAE;MAAAY,YAAA,EACDZ,CAAA,CAAE;MAAAa,OAAA,EACPb,CAAA,CAAE;MAAAc,SAAA,EAAA7B,qBAAA;MAAAsB,QAAA;MAAAF;IAAA,C;;;;;;;;SAJbG,E;CAUJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAgK3D,CAAA"}
|
|
@@ -14,7 +14,7 @@ import { Link } from '../../Link/index.js';
|
|
|
14
14
|
import { CodeCell } from './fields/Code/index.js';
|
|
15
15
|
import { cellComponents } from './fields/index.js';
|
|
16
16
|
export const DefaultCell = props => {
|
|
17
|
-
const $ = _c(
|
|
17
|
+
const $ = _c(17);
|
|
18
18
|
const {
|
|
19
19
|
cellData,
|
|
20
20
|
className: classNameFromProps,
|
|
@@ -38,14 +38,15 @@ export const DefaultCell = props => {
|
|
|
38
38
|
getEntityConfig
|
|
39
39
|
} = useConfig();
|
|
40
40
|
const {
|
|
41
|
-
routes: t2
|
|
41
|
+
routes: t2,
|
|
42
|
+
serverURL
|
|
42
43
|
} = t1;
|
|
43
44
|
const {
|
|
44
45
|
admin: adminRoute
|
|
45
46
|
} = t2;
|
|
46
47
|
let t3;
|
|
47
48
|
let t4;
|
|
48
|
-
if ($[0] !== admin || $[1] !== adminRoute || $[2] !== cellData || $[3] !== classNameFromProps || $[4] !== collectionSlug || $[5] !== field || $[6] !== getEntityConfig || $[7] !== i18n || $[8] !== link || $[9] !== linkURL || $[10] !== onClickFromProps || $[11] !== props || $[12] !== rowData || $[13] !== viewType) {
|
|
49
|
+
if ($[0] !== admin || $[1] !== adminRoute || $[2] !== cellData || $[3] !== classNameFromProps || $[4] !== collectionSlug || $[5] !== field || $[6] !== getEntityConfig || $[7] !== i18n || $[8] !== link || $[9] !== linkURL || $[10] !== onClickFromProps || $[11] !== props || $[12] !== rowData || $[13] !== serverURL || $[14] !== viewType) {
|
|
49
50
|
t4 = Symbol.for("react.early_return_sentinel");
|
|
50
51
|
bb0: {
|
|
51
52
|
const collectionConfig = getEntityConfig({
|
|
@@ -66,7 +67,8 @@ export const DefaultCell = props => {
|
|
|
66
67
|
} else {
|
|
67
68
|
wrapElementProps.href = collectionConfig?.slug ? formatAdminURL({
|
|
68
69
|
adminRoute,
|
|
69
|
-
path: `/collections/${collectionConfig?.slug}${viewType === "trash" ? "/trash" : ""}/${encodeURIComponent(rowData.id)}
|
|
70
|
+
path: `/collections/${collectionConfig?.slug}${viewType === "trash" ? "/trash" : ""}/${encodeURIComponent(rowData.id)}`,
|
|
71
|
+
serverURL
|
|
70
72
|
}) : "";
|
|
71
73
|
}
|
|
72
74
|
}
|
|
@@ -161,12 +163,13 @@ export const DefaultCell = props => {
|
|
|
161
163
|
$[10] = onClickFromProps;
|
|
162
164
|
$[11] = props;
|
|
163
165
|
$[12] = rowData;
|
|
164
|
-
$[13] =
|
|
165
|
-
$[14] =
|
|
166
|
-
$[15] =
|
|
166
|
+
$[13] = serverURL;
|
|
167
|
+
$[14] = viewType;
|
|
168
|
+
$[15] = t3;
|
|
169
|
+
$[16] = t4;
|
|
167
170
|
} else {
|
|
168
|
-
t3 = $[
|
|
169
|
-
t4 = $[
|
|
171
|
+
t3 = $[15];
|
|
172
|
+
t4 = $[16];
|
|
170
173
|
}
|
|
171
174
|
if (t4 !== Symbol.for("react.early_return_sentinel")) {
|
|
172
175
|
return t4;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","isValidReactElement","Link","CodeCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","DefaultCellComponent","CellComponent","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","Boolean","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","isValidReactElement","Link","CodeCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","serverURL","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","DefaultCellComponent","CellComponent","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","Boolean","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n serverURL,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,EAAEC,SAAS,QAAQ;AAC5C,OAAOC,KAAA,MAAW,QAAO,CAAC;AAE1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;AACrB,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,WAAA,GAAmDC,KAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAC9D;IAAAgB,QAAA;IAAAC,SAAA,EAAAC,kBAAA;IAAAC,cAAA;IAAAC,KAAA;IAAAA,KAAA,EAAAC,EAAA;IAAAC,IAAA;IAAAC,OAAA;IAAAC,OAAA,EAAAC,gBAAA;IAAAC,OAAA;IAAAC;EAAA,IAWIb,KAAA;EANK;IAAAc;EAAA,IAAAP,EAAS;EAQlB;IAAAQ;EAAA,IAAiBvB,cAAA;EAEjB;IAAAwB,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAMI3B,SAAA;EALM;IAAA4B,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAJ,EAGP;EAFS;IAAAH,KAAA,EAAAQ;EAAA,IAAAF,EAAqB;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAvB,CAAA,QAAAa,KAAA,IAAAb,CAAA,QAAAqB,UAAA,IAAArB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAG,kBAAA,IAAAH,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAAK,KAAA,IAAAL,CAAA,QAAAiB,eAAA,IAAAjB,CAAA,QAAAc,IAAA,IAAAd,CAAA,QAAAO,IAAA,IAAAP,CAAA,QAAAQ,OAAA,IAAAR,CAAA,SAAAU,gBAAA,IAAAV,CAAA,SAAAD,KAAA,IAAAC,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAoB,SAAA,IAAApB,CAAA,SAAAY,QAAA;IA6D7BW,EAAA,GAAAC,MAAA,CAAAC,GAAA,8B;;MAvDJ,MAAAC,gBAAA,GAAyBT,eAAA;QAAAb;MAAA,CAAiC;MAE1D,MAAAuB,0BAAA,GAAmCd,KAAA,IAAS,eAAeA,KAAA,GAAQA,KAAA,CAAAX,SAAA,GAAA0B,SAAkB;MAErF,MAAA1B,SAAA,GACEC,kBAAA,KACCE,KAAA,CAAAQ,KAAA,IAAe,eAAeR,KAAA,CAAAQ,KAAW,GAAGR,KAAA,CAAAQ,KAAA,CAAAX,SAAA,OAA2B,KACxEyB,0BAAA;MAEF,MAAAlB,OAAA,GAAgBC,gBAAA;MAEhB,IAAAmB,WAAA,GAAqD;MAErD,MAAAC,gBAAA;QAAA5B;MAAA;MAQA,IAEIK,IAAA;QACFuB,gBAAA,CAAAC,QAAA;QACAF,WAAA,CAAAA,CAAA,CAAAA,IAAA;QAAA,IAGIrB,OAAA;UACFsB,gBAAA,CAAAE,IAAA,GAAwBxB,OAAA;QAAA;UAExBsB,gBAAA,CAAAE,IAAA,GAAwBN,gBAAA,EAAAO,IAAA,GACpBzC,cAAA;YAAA6B,UAAA;YAAAa,IAAA,EAEQ,gBAAgBR,gBAAA,EAAAO,IAAA,GAAyBrB,QAAA,KAAa,UAAU,WAAW,MAAMuB,kBAAA,CAAmBxB,OAAA,CAAAyB,EAAU,GAAG;YAAAhB;UAAA,CAEzH,IACA;QAAA;MAAA;MAAA,IAIJ,OAAOX,OAAA,KAAY;QACrBoB,WAAA,CAAAA,CAAA,CAAcA,QAAA;QACdC,gBAAA,CAAAO,IAAA,GAAwB;QACxBP,gBAAA,CAAArB,OAAA;UACEA,OAAA;YAAAR,QAAA;YAAAG,cAAA,EAEkBsB,gBAAA,EAAAO,IAAA;YAAAtB;UAAA,CAElB;QAAA;MAAA;MAAA,IAIAvB,SAAA,CAAUiB,KAAA;QAEVkB,EAAA,GAAAe,IAAA,CAACT,WAAA;UAAA,GAAgBC,gBAAgB;UAAAS,QAAA,EAC/BD,IAAA,CAAA1C,QAAA;YAAAK,QAAA,EACY,OAAOA,QAAA,EAAU;YAAAyB,gBAAA;YAAAtB,cAAA;YAAAC,KAAA;cAAA,GAItBA,KAAK;cAAAgC,IAAA,EACF;YAAA;YAAAG,MAAA;YAAA7B;UAAA,C;;;;MAShB,MAAA8B,cAAA,GAAuBhD,sBAAA,CAAuBQ,QAAA,EAAUI,KAAA,EAAOS,IAAA;MAE/D,MAAA4B,oBAAA,GACE,OAAOzC,QAAA,KAAa,eAAAJ,cAAA,CAA8BQ,KAAA,CAAAgC,IAAA,CAAW;MAE/D,IAAAM,aAAA;MAAqC,IAGjCjD,mBAAA,CAAoB+C,cAAA;QACtBE,aAAA,CAAAA,CAAA,CAAgBF,cAAA;MAAhB;QAAA,IACSC,oBAAA;UACTC,aAAA,CAAAA,CAAA,CAAgBA,KAACD,oBAAA;YAAAzC,QAAA;YAAAU,OAAA;YAAA,GAA+DZ;UAAK,C;QAArF;UAAA,KACU2C,oBAAA;YAAA,IAGRhB,gBAAA,EAAAkB,MAAA,IACAzD,gBAAA,CAAiBkB,KAAA,KACjBA,KAAA,CAAAwC,IAAA,KAAe,cACfxC,KAAA,CAAAgC,IAAA,KAAe;cAEf,MAAAS,iBAAA,GAAAjD,cAAA,CAAAkD,IAAA;cAEAJ,aAAA,CAAAA,CAAA,CACEA,KAACG,iBAAA;gBAAA7C,QAAA;gBAAAU,OAAA;gBAAA,GAGMZ,KAAK;gBAAA2B,gBAAA;gBAAArB;cAAA,C;YAJd;cAWEkB,EAAA,GAAAyB,KAAA,CAACnB,WAAA;gBAAA,GAAgBC,gBAAgB;gBAAAS,QAAA,GAC7B,CAAAE,cAAA,KAAmB,MACnB,OAAOA,cAAA,KAAmB,eAC1BA,cAAA,SAAsB,KACtB3B,IAAA,CAAAmC,CAAA,CAAO;kBAAAC,KAAA,EACEhE,cAAA,CAAe,CAAC,WAAWmB,KAAA,GAAQA,KAAA,CAAA6C,KAAA,OAAiB,KAAM,QAAQpC,IAAA;gBAAA,CAC3E,GACD,OAAO2B,cAAA,KAAmB,YAAYA,cAAA,EACtC,OAAOA,cAAA,KAAmB,YAAYA,cAAA,EACtC,OAAOA,cAAA,KAAmB,YACzBA,cAAA,SAAmB,IACnBU,IAAA,CAAAC,SAAA,CAAeX,cAAA;cAAA,C;;;;;;UAMrB,CAACpC,KAAA,CAAAgC,IAAA,KAAe,YAAYhC,KAAA,CAAAgC,IAAA,KAAe,OAAM,KAAMhC,KAAA,CAAAgD,OAAA,CAAAC,MAAoB,IAAIrD,QAAA;QACjF,MAAAsD,OAAA,GAAgBC,KAAA,CAAAC,OAAA,CAAcxD,QAAA,IAC1BA,QAAA,CAAAyD,GAAA,CAAAC,KAA4C,EAAAC,IAAA,CAAO,OACnD,aAAa3D,QAAA,EAAU;QAE3B,MAAA4D,WAAA,GAAkB,CAAC/B,gBAAA,CAAA5B,SAAA,EAA4BqD,OAAA,EAAAO,MAAA,CAAAC,OAAgB,EAAAH,IAAA,CAAc;QAG3ErC,EAAA,GAAAe,IAAA,CAACT,WAAA;UAAA,GAAgBC,gBAAgB;UAAA5B,SAAA,EAAaA,WAAA;UAAAqC,QAAA,EAC3CI;QAAA,C;;;MAKArB,EAAA,GAAAgB,IAAA,CAACT,WAAA;QAAA,GAAgBC,gBAAgB;QAAAS,QAAA,EAAGI;MAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;SAApCrB,E;CACT;AAhKgE,SAAAqC,MAAAK,KAAA;EAAA,OAmJhC,aAAaA,KAAA,EAAO;AAAA","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ import React from 'react';
|
|
|
8
8
|
* rendering the original component.
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
|
-
* const PredefinedComponent =
|
|
11
|
+
* const PredefinedComponent = withMergedProps({
|
|
12
12
|
* Component: OriginalComponent,
|
|
13
13
|
* toMergeIntoProps: { someExtraValue: 5 }
|
|
14
14
|
* });
|
|
@@ -10,7 +10,7 @@ import React from 'react';
|
|
|
10
10
|
* rendering the original component.
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
|
-
* const PredefinedComponent =
|
|
13
|
+
* const PredefinedComponent = withMergedProps({
|
|
14
14
|
* Component: OriginalComponent,
|
|
15
15
|
* toMergeIntoProps: { someExtraValue: 5 }
|
|
16
16
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isReactServerComponentOrFunction","serverProps","React","withMergedProps","Component","sanitizeServerOnlyProps","toMergeIntoProps","undefined","MergedPropsComponent","passedProps","mergedProps","simpleMergeProps","forEach","prop","_jsx","props","toMerge"],"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent =
|
|
1
|
+
{"version":3,"file":"index.js","names":["isReactServerComponentOrFunction","serverProps","React","withMergedProps","Component","sanitizeServerOnlyProps","toMergeIntoProps","undefined","MergedPropsComponent","passedProps","mergedProps","simpleMergeProps","forEach","prop","_jsx","props","toMerge"],"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = withMergedProps({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n *\n * @param Component - The original component to wrap.\n * @param sanitizeServerOnlyProps - If true, server-only props will be removed from the merged props. @default true if the component is not a server component, false otherwise.\n * @param toMergeIntoProps - The properties to merge into the passed props.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n sanitizeServerOnlyProps,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n sanitizeServerOnlyProps?: boolean\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n if (sanitizeServerOnlyProps === undefined) {\n sanitizeServerOnlyProps = !isReactServerComponentOrFunction(Component)\n }\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = simpleMergeProps(passedProps, toMergeIntoProps) as CompleteReturnProps\n\n if (sanitizeServerOnlyProps) {\n serverProps.forEach((prop) => {\n delete mergedProps[prop]\n })\n }\n\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n\nfunction simpleMergeProps(props, toMerge) {\n return { ...props, ...toMerge }\n}\n"],"mappings":";AAAA,SAASA,gCAAgC,EAAEC,WAAW,QAAQ;AAC9D,OAAOC,KAAA,MAAW;AAElB;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,SAASC,gBAAuD;EACrEC,SAAS;EACTC,uBAAuB;EACvBC;AAAgB,CAKjB;EACC,IAAID,uBAAA,KAA4BE,SAAA,EAAW;IACzCF,uBAAA,GAA0B,CAACL,gCAAA,CAAiCI,SAAA;EAC9D;EACA;EACA,MAAMI,oBAAA,GAAuDC,WAAA;IAC3D,MAAMC,WAAA,GAAcC,gBAAA,CAAiBF,WAAA,EAAaH,gBAAA;IAElD,IAAID,uBAAA,EAAyB;MAC3BJ,WAAA,CAAYW,OAAO,CAAEC,IAAA;QACnB,OAAOH,WAAW,CAACG,IAAA,CAAK;MAC1B;IACF;IAEA,oBAAOC,IAAA,CAACV,SAAA;MAAW,GAAGM;;EACxB;EAEA,OAAOF,oBAAA;AACT;AAEA,SAASG,iBAAiBI,KAAK,EAAEC,OAAO;EACtC,OAAO;IAAE,GAAGD,KAAK;IAAE,GAAGC;EAAQ;AAChC","ignoreList":[]}
|