@payloadcms/ui 3.39.0-canary.6 → 3.39.0-internal.1c212c9
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/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +0 -3
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +0 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
- package/dist/elements/ColumnSelector/index.js +2 -3
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -2
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -5
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -2
- package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js +2 -5
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +1 -2
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +2 -5
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +0 -1
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.d.ts.map +1 -1
- package/dist/elements/RenderTitle/index.js +2 -5
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SortColumn/index.scss +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +0 -3
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/exports/client/index.d.ts +0 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -23
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js.map +2 -2
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +5 -5
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +1 -3
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +0 -1
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +1 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +18 -31
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
- package/dist/hooks/useUseAsTitle.js +5 -25
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +3 -14
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +2 -22
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js +1 -2
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +0 -2
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js +0 -3
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +0 -2
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState.js +11 -28
- package/dist/providers/TableColumns/buildColumnState.js.map +1 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.js +12 -29
- package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -1
- package/dist/providers/TableColumns/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/index.js +0 -1
- package/dist/providers/TableColumns/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/formatDocTitle/index.d.ts.map +1 -1
- package/dist/utilities/formatDocTitle/index.js.map +1 -1
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +2 -16
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +2 -5
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +2 -2
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +1 -1
- package/dist/views/Edit/index.js.map +1 -1
- package/package.json +5 -4
- package/dist/providers/DocumentTitle/context.d.ts +0 -2
- package/dist/providers/DocumentTitle/context.d.ts.map +0 -1
- package/dist/providers/DocumentTitle/context.js +0 -2
- package/dist/providers/DocumentTitle/context.js.map +0 -1
- package/dist/providers/DocumentTitle/index.d.ts +0 -10
- package/dist/providers/DocumentTitle/index.d.ts.map +0 -1
- package/dist/providers/DocumentTitle/index.js +0 -62
- package/dist/providers/DocumentTitle/index.js.map +0 -1
- package/dist/providers/TableColumns/findValueInDoc.d.ts +0 -2
- package/dist/providers/TableColumns/findValueInDoc.d.ts.map +0 -1
- package/dist/providers/TableColumns/findValueInDoc.js +0 -18
- package/dist/providers/TableColumns/findValueInDoc.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["TZDateMini","TZDate","useModal","getTranslation","transpose","qs","React","useCallback","useMemo","toast","FieldLabel","Radio","useConfig","useDocumentInfo","useDocumentTitle","useServerFunctions","useTranslation","requests","Banner","DrawerCloseButton","Button","DatePickerField","Drawer","Gutter","ReactSelect","ShimmerEffect","Table","TimezonePicker","buildUpcomingColumns","baseClass","defaultLocaleOption","label","value","ScheduleDrawer","slug","defaultType","schedulePublishConfig","toggleModal","config","admin","dateFormat","timezones","defaultTimezone","supportedTimezones","localization","routes","api","serverURL","id","collectionSlug","globalSlug","title","i18n","t","schedulePublish","type","setType","useState","date","setDate","timezone","setTimezone","locale","setLocale","processing","setProcessing","modalTitle","upcoming","setUpcoming","upcomingColumns","setUpcomingColumns","deleteHandlerRef","useRef","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localeOptions","options","locales","map","code","unshift","fetchUpcoming","query","sort","where","and","taskSlug","equals","waitUntil","greater_than","Date","push","String","docs","post","body","stringify","headers","language","then","res","json","deleteHandler","current","deleteID","success","err","console","error","message","useEffect","handleSave","publishSpecificLocale","doc","relationTo","undefined","global","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","onChangeDate","incomingDate","tzDateWithUTC","dateToUserTz","fetchInitialUpcoming","_jsxs","className","gutter","Header","_jsx","onClick","required","isSelected","onChange","option","path","readOnly","minDate","e","pickerAppearance","timeFormat","timeIntervals","length","selectedTimezone","Fragment","buttonStyle","disabled","appearance","columns","data"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\n'use client'\n\nimport type { Column, SchedulePublish, Where } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transpose } from 'date-fns/transpose'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishType, UpcomingEvent } from './types.js'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { Radio } from '../../../fields/RadioGroup/Radio/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { Banner } from '../../Banner/index.js'\nimport { DrawerCloseButton } from '../../BulkUpload/DrawerCloseButton/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DatePickerField } from '../../DatePicker/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { Gutter } from '../../Gutter/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport './index.scss'\nimport { Table } from '../../Table/index.js'\nimport { TimezonePicker } from '../../TimezonePicker/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n defaultType?: PublishType\n schedulePublishConfig?: SchedulePublish\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({ slug, defaultType, schedulePublishConfig }) => {\n const { toggleModal } = useModal()\n const {\n config: {\n admin: {\n dateFormat,\n timezones: { defaultTimezone, supportedTimezones },\n },\n localization,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { title } = useDocumentTitle()\n const { i18n, t } = useTranslation()\n const { schedulePublish } = useServerFunctions()\n const [type, setType] = React.useState<PublishType>(defaultType || 'publish')\n const [date, setDate] = React.useState<Date>()\n const [timezone, setTimezone] = React.useState<string>(defaultTimezone)\n const [locale, setLocale] = React.useState<{ label: string; value: string }>(defaultLocaleOption)\n const [processing, setProcessing] = React.useState(false)\n const modalTitle = t('general:schedulePublishFor', { title })\n const [upcoming, setUpcoming] = React.useState<UpcomingEvent[]>()\n const [upcomingColumns, setUpcomingColumns] = React.useState<Column[]>()\n const deleteHandlerRef = React.useRef<((id: number | string) => Promise<void>) | null>(() => null)\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const localeOptions = React.useMemo(() => {\n if (localization) {\n const options = localization.locales.map(({ code, label }) => ({\n label: getTranslation(label, i18n),\n value: code,\n }))\n\n options.unshift(defaultLocaleOption)\n\n return options\n }\n\n return []\n }, [localization, i18n])\n\n const fetchUpcoming = React.useCallback(async () => {\n const query: { sort: string; where: Where } = {\n sort: 'waitUntil',\n where: {\n and: [\n {\n taskSlug: {\n equals: 'schedulePublish',\n },\n },\n {\n waitUntil: {\n greater_than: new Date(),\n },\n },\n ],\n },\n }\n\n if (collectionSlug) {\n query.where.and.push({\n 'input.doc.value': {\n equals: String(id),\n },\n })\n query.where.and.push({\n 'input.doc.relationTo': {\n equals: collectionSlug,\n },\n })\n }\n\n if (globalSlug) {\n query.where.and.push({\n 'input.global': {\n equals: globalSlug,\n },\n })\n }\n\n const { docs } = await requests\n .post(`${serverURL}${api}/payload-jobs`, {\n body: qs.stringify(query),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n })\n .then((res) => res.json())\n\n setUpcomingColumns(\n buildUpcomingColumns({\n dateFormat,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n deleteHandler: deleteHandlerRef.current,\n docs,\n i18n,\n localization,\n supportedTimezones,\n t,\n }),\n )\n setUpcoming(docs)\n }, [\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n i18n,\n dateFormat,\n localization,\n supportedTimezones,\n t,\n id,\n ])\n\n const deleteHandler = React.useCallback(\n async (id: number | string) => {\n try {\n await schedulePublish({\n deleteID: id,\n })\n await fetchUpcoming()\n toast.success(t('general:deletedSuccessfully'))\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n },\n [fetchUpcoming, schedulePublish, t],\n )\n\n React.useEffect(() => {\n deleteHandlerRef.current = deleteHandler\n }, [deleteHandler])\n\n const handleSave = React.useCallback(async () => {\n if (!date) {\n return toast.error(t('general:noDateSelected'))\n }\n\n setProcessing(true)\n\n let publishSpecificLocale: string\n\n if (typeof locale === 'object' && locale.value !== 'all' && type === 'publish') {\n publishSpecificLocale = locale.value\n }\n\n try {\n await schedulePublish({\n type,\n date,\n doc: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: String(id),\n }\n : undefined,\n global: globalSlug || undefined,\n locale: publishSpecificLocale,\n timezone,\n })\n\n setDate(undefined)\n toast.success(t('version:scheduledSuccessfully'))\n void fetchUpcoming()\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n\n setProcessing(false)\n }, [\n date,\n locale,\n type,\n t,\n schedulePublish,\n collectionSlug,\n id,\n globalSlug,\n timezone,\n fetchUpcoming,\n ])\n\n const displayedValue = useMemo(() => {\n if (timezone && userTimezone && date) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(timezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(date).withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return date\n }, [timezone, date, userTimezone])\n\n const onChangeDate = useCallback(\n (incomingDate: Date) => {\n if (timezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const tzDateWithUTC = TZDate.tz(timezone)\n\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, tzDateWithUTC)\n\n setDate(dateWithTimezone || null)\n } else {\n setDate(incomingDate || null)\n }\n },\n [setDate, timezone],\n )\n\n React.useEffect(() => {\n if (!upcoming) {\n const fetchInitialUpcoming = async () => {\n await fetchUpcoming()\n }\n\n void fetchInitialUpcoming()\n }\n }, [upcoming, fetchUpcoming])\n\n return (\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <div className={`${baseClass}__drawer-header`}>\n <h2 title={modalTitle}>{modalTitle}</h2>\n <DrawerCloseButton onClick={() => toggleModal(slug)} />\n </div>\n }\n slug={slug}\n >\n <Gutter className={`${baseClass}__scheduler`}>\n <FieldLabel label={t('version:type')} required />\n <ul className={`${baseClass}__type`}>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'publish'}\n onChange={() => setType('publish')}\n option={{ label: t('version:publish'), value: 'publish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'unpublish'}\n onChange={() => setType('unpublish')}\n option={{ label: t('version:unpublish'), value: 'unpublish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n </ul>\n <br />\n <FieldLabel label={t('general:time')} path={'time'} required />\n <DatePickerField\n id=\"time\"\n minDate={new Date()}\n onChange={(e) => onChangeDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n timeFormat={schedulePublishConfig?.timeFormat}\n timeIntervals={schedulePublishConfig?.timeIntervals ?? 5}\n value={displayedValue}\n />\n {supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`timezone-picker`}\n onChange={setTimezone}\n options={supportedTimezones}\n selectedTimezone={timezone}\n />\n )}\n <br />\n {localeOptions.length > 0 && type === 'publish' && (\n <React.Fragment>\n <FieldLabel label={t('localization:localeToPublish')} />\n <ReactSelect\n onChange={(e) => setLocale(e as { label: string; value: string })}\n options={localeOptions}\n value={locale}\n />\n <br />\n </React.Fragment>\n )}\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"primary\"\n disabled={processing}\n id=\"scheduled-publish-save\"\n onClick={handleSave}\n type=\"button\"\n >\n {t('general:save')}\n </Button>\n {processing ? <span>{t('general:saving')}</span> : null}\n </div>\n </Gutter>\n <Gutter className={`${baseClass}__upcoming`}>\n <h4>{t('general:upcomingEvents')}</h4>\n {!upcoming && <ShimmerEffect />}\n {upcoming?.length === 0 && (\n <Banner type=\"info\">{t('general:noUpcomingEventsScheduled')}</Banner>\n )}\n {upcoming?.length > 0 && (\n <Table appearance=\"condensed\" columns={upcomingColumns} data={upcoming} />\n )}\n </Gutter>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["TZDateMini","TZDate","useModal","getTranslation","transpose","qs","React","useCallback","useMemo","toast","FieldLabel","Radio","useConfig","useDocumentInfo","useServerFunctions","useTranslation","requests","Banner","DrawerCloseButton","Button","DatePickerField","Drawer","Gutter","ReactSelect","ShimmerEffect","Table","TimezonePicker","buildUpcomingColumns","baseClass","defaultLocaleOption","label","value","ScheduleDrawer","slug","defaultType","schedulePublishConfig","toggleModal","config","admin","dateFormat","timezones","defaultTimezone","supportedTimezones","localization","routes","api","serverURL","id","collectionSlug","globalSlug","title","i18n","t","schedulePublish","type","setType","useState","date","setDate","timezone","setTimezone","locale","setLocale","processing","setProcessing","modalTitle","upcoming","setUpcoming","upcomingColumns","setUpcomingColumns","deleteHandlerRef","useRef","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localeOptions","options","locales","map","code","unshift","fetchUpcoming","query","sort","where","and","taskSlug","equals","waitUntil","greater_than","Date","push","String","docs","post","body","stringify","headers","language","then","res","json","deleteHandler","current","deleteID","success","err","console","error","message","useEffect","handleSave","publishSpecificLocale","doc","relationTo","undefined","global","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","onChangeDate","incomingDate","tzDateWithUTC","dateToUserTz","fetchInitialUpcoming","_jsxs","className","gutter","Header","_jsx","onClick","required","isSelected","onChange","option","path","readOnly","minDate","e","pickerAppearance","timeFormat","timeIntervals","length","selectedTimezone","Fragment","buttonStyle","disabled","appearance","columns","data"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\n'use client'\n\nimport type { Column, SchedulePublish, Where } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transpose } from 'date-fns/transpose'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishType, UpcomingEvent } from './types.js'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { Radio } from '../../../fields/RadioGroup/Radio/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { Banner } from '../../Banner/index.js'\nimport { DrawerCloseButton } from '../../BulkUpload/DrawerCloseButton/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DatePickerField } from '../../DatePicker/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { Gutter } from '../../Gutter/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport './index.scss'\nimport { Table } from '../../Table/index.js'\nimport { TimezonePicker } from '../../TimezonePicker/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n defaultType?: PublishType\n schedulePublishConfig?: SchedulePublish\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({ slug, defaultType, schedulePublishConfig }) => {\n const { toggleModal } = useModal()\n const {\n config: {\n admin: {\n dateFormat,\n timezones: { defaultTimezone, supportedTimezones },\n },\n localization,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug, title } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const { schedulePublish } = useServerFunctions()\n const [type, setType] = React.useState<PublishType>(defaultType || 'publish')\n const [date, setDate] = React.useState<Date>()\n const [timezone, setTimezone] = React.useState<string>(defaultTimezone)\n const [locale, setLocale] = React.useState<{ label: string; value: string }>(defaultLocaleOption)\n const [processing, setProcessing] = React.useState(false)\n const modalTitle = t('general:schedulePublishFor', { title })\n const [upcoming, setUpcoming] = React.useState<UpcomingEvent[]>()\n const [upcomingColumns, setUpcomingColumns] = React.useState<Column[]>()\n const deleteHandlerRef = React.useRef<((id: number | string) => Promise<void>) | null>(() => null)\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const localeOptions = React.useMemo(() => {\n if (localization) {\n const options = localization.locales.map(({ code, label }) => ({\n label: getTranslation(label, i18n),\n value: code,\n }))\n\n options.unshift(defaultLocaleOption)\n\n return options\n }\n\n return []\n }, [localization, i18n])\n\n const fetchUpcoming = React.useCallback(async () => {\n const query: { sort: string; where: Where } = {\n sort: 'waitUntil',\n where: {\n and: [\n {\n taskSlug: {\n equals: 'schedulePublish',\n },\n },\n {\n waitUntil: {\n greater_than: new Date(),\n },\n },\n ],\n },\n }\n\n if (collectionSlug) {\n query.where.and.push({\n 'input.doc.value': {\n equals: String(id),\n },\n })\n query.where.and.push({\n 'input.doc.relationTo': {\n equals: collectionSlug,\n },\n })\n }\n\n if (globalSlug) {\n query.where.and.push({\n 'input.global': {\n equals: globalSlug,\n },\n })\n }\n\n const { docs } = await requests\n .post(`${serverURL}${api}/payload-jobs`, {\n body: qs.stringify(query),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n })\n .then((res) => res.json())\n\n setUpcomingColumns(\n buildUpcomingColumns({\n dateFormat,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n deleteHandler: deleteHandlerRef.current,\n docs,\n i18n,\n localization,\n supportedTimezones,\n t,\n }),\n )\n setUpcoming(docs)\n }, [\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n i18n,\n dateFormat,\n localization,\n supportedTimezones,\n t,\n id,\n ])\n\n const deleteHandler = React.useCallback(\n async (id: number | string) => {\n try {\n await schedulePublish({\n deleteID: id,\n })\n await fetchUpcoming()\n toast.success(t('general:deletedSuccessfully'))\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n },\n [fetchUpcoming, schedulePublish, t],\n )\n\n React.useEffect(() => {\n deleteHandlerRef.current = deleteHandler\n }, [deleteHandler])\n\n const handleSave = React.useCallback(async () => {\n if (!date) {\n return toast.error(t('general:noDateSelected'))\n }\n\n setProcessing(true)\n\n let publishSpecificLocale: string\n\n if (typeof locale === 'object' && locale.value !== 'all' && type === 'publish') {\n publishSpecificLocale = locale.value\n }\n\n try {\n await schedulePublish({\n type,\n date,\n doc: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: String(id),\n }\n : undefined,\n global: globalSlug || undefined,\n locale: publishSpecificLocale,\n timezone,\n })\n\n setDate(undefined)\n toast.success(t('version:scheduledSuccessfully'))\n void fetchUpcoming()\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n\n setProcessing(false)\n }, [\n date,\n locale,\n type,\n t,\n schedulePublish,\n collectionSlug,\n id,\n globalSlug,\n timezone,\n fetchUpcoming,\n ])\n\n const displayedValue = useMemo(() => {\n if (timezone && userTimezone && date) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(timezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(date).withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return date\n }, [timezone, date, userTimezone])\n\n const onChangeDate = useCallback(\n (incomingDate: Date) => {\n if (timezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const tzDateWithUTC = TZDate.tz(timezone)\n\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, tzDateWithUTC)\n\n setDate(dateWithTimezone || null)\n } else {\n setDate(incomingDate || null)\n }\n },\n [setDate, timezone],\n )\n\n React.useEffect(() => {\n if (!upcoming) {\n const fetchInitialUpcoming = async () => {\n await fetchUpcoming()\n }\n\n void fetchInitialUpcoming()\n }\n }, [upcoming, fetchUpcoming])\n\n return (\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <div className={`${baseClass}__drawer-header`}>\n <h2 title={modalTitle}>{modalTitle}</h2>\n <DrawerCloseButton onClick={() => toggleModal(slug)} />\n </div>\n }\n slug={slug}\n >\n <Gutter className={`${baseClass}__scheduler`}>\n <FieldLabel label={t('version:type')} required />\n <ul className={`${baseClass}__type`}>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'publish'}\n onChange={() => setType('publish')}\n option={{ label: t('version:publish'), value: 'publish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'unpublish'}\n onChange={() => setType('unpublish')}\n option={{ label: t('version:unpublish'), value: 'unpublish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n </ul>\n <br />\n <FieldLabel label={t('general:time')} path={'time'} required />\n <DatePickerField\n id=\"time\"\n minDate={new Date()}\n onChange={(e) => onChangeDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n timeFormat={schedulePublishConfig?.timeFormat}\n timeIntervals={schedulePublishConfig?.timeIntervals ?? 5}\n value={displayedValue}\n />\n {supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`timezone-picker`}\n onChange={setTimezone}\n options={supportedTimezones}\n selectedTimezone={timezone}\n />\n )}\n <br />\n {localeOptions.length > 0 && type === 'publish' && (\n <React.Fragment>\n <FieldLabel label={t('localization:localeToPublish')} />\n <ReactSelect\n onChange={(e) => setLocale(e as { label: string; value: string })}\n options={localeOptions}\n value={locale}\n />\n <br />\n </React.Fragment>\n )}\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"primary\"\n disabled={processing}\n id=\"scheduled-publish-save\"\n onClick={handleSave}\n type=\"button\"\n >\n {t('general:save')}\n </Button>\n {processing ? <span>{t('general:saving')}</span> : null}\n </div>\n </Gutter>\n <Gutter className={`${baseClass}__upcoming`}>\n <h4>{t('general:upcomingEvents')}</h4>\n {!upcoming && <ShimmerEffect />}\n {upcoming?.length === 0 && (\n <Banner type=\"info\">{t('general:noUpcomingEventsScheduled')}</Banner>\n )}\n {upcoming?.length > 0 && (\n <Table appearance=\"condensed\" columns={upcomingColumns} data={upcoming} />\n )}\n </Gutter>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqD,MAAM,OAAO,CAAA;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAoBrE,OAAO,cAAc,CAAA;AAIrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqD,MAAM,OAAO,CAAA;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAoBrE,OAAO,cAAc,CAAA;AAIrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAiUvE,CAAA"}
|
|
@@ -159,7 +159,6 @@ export const RelationshipTable = props => {
|
|
|
159
159
|
if (Array.isArray(relationTo) && !isDrawerOpen && selectedCollection) {
|
|
160
160
|
setSelectedCollection(undefined);
|
|
161
161
|
}
|
|
162
|
-
// eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
|
|
163
162
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
164
163
|
}, [isDrawerOpen]);
|
|
165
164
|
return /*#__PURE__*/_jsxs("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useState","Button","Pill","useEffectEvent","ChevronIcon","PlusIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","AnimateHeight","ColumnSelector","useDocumentDrawer","Popup","PopupList","RelationshipProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","selectedCollection","setSelectedCollection","undefined","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","renderRowTypes","tableAppearance","handleTableRender","DocumentDrawer","DocumentDrawerToggler","closeDrawer","isDrawerOpen","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","onDrawerDelete","filter","canCreate","collections","create","_jsxs","className","_jsx","button","buttonStyle","buttonType","horizontalAlign","render","close","closePopup","ButtonGroup","relatedCollection","onClick","find","each","slug","labels","singular","size","icon","direction","pillStyle","length","label","plural","modifySearchParams","onQueryChange","LinkedCellOverride","height","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const [selectedCollection, setSelectedCollection] = useState(\n Array.isArray(relationTo) ? undefined : relationTo,\n )\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit),\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ListPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n docs,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, isDrawerOpen, openDrawer }] =\n useDocumentDrawer({\n collectionSlug: selectedCollection,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data?.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n void renderTable(newDocs)\n },\n [data?.docs, renderTable],\n )\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[Array.isArray(relationTo) ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (Array.isArray(relationTo) && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, relationTo])\n\n useEffect(() => {\n if (Array.isArray(relationTo) && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {!Array.isArray(relationTo) && canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n\n {Array.isArray(relationTo) && (\n <Fragment>\n <Popup\n button={\n <Button buttonStyle=\"none\" className={`${baseClass}__add-new-polymorphic`}>\n {i18n.t('fields:addNew')}\n <PlusIcon />\n </Button>\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relationTo.map((relatedCollection) => {\n if (permissions.collections[relatedCollection].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection}`}\n key={relatedCollection}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection)\n }}\n >\n {getTranslation(\n config.collections.find((each) => each.slug === relatedCollection)\n .labels.singular,\n i18n,\n )}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n </Fragment>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: Array.isArray(relationTo)\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n columns={transformColumnsToPreferences(columnState)}\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n defaultSort={field.defaultSort ?? collectionConfig?.defaultSort}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`\n }\n >\n <TableColumnsProvider\n collectionSlug={Array.isArray(relationTo) ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useState","Button","Pill","useEffectEvent","ChevronIcon","PlusIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","AnimateHeight","ColumnSelector","useDocumentDrawer","Popup","PopupList","RelationshipProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","selectedCollection","setSelectedCollection","undefined","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","renderRowTypes","tableAppearance","handleTableRender","DocumentDrawer","DocumentDrawerToggler","closeDrawer","isDrawerOpen","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","onDrawerDelete","filter","canCreate","collections","create","_jsxs","className","_jsx","button","buttonStyle","buttonType","horizontalAlign","render","close","closePopup","ButtonGroup","relatedCollection","onClick","find","each","slug","labels","singular","size","icon","direction","pillStyle","length","label","plural","modifySearchParams","onQueryChange","LinkedCellOverride","height","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const [selectedCollection, setSelectedCollection] = useState(\n Array.isArray(relationTo) ? undefined : relationTo,\n )\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit),\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ListPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n docs,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, isDrawerOpen, openDrawer }] =\n useDocumentDrawer({\n collectionSlug: selectedCollection,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data?.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n void renderTable(newDocs)\n },\n [data?.docs, renderTable],\n )\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[Array.isArray(relationTo) ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (Array.isArray(relationTo) && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, relationTo])\n\n useEffect(() => {\n if (Array.isArray(relationTo) && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {!Array.isArray(relationTo) && canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n\n {Array.isArray(relationTo) && (\n <Fragment>\n <Popup\n button={\n <Button buttonStyle=\"none\" className={`${baseClass}__add-new-polymorphic`}>\n {i18n.t('fields:addNew')}\n <PlusIcon />\n </Button>\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relationTo.map((relatedCollection) => {\n if (permissions.collections[relatedCollection].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection}`}\n key={relatedCollection}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection)\n }}\n >\n {getTranslation(\n config.collections.find((each) => each.slug === relatedCollection)\n .labels.singular,\n i18n,\n )}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n </Fragment>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: Array.isArray(relationTo)\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n columns={transformColumnsToPreferences(columnState)}\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n defaultSort={field.defaultSort ?? collectionConfig?.defaultSort}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`\n }\n >\n <TableColumnsProvider\n collectionSlug={Array.isArray(relationTo) ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RenderTitle/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RenderTitle/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8BlD,CAAA"}
|
|
@@ -4,7 +4,6 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import React, { Fragment } from 'react';
|
|
6
6
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
7
|
-
import { useDocumentTitle } from '../../providers/DocumentTitle/index.js';
|
|
8
7
|
import { IDLabel } from '../IDLabel/index.js';
|
|
9
8
|
import './index.scss';
|
|
10
9
|
const baseClass = 'render-title';
|
|
@@ -19,11 +18,9 @@ export const RenderTitle = props => {
|
|
|
19
18
|
const element = t0 === undefined ? "h1" : t0;
|
|
20
19
|
const {
|
|
21
20
|
id,
|
|
22
|
-
isInitializing
|
|
23
|
-
} = useDocumentInfo();
|
|
24
|
-
const {
|
|
21
|
+
isInitializing,
|
|
25
22
|
title: titleFromContext
|
|
26
|
-
} =
|
|
23
|
+
} = useDocumentInfo();
|
|
27
24
|
const title = titleFromProps || titleFromContext || fallback;
|
|
28
25
|
const idAsTitle = title === id;
|
|
29
26
|
const Tag = element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","Fragment","useDocumentInfo","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","Fragment","useDocumentInfo","IDLabel","baseClass","RenderTitle","props","$","className","element","t0","fallback","title","titleFromProps","undefined","id","isInitializing","titleFromContext","idAsTitle","Tag","t1","EmptySpace","_jsx","children","t2","t3","filter","Boolean","join"],"sources":["../../../src/elements/RenderTitle/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment } from 'react'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport './index.scss'\n\nconst baseClass = 'render-title'\n\nexport type RenderTitleProps = {\n className?: string\n element?: React.ElementType\n fallback?: string\n fallbackToID?: boolean\n title?: string\n}\n\nexport const RenderTitle: React.FC<RenderTitleProps> = (props) => {\n const { className, element = 'h1', fallback, title: titleFromProps } = props\n\n const { id, isInitializing, title: titleFromContext } = useDocumentInfo()\n\n const title = titleFromProps || titleFromContext || fallback\n\n const idAsTitle = title === id\n\n const Tag = element\n\n // Render and invisible character to prevent layout shift when the title populates from context\n const EmptySpace = <Fragment> </Fragment>\n\n return (\n <Tag\n className={[className, baseClass, idAsTitle && `${baseClass}--has-id`]\n .filter(Boolean)\n .join(' ')}\n title={title}\n >\n {isInitializing ? (\n EmptySpace\n ) : (\n <Fragment>\n {idAsTitle ? <IDLabel className={`${baseClass}__id`} id={id} /> : title || EmptySpace}\n </Fragment>\n )}\n </Tag>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,eAAe,QAAQ;AAChC,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAUlB,OAAO,MAAMC,WAAA,GAA0CC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACrD;IAAAS,SAAA;IAAAC,OAAA,EAAAC,EAAA;IAAAC,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAuEP,KAAA;EAApD,MAAAG,OAAA,GAAAC,EAAc,KAAAI,SAAA,GAAJ,IAAI,GAAdJ,EAAc;EAEjC;IAAAK,EAAA;IAAAC,cAAA;IAAAJ,KAAA,EAAAK;EAAA,IAAwDf,eAAA;EAExD,MAAAU,KAAA,GAAcC,cAAA,IAAkBI,gBAAA,IAAoBN,QAAA;EAEpD,MAAAO,SAAA,GAAkBN,KAAA,KAAUG,EAAA;EAE5B,MAAAI,GAAA,GAAYV,OAAA;EAAA,IAAAW,EAAA;EAAA,IAAAb,CAAA,QAAAY,GAAA,IAAAZ,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAQ,EAAA,IAAAR,CAAA,QAAAW,SAAA,IAAAX,CAAA,QAAAS,cAAA,IAAAT,CAAA,QAAAK,KAAA;IAGZ,MAAAS,UAAA,GAAmBC,IAAA,CAAArB,QAAA;MAAAsB,QAAA,EAAU;IAAA,C;IAIS,MAAAC,EAAA,GAAAN,SAAA,IAAa,GAAAd,SAAA,UAAsB;IAAA,IAAAqB,EAAA;IAAA,IAAAlB,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAiB,EAAA;MAA1DC,EAAA,IAACjB,SAAA,EAAAJ,SAAA,EAAsBoB,EAAmC,EAAAE,MAAA,CAAAC,OAC3D;MAAApB,CAAA,MAAAC,SAAA;MAAAD,CAAA,MAAAiB,EAAA;MAAAjB,CAAA,MAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAFZa,EAAA,GAAAE,IAAA,CAACH,GAAA;MAAAX,SAAA,EACYiB,EACD,CAAAG,IAAA,CACF;MAAAhB,KAAA;MAAAW,QAAA,EAGPP,cAAA,GACCK,UAAA,GAEAC,IAAA,CAAArB,QAAA;QAAAsB,QAAA,EACGL,SAAA,GAAYI,IAAA,CAAAnB,OAAA;UAAAK,SAAA,EAAoB,GAAAJ,SAAA,MAAkB;UAAAW;QAAA,C,IAAeH,KAAA,IAASS;MAAA,C;;;;;;;;;;;;SAVjFD,E;CAeJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,wBAAgB,eAAe,CAAC,KAAK,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,wBAAgB,eAAe,CAAC,KAAK,EAAE,0BAA0B,qBA0FhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","props","config","routes","api","serverURL","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","code","locale","ref","editDepth","t","submit","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","count","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","_jsx","buttonId","buttonStyle","className","onClick","size","type"],"sources":["../../../src/elements/SaveDraftButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SaveDraftButtonClientProps } from 'payload'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nexport function SaveDraftButton(props: SaveDraftButtonClientProps) {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","props","config","routes","api","serverURL","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","code","locale","ref","editDepth","t","submit","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","count","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","_jsx","buttonId","buttonStyle","className","onClick","size","type"],"sources":["../../../src/elements/SaveDraftButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SaveDraftButtonClientProps } from 'payload'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nexport function SaveDraftButton(props: SaveDraftButtonClientProps) {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug, setUnpublishedVersionCount, uploadStatus } =\n useDocumentInfo()\n\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n const operation = useOperation()\n\n const disabled = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${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\n setUnpublishedVersionCount((count) => count + 1)\n }, [\n submit,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n locale,\n id,\n disabled,\n setUnpublishedVersionCount,\n ])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (disabled) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={disabled}\n onClick={() => {\n return void saveDraft()\n }}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,WAAW,EAAEC,MAAM,QAAQ;AAE3C,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,SAASC,gBAAgBC,KAAiC;EAC/D,MAAM;IACJC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGZ,SAAA;EACJ,MAAM;IAAEa,EAAE;IAAEC,cAAc;IAAEC,UAAU;IAAEC,0BAA0B;IAAEC;EAAY,CAAE,GAChFhB,eAAA;EAEF,MAAMiB,QAAA,GAAWrB,eAAA;EACjB,MAAM;IAAEsB,IAAA,EAAMC;EAAM,CAAE,GAAGjB,SAAA;EACzB,MAAMkB,GAAA,GAAM1B,MAAA,CAA0B;EACtC,MAAM2B,SAAA,GAAYpB,YAAA;EAClB,MAAM;IAAEqB;EAAC,CAAE,GAAGlB,cAAA;EACd,MAAM;IAAEmB;EAAM,CAAE,GAAG5B,OAAA;EACnB,MAAM6B,SAAA,GAAYrB,YAAA;EAElB,MAAMsB,QAAA,GAAWD,SAAC,KAAc,YAAY,CAACP,QAAA,IAAaD,YAAA,KAAiB;EAE3E,MAAMU,SAAA,GAAYjC,WAAA,CAAY;IAC5B,IAAIgC,QAAA,EAAU;MACZ;IACF;IAEA,MAAME,MAAA,GAAS,WAAWR,MAAA,0CAAgD;IAC1E,IAAIS,MAAA;IACJ,IAAIC,MAAA,GAAS;IAEb,IAAIhB,cAAA,EAAgB;MAClBe,MAAA,GAAS,GAAGjB,SAAA,GAAYD,GAAA,IAAOG,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,KAAKe,MAAA,EAAQ;MAC7E,IAAIf,EAAA,EAAI;QACNiB,MAAA,GAAS;MACX;IACF;IAEA,IAAIf,UAAA,EAAY;MACdc,MAAA,GAAS,GAAGjB,SAAA,GAAYD,GAAA,YAAeI,UAAA,GAAaa,MAAA,EAAQ;IAC9D;IAEA,MAAMJ,MAAA,CAAO;MACXK,MAAA;MACAC,MAAA;MACAC,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;MACAC,cAAA,EAAgB;IAClB;IAEAjB,0BAAA,CAA4BkB,KAAA,IAAUA,KAAA,GAAQ;EAChD,GAAG,CACDV,MAAA,EACAV,cAAA,EACAC,UAAA,EACAH,SAAA,EACAD,GAAA,EACAS,MAAA,EACAP,EAAA,EACAa,QAAA,EACAV,0BAAA,CACD;EAEDjB,SAAA,CAAU;IAAEoC,UAAA,EAAY;IAAMb,SAAA;IAAWc,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3D,IAAIX,QAAA,EAAU;MACZ;IAAA;IAGFW,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IACjB,IAAIlB,GAAA,EAAKmB,OAAA,EAAS;MAChBnB,GAAA,CAAImB,OAAO,CAACC,KAAK;IACnB;EACF;EAEA,oBACEC,IAAA,CAAC5C,UAAA;IACC6C,QAAA,EAAS;IACTC,WAAA,EAAY;IACZC,SAAA,EAAWvC,SAAA;IACXoB,QAAA,EAAUA,QAAA;IACVoB,OAAA,EAASA,CAAA;MACP,OAAO,KAAKnB,SAAA;IACd;IACAN,GAAA,EAAKA,GAAA;IACL0B,IAAA,EAAK;IACLC,IAAA,EAAK;cAEJzB,CAAA,CAAE;;AAGT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EA+L1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","performAction","action","url","method","body","_status","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","performAction","action","url","method","body","_status","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderableTable.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/OrderableTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAyB,MAAM,SAAS,CAAA;AAEpF,OAAO,cAAc,CAAA;AAGrB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAYlD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"OrderableTable.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/OrderableTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAyB,MAAM,SAAS,CAAA;AAEpF,OAAO,cAAc,CAAA;AAGrB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAYlD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiL1C,CAAA"}
|
|
@@ -100,9 +100,6 @@ export const OrderableTable = ({
|
|
|
100
100
|
if (!response.ok) {
|
|
101
101
|
throw new Error('Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.');
|
|
102
102
|
}
|
|
103
|
-
if (response.status === 200 && (await response.json())['message'] === 'initial migration') {
|
|
104
|
-
throw new Error('You have enabled "orderable" on a collection with existing documents' + 'and this is the first time you have sorted documents. We have run an automatic migration ' + 'to add an initial order to the documents. Please refresh the page and try again.');
|
|
105
|
-
}
|
|
106
103
|
} catch (err) {
|
|
107
104
|
const error = err instanceof Error ? err.message : String(err);
|
|
108
105
|
// Rollback to previous state if the request fails
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderableTable.js","names":["DragOverlay","React","useEffect","useState","toast","useConfig","useListQuery","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","routes","api","body","JSON","stringify","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","className","Boolean","join","_jsxs","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(`${config.routes.api}/reorder`, {\n body: JSON.stringify(jsonBody),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OrderableTable.js","names":["DragOverlay","React","useEffect","useState","toast","useConfig","useListQuery","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","routes","api","body","JSON","stringify","headers","method","status","Error","ok","err","error","message","handleDragStart","rowIds","row","className","Boolean","join","_jsxs","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(`${config.routes.api}/reorder`, {\n body: JSON.stringify(jsonBody),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -201,7 +201,6 @@ export { RouteTransitionProvider, useRouteTransition, } from '../../providers/Ro
|
|
|
201
201
|
export { ConfigProvider, useConfig } from '../../providers/Config/index.js';
|
|
202
202
|
export { DocumentEventsProvider, useDocumentEvents } from '../../providers/DocumentEvents/index.js';
|
|
203
203
|
export { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
204
|
-
export { useDocumentTitle } from '../../providers/DocumentTitle/index.js';
|
|
205
204
|
export type { DocumentInfoContext, DocumentInfoProps } from '../../providers/DocumentInfo/index.js';
|
|
206
205
|
export { EditDepthProvider, useEditDepth } from '../../providers/EditDepth/index.js';
|
|
207
206
|
export { EntityVisibilityProvider, useEntityVisibility, } from '../../providers/EntityVisibility/index.js';
|