@payloadcms/ui 3.68.2 → 3.68.4
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/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/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/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/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/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 +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","combineWhereConstraints","mergeListSearchAndWhere","unflatten","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderField","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","useLocale","OperationContext","useRouteCache","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","parseSearchParams","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","fields","labels","plural","singular","count","drawerSlug","ids","onSuccess","onSuccessFromProps","selectAll","selectedFields","setSelectedFields","where","permissions","user","code","locale","closeModal","config","routes","api","apiRoute","serverURL","getFormState","i18n","isInitializing","setIsInitializing","router","abortFormStateRef","useRef","clearRouteCache","collectionPermissions","collections","slug","searchParams","select","reduce","acc","option","value","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","current","abortFormState","queryString","whereConstraints","push","queryWithSearch","collectionConfig","search","get","id","not_equals","in","stringify","addQueryPrefix","replace","page","undefined","onFieldSelect","dispatchFields","selected","type","currentEditor","hasPublishedDoc","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","_jsxs","label","length","map","i","field","fieldPermissions","clientFieldConfig","indexPath","parentPath","parentSchemaPath","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectType, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { combineWhereConstraints, mergeListSearchAndWhere, unflatten } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../FieldSelect/index.js'\nimport type { FieldOption } from '../FieldSelect/reduceFieldOptions.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderField } from '../../forms/RenderFields/RenderField.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\nimport '../../forms/RenderFields/index.scss'\nimport { baseClass, type EditManyProps } from './index.js'\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\ntype EditManyDrawerContentProps = {\n /**\n * The total count of selected items\n */\n count?: number\n /**\n * The slug of the drawer\n */\n drawerSlug: string\n /**\n * The IDs of the selected items\n */\n ids?: (number | string)[]\n /**\n * The function to call after a successful action\n */\n onSuccess?: () => void\n /**\n * Whether all items are selected\n */\n selectAll?: boolean\n /**\n * The fields that are selected to bulk edit\n */\n selectedFields: FieldOption[]\n /**\n * The function to set the selected fields to bulk edit\n */\n setSelectedFields: (fields: FieldOption[]) => void\n where?: Where\n} & EditManyProps\n\nexport const EditManyDrawerContent: React.FC<EditManyDrawerContentProps> = (props) => {\n const {\n collection,\n collection: { fields, labels: { plural, singular } } = {},\n count,\n drawerSlug,\n ids,\n onSuccess: onSuccessFromProps,\n selectAll,\n selectedFields,\n setSelectedFields,\n where,\n } = props\n\n const { permissions, user } = useAuth()\n const { code: locale } = useLocale()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { i18n, t } = useTranslation()\n\n const [isInitializing, setIsInitializing] = useState(false)\n\n const router = useRouter()\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[collection.slug]\n const searchParams = useSearchParams()\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo((): string => {\n const whereConstraints: Where[] = []\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n\n if (typeof onSuccessFromProps === 'function') {\n onSuccessFromProps()\n }\n }\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n setSelectedFields(selected || [])\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection.slug, collectionPermissions, setSelectedFields],\n )\n\n return (\n <DocumentInfoProvider\n collectionSlug={collection.slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect\n fields={fields}\n onChange={onFieldSelect}\n permissions={collectionPermissions.fields}\n />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n {selectedFields.map((option, i) => {\n const {\n value: { field, fieldPermissions, path },\n } = option\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={fieldPermissions}\n />\n )\n })}\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}`}\n disabled={selectedFields.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","combineWhereConstraints","formatApiURL","mergeListSearchAndWhere","unflatten","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderField","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","useLocale","OperationContext","useRouteCache","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","parseSearchParams","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","fields","labels","plural","singular","count","drawerSlug","ids","onSuccess","onSuccessFromProps","selectAll","selectedFields","setSelectedFields","where","permissions","user","code","locale","closeModal","config","routes","api","apiRoute","serverURL","getFormState","i18n","isInitializing","setIsInitializing","router","abortFormStateRef","useRef","clearRouteCache","collectionPermissions","collections","slug","searchParams","select","reduce","acc","option","value","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","current","abortFormState","queryString","whereConstraints","push","queryWithSearch","collectionConfig","search","get","id","not_equals","in","stringify","addQueryPrefix","replace","page","undefined","onFieldSelect","dispatchFields","selected","type","currentEditor","hasPublishedDoc","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","_jsxs","label","length","map","i","field","fieldPermissions","clientFieldConfig","indexPath","parentPath","parentSchemaPath","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectType, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport {\n combineWhereConstraints,\n formatApiURL,\n mergeListSearchAndWhere,\n unflatten,\n} from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../FieldSelect/index.js'\nimport type { FieldOption } from '../FieldSelect/reduceFieldOptions.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderField } from '../../forms/RenderFields/RenderField.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\nimport '../../forms/RenderFields/index.scss'\nimport { baseClass, type EditManyProps } from './index.js'\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\ntype EditManyDrawerContentProps = {\n /**\n * The total count of selected items\n */\n count?: number\n /**\n * The slug of the drawer\n */\n drawerSlug: string\n /**\n * The IDs of the selected items\n */\n ids?: (number | string)[]\n /**\n * The function to call after a successful action\n */\n onSuccess?: () => void\n /**\n * Whether all items are selected\n */\n selectAll?: boolean\n /**\n * The fields that are selected to bulk edit\n */\n selectedFields: FieldOption[]\n /**\n * The function to set the selected fields to bulk edit\n */\n setSelectedFields: (fields: FieldOption[]) => void\n where?: Where\n} & EditManyProps\n\nexport const EditManyDrawerContent: React.FC<EditManyDrawerContentProps> = (props) => {\n const {\n collection,\n collection: { fields, labels: { plural, singular } } = {},\n count,\n drawerSlug,\n ids,\n onSuccess: onSuccessFromProps,\n selectAll,\n selectedFields,\n setSelectedFields,\n where,\n } = props\n\n const { permissions, user } = useAuth()\n const { code: locale } = useLocale()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { i18n, t } = useTranslation()\n\n const [isInitializing, setIsInitializing] = useState(false)\n\n const router = useRouter()\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[collection.slug]\n const searchParams = useSearchParams()\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo((): string => {\n const whereConstraints: Where[] = []\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n\n if (typeof onSuccessFromProps === 'function') {\n onSuccessFromProps()\n }\n }\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n setSelectedFields(selected || [])\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection.slug, collectionPermissions, setSelectedFields],\n )\n\n return (\n <DocumentInfoProvider\n collectionSlug={collection.slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect\n fields={fields}\n onChange={onFieldSelect}\n permissions={collectionPermissions.fields}\n />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n {selectedFields.map((option, i) => {\n const {\n value: { field, fieldPermissions, path },\n } = option\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={fieldPermissions}\n />\n )\n })}\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={formatApiURL({\n apiRoute,\n path: `/${collection.slug}${queryString}&draft=true`,\n serverURL,\n })}\n disabled={selectedFields.length === 0}\n />\n <PublishButton\n action={formatApiURL({\n apiRoute,\n path: `/${collection.slug}${queryString}&draft=true`,\n serverURL,\n })}\n disabled={selectedFields.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={formatApiURL({\n apiRoute,\n path: `/${collection.slug}${queryString}`,\n serverURL,\n })}\n disabled={selectedFields.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/BrowseByFolderButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE;;CAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FolderView/BrowseByFolderButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE;;CAAA,qBA0B9C"}
|
|
@@ -24,13 +24,15 @@ export function BrowseByFolderButton({
|
|
|
24
24
|
},
|
|
25
25
|
routes: {
|
|
26
26
|
admin: adminRoute
|
|
27
|
-
}
|
|
27
|
+
},
|
|
28
|
+
serverURL
|
|
28
29
|
} = config;
|
|
29
30
|
return /*#__PURE__*/_jsxs(Link, {
|
|
30
31
|
className: [baseClass, active && 'active'].filter(Boolean).join(' '),
|
|
31
32
|
href: formatAdminURL({
|
|
32
33
|
adminRoute,
|
|
33
|
-
path: foldersRoute
|
|
34
|
+
path: foldersRoute,
|
|
35
|
+
serverURL
|
|
34
36
|
}),
|
|
35
37
|
id: "browse-by-folder",
|
|
36
38
|
prefetch: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["formatAdminURL","React","useConfig","useTranslation","Link","ColoredFolderIcon","baseClass","BrowseByFolderButton","active","t","config","admin","routes","browseByFolder","foldersRoute","adminRoute","_jsxs","className","filter","Boolean","join","href","path","id","prefetch","_jsx"],"sources":["../../../../src/elements/FolderView/BrowseByFolderButton/index.tsx"],"sourcesContent":["import { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Link } from '../../Link/index.js'\nimport { ColoredFolderIcon } from '../ColoredFolderIcon/index.js'\nimport './index.scss'\n\nconst baseClass = 'browse-by-folder-button'\n\nexport function BrowseByFolderButton({ active }) {\n const { t } = useTranslation()\n const { config } = useConfig()\n const {\n admin: {\n routes: { browseByFolder: foldersRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n return (\n <Link\n className={[baseClass, active && 'active'].filter(Boolean).join(' ')}\n href={formatAdminURL({\n adminRoute,\n path: foldersRoute,\n })}\n id=\"browse-by-folder\"\n prefetch={false}\n >\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </Link>\n )\n}\n"],"mappings":";AAAA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,IAAI,QAAQ;AACrB,SAASC,iBAAiB,QAAQ;AAClC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAASC,qBAAqB;EAAEC;AAAM,CAAE;EAC7C,MAAM;IAAEC;EAAC,CAAE,GAAGN,cAAA;EACd,MAAM;IAAEO;EAAM,CAAE,GAAGR,SAAA;EACnB,MAAM;IACJS,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,cAAA,EAAgBC;MAAY;IAAE,CACzC;IACDF,MAAA,EAAQ;MAAED,KAAA,EAAOI;IAAU;
|
|
1
|
+
{"version":3,"file":"index.js","names":["formatAdminURL","React","useConfig","useTranslation","Link","ColoredFolderIcon","baseClass","BrowseByFolderButton","active","t","config","admin","routes","browseByFolder","foldersRoute","adminRoute","serverURL","_jsxs","className","filter","Boolean","join","href","path","id","prefetch","_jsx"],"sources":["../../../../src/elements/FolderView/BrowseByFolderButton/index.tsx"],"sourcesContent":["import { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Link } from '../../Link/index.js'\nimport { ColoredFolderIcon } from '../ColoredFolderIcon/index.js'\nimport './index.scss'\n\nconst baseClass = 'browse-by-folder-button'\n\nexport function BrowseByFolderButton({ active }) {\n const { t } = useTranslation()\n const { config } = useConfig()\n const {\n admin: {\n routes: { browseByFolder: foldersRoute },\n },\n routes: { admin: adminRoute },\n serverURL,\n } = config\n\n return (\n <Link\n className={[baseClass, active && 'active'].filter(Boolean).join(' ')}\n href={formatAdminURL({\n adminRoute,\n path: foldersRoute,\n serverURL,\n })}\n id=\"browse-by-folder\"\n prefetch={false}\n >\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </Link>\n )\n}\n"],"mappings":";AAAA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,IAAI,QAAQ;AACrB,SAASC,iBAAiB,QAAQ;AAClC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAASC,qBAAqB;EAAEC;AAAM,CAAE;EAC7C,MAAM;IAAEC;EAAC,CAAE,GAAGN,cAAA;EACd,MAAM;IAAEO;EAAM,CAAE,GAAGR,SAAA;EACnB,MAAM;IACJS,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,cAAA,EAAgBC;MAAY;IAAE,CACzC;IACDF,MAAA,EAAQ;MAAED,KAAA,EAAOI;IAAU,CAAE;IAC7BC;EAAS,CACV,GAAGN,MAAA;EAEJ,oBACEO,KAAA,CAACb,IAAA;IACCc,SAAA,EAAW,CAACZ,SAAA,EAAWE,MAAA,IAAU,SAAS,CAACW,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;IAChEC,IAAA,EAAMtB,cAAA,CAAe;MACnBe,UAAA;MACAQ,IAAA,EAAMT,YAAA;MACNE;IACF;IACAQ,EAAA,EAAG;IACHC,QAAA,EAAU;4BAEVC,IAAA,CAACrB,iBAAA,OACAI,CAAA,CAAE;;AAGT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAUrB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAUrB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA4BjF,CAAA"}
|
|
@@ -12,7 +12,7 @@ import { sanitizeID } from '../../utilities/sanitizeID.js';
|
|
|
12
12
|
import { useDrawerDepth } from '../Drawer/index.js';
|
|
13
13
|
const baseClass = 'id-label';
|
|
14
14
|
export const IDLabel = t0 => {
|
|
15
|
-
const $ = _c(
|
|
15
|
+
const $ = _c(10);
|
|
16
16
|
const {
|
|
17
17
|
id,
|
|
18
18
|
className,
|
|
@@ -23,7 +23,8 @@ export const IDLabel = t0 => {
|
|
|
23
23
|
config: t2
|
|
24
24
|
} = useConfig();
|
|
25
25
|
const {
|
|
26
|
-
routes: t3
|
|
26
|
+
routes: t3,
|
|
27
|
+
serverURL
|
|
27
28
|
} = t2;
|
|
28
29
|
const {
|
|
29
30
|
admin: adminRoute
|
|
@@ -35,18 +36,19 @@ export const IDLabel = t0 => {
|
|
|
35
36
|
const drawerDepth = useDrawerDepth();
|
|
36
37
|
const t4 = `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`;
|
|
37
38
|
let t5;
|
|
38
|
-
if ($[0] !== adminRoute || $[1] !== className || $[2] !== drawerDepth || $[3] !== id || $[4] !== prefix || $[5] !== t4) {
|
|
39
|
+
if ($[0] !== adminRoute || $[1] !== className || $[2] !== drawerDepth || $[3] !== id || $[4] !== prefix || $[5] !== serverURL || $[6] !== t4) {
|
|
39
40
|
const docPath = formatAdminURL({
|
|
40
41
|
adminRoute,
|
|
41
|
-
path: t4
|
|
42
|
+
path: t4,
|
|
43
|
+
serverURL
|
|
42
44
|
});
|
|
43
45
|
let t6;
|
|
44
|
-
if ($[
|
|
46
|
+
if ($[8] !== className) {
|
|
45
47
|
t6 = [baseClass, className].filter(Boolean);
|
|
46
|
-
$[
|
|
47
|
-
$[
|
|
48
|
+
$[8] = className;
|
|
49
|
+
$[9] = t6;
|
|
48
50
|
} else {
|
|
49
|
-
t6 = $[
|
|
51
|
+
t6 = $[9];
|
|
50
52
|
}
|
|
51
53
|
t5 = _jsxs("div", {
|
|
52
54
|
className: t6.join(" "),
|
|
@@ -61,10 +63,11 @@ export const IDLabel = t0 => {
|
|
|
61
63
|
$[2] = drawerDepth;
|
|
62
64
|
$[3] = id;
|
|
63
65
|
$[4] = prefix;
|
|
64
|
-
$[5] =
|
|
65
|
-
$[6] =
|
|
66
|
+
$[5] = serverURL;
|
|
67
|
+
$[6] = t4;
|
|
68
|
+
$[7] = t5;
|
|
66
69
|
} else {
|
|
67
|
-
t5 = $[
|
|
70
|
+
t5 = $[7];
|
|
68
71
|
}
|
|
69
72
|
return t5;
|
|
70
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","t4","t5","docPath","path","t6","filter","Boolean","_jsxs","join","title","children","_jsx","href"],"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => {\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n \n {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,OAAA,GAAyEC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,EAAA;IAAAC,SAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAL,EAItF;EADC,MAAAI,MAAA,GAAAC,EAAc,KAAAC,SAAA,GAAL,KAAK,GAAdD,EAAc;EAEd;IAAAE,MAAA,EAAAC;EAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","serverURL","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","t4","t5","docPath","path","t6","filter","Boolean","_jsxs","join","title","children","_jsx","href"],"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => {\n const {\n config: {\n routes: { admin: adminRoute },\n serverURL,\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n serverURL,\n })\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n \n {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,OAAA,GAAyEC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,EAAA;IAAAC,SAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAL,EAItF;EADC,MAAAI,MAAA,GAAAC,EAAc,KAAAC,SAAA,GAAL,KAAK,GAAdD,EAAc;EAEd;IAAAE,MAAA,EAAAC;EAAA,IAKIf,SAAA;EAJM;IAAAgB,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAH,EAGP;EAFS;IAAAI,KAAA,EAAAC;EAAA,IAAAH,EAAqB;EAKjC;IAAAI,cAAA;IAAAC;EAAA,IAAuCrB,eAAA;EACvC,MAAAsB,WAAA,GAAoBnB,cAAA;EAIZ,MAAAoB,EAAA,OAAIH,cAAA,GAAiB,eAAeA,cAAA,EAAgB,GAAG,WAAWC,UAAA,EAAY,IAAIb,EAAA,EAAI;EAAA,IAAAgB,EAAA;EAAA,IAAAjB,CAAA,QAAAY,UAAA,IAAAZ,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAe,WAAA,IAAAf,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAU,SAAA,IAAAV,CAAA,QAAAgB,EAAA;IAF9F,MAAAE,OAAA,GAAgBxB,cAAA;MAAAkB,UAAA;MAAAO,IAAA,EAERH,EAAsF;MAAAN;IAAA,CAE9F;IAAA,IAAAU,EAAA;IAAA,IAAApB,CAAA,QAAAE,SAAA;MAGkBkB,EAAA,IAAAvB,SAAA,EAAYK,SAAA,EAAAmB,MAAA,CAAAC,OAAkB;MAAAtB,CAAA,MAAAE,SAAA;MAAAF,CAAA,MAAAoB,EAAA;IAAA;MAAAA,EAAA,GAAApB,CAAA;IAAA;IAA9CiB,EAAA,GAAAM,KAAA,CAAC;MAAArB,SAAA,EAAekB,EAA8B,CAAAI,IAAA,CAAc;MAAAC,KAAA,EAAaxB,EAAA;MAAAyB,QAAA,GACtEvB,MAAA,EAAO,QAEPY,WAAA,IAAc,GAAIY,IAAA,CAAApC,IAAA;QAAAqC,IAAA,EAAYV,OAAA;QAAAQ,QAAA,EAAU/B,UAAA,CAAWM,EAAA;MAAA,C,IAAcN,UAAA,CAAWM,EAAA;IAAA,C;;;;;;;;;;;;SAH/EgB,E;CAMJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Logout/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Logout/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CA4BA,CAAA"}
|
|
@@ -10,7 +10,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
10
10
|
import { Link } from '../Link/index.js';
|
|
11
11
|
const baseClass = 'nav';
|
|
12
12
|
export const Logout = t0 => {
|
|
13
|
-
const $ = _c(
|
|
13
|
+
const $ = _c(6);
|
|
14
14
|
const {
|
|
15
15
|
tabIndex: t1
|
|
16
16
|
} = t0;
|
|
@@ -23,7 +23,8 @@ export const Logout = t0 => {
|
|
|
23
23
|
} = useConfig();
|
|
24
24
|
const {
|
|
25
25
|
admin: t2,
|
|
26
|
-
routes: t3
|
|
26
|
+
routes: t3,
|
|
27
|
+
serverURL
|
|
27
28
|
} = config;
|
|
28
29
|
const {
|
|
29
30
|
routes: t4
|
|
@@ -35,13 +36,14 @@ export const Logout = t0 => {
|
|
|
35
36
|
admin: adminRoute
|
|
36
37
|
} = t3;
|
|
37
38
|
let t5;
|
|
38
|
-
if ($[0] !== adminRoute || $[1] !== logoutRoute || $[2] !==
|
|
39
|
+
if ($[0] !== adminRoute || $[1] !== logoutRoute || $[2] !== serverURL || $[3] !== t || $[4] !== tabIndex) {
|
|
39
40
|
t5 = _jsx(Link, {
|
|
40
41
|
"aria-label": t("authentication:logOut"),
|
|
41
42
|
className: `${baseClass}__log-out`,
|
|
42
43
|
href: formatAdminURL({
|
|
43
44
|
adminRoute,
|
|
44
|
-
path: logoutRoute
|
|
45
|
+
path: logoutRoute,
|
|
46
|
+
serverURL
|
|
45
47
|
}),
|
|
46
48
|
prefetch: false,
|
|
47
49
|
tabIndex,
|
|
@@ -50,11 +52,12 @@ export const Logout = t0 => {
|
|
|
50
52
|
});
|
|
51
53
|
$[0] = adminRoute;
|
|
52
54
|
$[1] = logoutRoute;
|
|
53
|
-
$[2] =
|
|
54
|
-
$[3] =
|
|
55
|
-
$[4] =
|
|
55
|
+
$[2] = serverURL;
|
|
56
|
+
$[3] = t;
|
|
57
|
+
$[4] = tabIndex;
|
|
58
|
+
$[5] = t5;
|
|
56
59
|
} else {
|
|
57
|
-
t5 = $[
|
|
60
|
+
t5 = $[5];
|
|
58
61
|
}
|
|
59
62
|
return t5;
|
|
60
63
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","LogOutIcon","useConfig","useTranslation","Link","baseClass","Logout","t0","$","tabIndex","t1","undefined","t","config","admin","t2","routes","t3","t4","logout","logoutRoute","adminRoute","t5","_jsx","className","href","path","prefetch","title","children"],"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Link } from '../Link/index.js'\n\nconst baseClass = 'nav'\n\nexport const Logout: React.FC<{\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ tabIndex = 0 }) => {\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n return (\n <Link\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={formatAdminURL({\n adminRoute,\n path: logoutRoute,\n })}\n prefetch={false}\n tabIndex={tabIndex}\n title={t('authentication:logOut')}\n >\n <LogOutIcon />\n </Link>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,IAAI,QAAQ;AAErB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,MAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW,QAAA,EAAAC;EAAA,IAAAH,EAAgB;EAAd,MAAAE,QAAA,GAAAC,EAAY,KAAAC,SAAA,OAAZD,EAAY;EAClB;IAAAE;EAAA,IAAcT,cAAA;EACd;IAAAU;EAAA,IAAmBX,SAAA;EAEnB;IAAAY,KAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC;EAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","LogOutIcon","useConfig","useTranslation","Link","baseClass","Logout","t0","$","tabIndex","t1","undefined","t","config","admin","t2","routes","t3","serverURL","t4","logout","logoutRoute","adminRoute","t5","_jsx","className","href","path","prefetch","title","children"],"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Link } from '../Link/index.js'\n\nconst baseClass = 'nav'\n\nexport const Logout: React.FC<{\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ tabIndex = 0 }) => {\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n serverURL,\n } = config\n\n return (\n <Link\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={formatAdminURL({\n adminRoute,\n path: logoutRoute,\n serverURL,\n })}\n prefetch={false}\n tabIndex={tabIndex}\n title={t('authentication:logOut')}\n >\n <LogOutIcon />\n </Link>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,IAAI,QAAQ;AAErB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,MAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW,QAAA,EAAAC;EAAA,IAAAH,EAAgB;EAAd,MAAAE,QAAA,GAAAC,EAAY,KAAAC,SAAA,OAAZD,EAAY;EAClB;IAAAE;EAAA,IAAcT,cAAA;EACd;IAAAU;EAAA,IAAmBX,SAAA;EAEnB;IAAAY,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;EAAA,IAAAM,EAAA;EAAA,IAAAf,CAAA,QAAAc,UAAA,IAAAd,CAAA,QAAAa,WAAA,IAAAb,CAAA,QAAAU,SAAA,IAAAV,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAC,QAAA;IAK7Bc,EAAA,GAAAC,IAAA,CAAApB,IAAA;MAAA,cACcQ,CAAA,CAAE;MAAAa,SAAA,EACH,GAAApB,SAAA,WAAuB;MAAAqB,IAAA,EAC5B3B,cAAA;QAAAuB,UAAA;QAAAK,IAAA,EAEEN,WAAA;QAAAH;MAAA,CAER;MAAAU,QAAA;MAAAnB,QAAA;MAAAoB,KAAA,EAGOjB,CAAA,CAAE;MAAAkB,QAAA,EAETN,IAAA,CAAAvB,UAAA,IAAC;IAAA,C;;;;;;;;;;SAZHsB,E;CAeJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PermanentlyDeleteButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAW9E,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,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,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,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PermanentlyDeleteButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAW9E,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,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,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,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2InD,CAAA"}
|
|
@@ -90,7 +90,8 @@ export const PermanentlyDeleteButton = props => {
|
|
|
90
90
|
if (redirectAfterDelete) {
|
|
91
91
|
return startRouteTransition(() => router.push(formatAdminURL({
|
|
92
92
|
adminRoute,
|
|
93
|
-
path: `/collections/${collectionSlug}/trash
|
|
93
|
+
path: `/collections/${collectionSlug}/trash`,
|
|
94
|
+
serverURL
|
|
94
95
|
})));
|
|
95
96
|
}
|
|
96
97
|
if (typeof onDelete === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","qs","React","Fragment","useCallback","toast","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","Button","ConfirmationModal","Translation","PermanentlyDeleteButton","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","router","i18n","t","startRouteTransition","openModal","modalSlug","addDefaultError","error","handleDelete","url","stringify","trash","where","and","equals","deletedAt","exists","res","delete","headers","language","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","_jsx","buttonStyle","onClick","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/PermanentlyDeleteButton/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 } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\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'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n}\n\nexport const PermanentlyDeleteButton: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = 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 = `perma-delete-${id}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = 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 res = await requests.delete(url, {\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:titleDeleted', {\n label: getTranslation(singularLabel, i18n),\n title,\n }) || json.message,\n )\n\n if (redirectAfterDelete) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/trash`,\n }),\n ),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ 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 redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n ])\n\n if (id) {\n return (\n <Fragment>\n <Button\n buttonStyle=\"secondary\"\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:permanentlyDelete')}\n </Button>\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,QAAQ;AAC7C,SAASC,KAAK,QAAQ;AAItB,SAASC,SAAS,QAAQ;AAC1B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,WAAW,QAAQ;AAY5B,OAAO,MAAMC,uBAAA,GAA4CC,KAAA;EACvD,MAAM;IACJC,EAAE;IACFC,QAAQ;IACRC,cAAc;IACdC,QAAQ;IACRC,mBAAA,GAAsB,IAAI;IAC1BC,aAAa;IACbC,KAAA,EAAOC;EAAc,CACtB,GAAGR,KAAA;EAEJ,MAAM;IACJS,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,UAAU;QAAEC;MAAG,CAAE;MAClCC;IAAS,CACV;IACDC;EAAe,CAChB,GAAGxB,SAAA;EAEJ,MAAMyB,gBAAA,GAAmBD,eAAA,CAAgB;IAAEZ;EAAe;EAC1D,MAAMc,MAAA,GAASjC,SAAA;EACf,MAAM;IAAEkC,IAAI;IAAEC;EAAC,CAAE,GAAGzB,cAAA;EACpB,MAAM;IAAEa;EAAK,CAAE,GAAGf,gBAAA;EAClB,MAAM;IAAE4B;EAAoB,CAAE,GAAG3B,kBAAA;EACjC,MAAM;IAAE4B;EAAS,CAAE,GAAGvC,QAAA;EAEtB,MAAMwC,SAAA,GAAY,gBAAgBrB,EAAA,EAAI;EAEtC,MAAMsB,eAAA,GAAkBlC,WAAA,CAAY;IAClCC,KAAA,CAAMkC,KAAK,CAACL,CAAA,CAAE,uBAAuB;MAAEZ;IAAM;EAC/C,GAAG,CAACY,CAAA,EAAGZ,KAAA,CAAM;EAEb,MAAMkB,YAAA,GAAepC,WAAA,CAAY;IAC/B,IAAI;MACF,MAAMqC,GAAA,GAAM,GAAGZ,SAAA,GAAYD,GAAA,IAAOV,cAAA,IAAkBjB,EAAA,CAAGyC,SAAS,CAAC;QAC/DC,KAAA,EAAO;QACPC,KAAA,EAAO;UACLC,GAAA,EAAK,CAAC;YAAE7B,EAAA,EAAI;cAAE8B,MAAA,EAAQ9B;YAAG;UAAE,GAAG;YAAE+B,SAAA,EAAW;cAAEC,MAAA,EAAQ;YAAK;UAAE;QAC9D;MACF,IAAI;MAEJ,MAAMC,GAAA,GAAM,MAAMvC,QAAA,CAASwC,MAAM,CAACT,GAAA,EAAK;QACrCU,OAAA,EAAS;UACP,mBAAmBlB,IAAA,CAAKmB,QAAQ;UAChC,gBAAgB;QAClB;MACF;MAEA,MAAMC,IAAA,GAAO,MAAMJ,GAAA,CAAII,IAAI;MAE3B,IAAIJ,GAAA,CAAIK,MAAM,GAAG,KAAK;QACpBjD,KAAA,CAAMkD,OAAO,CACXrB,CAAA,CAAE,wBAAwB;UACxBsB,KAAA,EAAO1D,cAAA,CAAeuB,aAAA,EAAeY,IAAA;UACrCX;QACF,MAAM+B,IAAA,CAAKI,OAAO;QAGpB,IAAIrC,mBAAA,EAAqB;UACvB,OAAOe,oBAAA,CAAqB,MAC1BH,MAAA,CAAO0B,IAAI,CACT1D,cAAA,CAAe;YACb2B,UAAA;YACAgC,IAAA,EAAM,gBAAgBzC,cAAA;
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","qs","React","Fragment","useCallback","toast","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","Button","ConfirmationModal","Translation","PermanentlyDeleteButton","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","router","i18n","t","startRouteTransition","openModal","modalSlug","addDefaultError","error","handleDelete","url","stringify","trash","where","and","equals","deletedAt","exists","res","delete","headers","language","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","_jsx","buttonStyle","onClick","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/PermanentlyDeleteButton/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 } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\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'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n}\n\nexport const PermanentlyDeleteButton: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = 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 = `perma-delete-${id}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = 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 res = await requests.delete(url, {\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:titleDeleted', {\n label: getTranslation(singularLabel, i18n),\n title,\n }) || json.message,\n )\n\n if (redirectAfterDelete) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/trash`,\n serverURL,\n }),\n ),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ 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 redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n ])\n\n if (id) {\n return (\n <Fragment>\n <Button\n buttonStyle=\"secondary\"\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:permanentlyDelete')}\n </Button>\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\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/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAMvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,wBAAwB,qBAqP3E"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useModal } from '@faceless-ui/modal';
|
|
5
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
5
6
|
import { hasAutosaveEnabled, hasScheduledPublishEnabled } from 'payload/shared';
|
|
6
7
|
import * as qs from 'qs-esm';
|
|
7
8
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
@@ -57,6 +58,7 @@ export function PublishButton({
|
|
|
57
58
|
serverURL
|
|
58
59
|
} = config;
|
|
59
60
|
const {
|
|
61
|
+
i18n,
|
|
60
62
|
t
|
|
61
63
|
} = useTranslation();
|
|
62
64
|
const label = labelProp || t('version:publishChanges');
|
|
@@ -159,7 +161,7 @@ export function PublishButton({
|
|
|
159
161
|
// Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'
|
|
160
162
|
const isDefaultPublishAll = !isSpecificLocalePublishEnabled || localization && localization?.defaultLocalePublishOption !== 'active';
|
|
161
163
|
const activeLocale = localization && localization?.locales.find(locale_0 => typeof locale_0 === 'string' ? locale_0 === localeCode : locale_0.code === localeCode);
|
|
162
|
-
const activeLocaleLabel = activeLocale && (
|
|
164
|
+
const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n);
|
|
163
165
|
if (!hasPublishPermission) {
|
|
164
166
|
return null;
|
|
165
167
|
}
|
|
@@ -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":"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","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", {
|