@payloadcms/ui 3.21.0 → 3.23.0-canary.597254e
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 +20 -10
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +3 -2
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +4 -0
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/DatePicker/types.d.ts +1 -1
- package/dist/elements/DatePicker/types.d.ts.map +1 -1
- package/dist/elements/DatePicker/types.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +0 -1
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +9 -6
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +17 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +52 -7
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +2 -1
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js +6 -2
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.scss +5 -0
- package/dist/elements/ReactSelect/types.d.ts +6 -1
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +9 -6
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.d.ts +5 -0
- package/dist/elements/TimezonePicker/index.d.ts.map +1 -0
- package/dist/elements/TimezonePicker/index.js +50 -0
- package/dist/elements/TimezonePicker/index.js.map +1 -0
- package/dist/elements/TimezonePicker/index.scss +51 -0
- package/dist/elements/TimezonePicker/types.d.ts +8 -0
- package/dist/elements/TimezonePicker/types.d.ts.map +1 -0
- package/dist/elements/TimezonePicker/types.js +2 -0
- package/dist/elements/TimezonePicker/types.js.map +1 -0
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +4 -3
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +6 -6
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +12 -10
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts +6 -0
- package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js +12 -0
- package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js.map +1 -0
- package/dist/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +1 -9
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +100 -88
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +6 -4
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/DateTime/index.d.ts +1 -2
- package/dist/fields/DateTime/index.d.ts.map +1 -1
- package/dist/fields/DateTime/index.js +73 -8
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +1 -0
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +41 -28
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +47 -1
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/forms/Form/context.d.ts +7 -1
- package/dist/forms/Form/context.d.ts.map +1 -1
- package/dist/forms/Form/context.js +9 -1
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/index.d.ts +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +73 -58
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +1 -0
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +7 -0
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +4 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +9 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +23 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +10 -1
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +5 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +3 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +38 -34
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useEffectEvent.d.ts +2 -0
- package/dist/hooks/useEffectEvent.d.ts.map +1 -0
- package/dist/hooks/useEffectEvent.js +57 -0
- package/dist/hooks/useEffectEvent.js.map +1 -0
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +11 -2
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +13 -0
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/formatDate.d.ts +2 -1
- package/dist/utilities/formatDate.d.ts.map +1 -1
- package/dist/utilities/formatDate.js +15 -3
- package/dist/utilities/formatDate.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.d.ts +2 -1
- package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
- package/dist/utilities/schedulePublishHandler.js +3 -1
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +1 -0
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +1 -0
- package/dist/views/Edit/index.js.map +1 -1
- package/package.json +5 -4
- package/dist/hooks/useIgnoredEffect.d.ts +0 -21
- package/dist/hooks/useIgnoredEffect.d.ts.map +0 -1
- package/dist/hooks/useIgnoredEffect.js +0 -41
- package/dist/hooks/useIgnoredEffect.js.map +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/* eslint-disable no-console */'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { TZDateMini as TZDate } from '@date-fns/tz/date/mini';
|
|
4
5
|
import { useModal } from '@faceless-ui/modal';
|
|
5
6
|
import { getTranslation } from '@payloadcms/translations';
|
|
7
|
+
import { transpose } from 'date-fns/transpose';
|
|
6
8
|
import * as qs from 'qs-esm';
|
|
7
|
-
import React from 'react';
|
|
9
|
+
import React, { useCallback, useMemo } from 'react';
|
|
8
10
|
import { toast } from 'sonner';
|
|
9
11
|
import { FieldLabel } from '../../../fields/FieldLabel/index.js';
|
|
10
12
|
import { Radio } from '../../../fields/RadioGroup/Radio/index.js';
|
|
@@ -22,8 +24,9 @@ import { Gutter } from '../../Gutter/index.js';
|
|
|
22
24
|
import { ReactSelect } from '../../ReactSelect/index.js';
|
|
23
25
|
import { ShimmerEffect } from '../../ShimmerEffect/index.js';
|
|
24
26
|
import { Table } from '../../Table/index.js';
|
|
25
|
-
import { buildUpcomingColumns } from './buildUpcomingColumns.js';
|
|
26
27
|
import './index.scss';
|
|
28
|
+
import { TimezonePicker } from '../../TimezonePicker/index.js';
|
|
29
|
+
import { buildUpcomingColumns } from './buildUpcomingColumns.js';
|
|
27
30
|
const baseClass = 'schedule-publish';
|
|
28
31
|
const defaultLocaleOption = {
|
|
29
32
|
label: 'All',
|
|
@@ -38,7 +41,11 @@ export const ScheduleDrawer = ({
|
|
|
38
41
|
const {
|
|
39
42
|
config: {
|
|
40
43
|
admin: {
|
|
41
|
-
dateFormat
|
|
44
|
+
dateFormat,
|
|
45
|
+
timezones: {
|
|
46
|
+
defaultTimezone,
|
|
47
|
+
supportedTimezones
|
|
48
|
+
}
|
|
42
49
|
},
|
|
43
50
|
localization,
|
|
44
51
|
routes: {
|
|
@@ -62,6 +69,7 @@ export const ScheduleDrawer = ({
|
|
|
62
69
|
} = useServerFunctions();
|
|
63
70
|
const [type, setType] = React.useState('publish');
|
|
64
71
|
const [date, setDate] = React.useState();
|
|
72
|
+
const [timezone, setTimezone] = React.useState(defaultTimezone);
|
|
65
73
|
const [locale, setLocale] = React.useState(defaultLocaleOption);
|
|
66
74
|
const [processing, setProcessing] = React.useState(false);
|
|
67
75
|
const modalTitle = t('general:schedulePublishFor', {
|
|
@@ -70,6 +78,8 @@ export const ScheduleDrawer = ({
|
|
|
70
78
|
const [upcoming, setUpcoming] = React.useState();
|
|
71
79
|
const [upcomingColumns, setUpcomingColumns] = React.useState();
|
|
72
80
|
const deleteHandlerRef = React.useRef(() => null);
|
|
81
|
+
// Get the user timezone so we can adjust the displayed value against it
|
|
82
|
+
const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
73
83
|
const localeOptions = React.useMemo(() => {
|
|
74
84
|
if (localization) {
|
|
75
85
|
const options = localization.locales.map(({
|
|
@@ -172,8 +182,10 @@ export const ScheduleDrawer = ({
|
|
|
172
182
|
value: String(id)
|
|
173
183
|
} : undefined,
|
|
174
184
|
global: globalSlug || undefined,
|
|
175
|
-
locale: publishSpecificLocale
|
|
185
|
+
locale: publishSpecificLocale,
|
|
186
|
+
timezone
|
|
176
187
|
});
|
|
188
|
+
setTimezone(defaultTimezone);
|
|
177
189
|
setDate(undefined);
|
|
178
190
|
toast.success(t('version:scheduledSuccessfully'));
|
|
179
191
|
void fetchUpcoming();
|
|
@@ -182,7 +194,35 @@ export const ScheduleDrawer = ({
|
|
|
182
194
|
toast.error(err_0.message);
|
|
183
195
|
}
|
|
184
196
|
setProcessing(false);
|
|
185
|
-
}, [date,
|
|
197
|
+
}, [date, locale, type, t, schedulePublish, collectionSlug, id, globalSlug, timezone, defaultTimezone, fetchUpcoming]);
|
|
198
|
+
const displayedValue = useMemo(() => {
|
|
199
|
+
if (timezone && userTimezone && date) {
|
|
200
|
+
// Create TZDate instances for the selected timezone and the user's timezone
|
|
201
|
+
// These instances allow us to transpose the date between timezones while keeping the same time value
|
|
202
|
+
const DateWithOriginalTz = TZDate.tz(timezone);
|
|
203
|
+
const DateWithUserTz = TZDate.tz(userTimezone);
|
|
204
|
+
const modifiedDate = new TZDate(date).withTimeZone(timezone);
|
|
205
|
+
// Transpose the date to the selected timezone
|
|
206
|
+
const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz);
|
|
207
|
+
// 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
|
|
208
|
+
const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz);
|
|
209
|
+
return dateWithUserTimezone.toISOString();
|
|
210
|
+
}
|
|
211
|
+
return date;
|
|
212
|
+
}, [timezone, date, userTimezone]);
|
|
213
|
+
const onChangeDate = useCallback(incomingDate => {
|
|
214
|
+
if (timezone && incomingDate) {
|
|
215
|
+
// Create TZDate instances for the selected timezone
|
|
216
|
+
const tzDateWithUTC = TZDate.tz(timezone);
|
|
217
|
+
// Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor
|
|
218
|
+
const dateToUserTz = new TZDate(incomingDate);
|
|
219
|
+
// Transpose the date to the selected timezone
|
|
220
|
+
const dateWithTimezone_0 = transpose(dateToUserTz, tzDateWithUTC);
|
|
221
|
+
setDate(dateWithTimezone_0 || null);
|
|
222
|
+
} else {
|
|
223
|
+
setDate(incomingDate || null);
|
|
224
|
+
}
|
|
225
|
+
}, [setDate, timezone]);
|
|
186
226
|
React.useEffect(() => {
|
|
187
227
|
if (!upcoming) {
|
|
188
228
|
const fetchInitialUpcoming = async () => {
|
|
@@ -241,11 +281,16 @@ export const ScheduleDrawer = ({
|
|
|
241
281
|
required: true
|
|
242
282
|
}), /*#__PURE__*/_jsx(DatePickerField, {
|
|
243
283
|
minDate: new Date(),
|
|
244
|
-
onChange: e =>
|
|
284
|
+
onChange: e => onChangeDate(e),
|
|
245
285
|
pickerAppearance: "dayAndTime",
|
|
246
286
|
readOnly: processing,
|
|
247
287
|
timeIntervals: 5,
|
|
248
|
-
value:
|
|
288
|
+
value: displayedValue
|
|
289
|
+
}), supportedTimezones.length > 0 && /*#__PURE__*/_jsx(TimezonePicker, {
|
|
290
|
+
id: `timezone-picker`,
|
|
291
|
+
onChange: setTimezone,
|
|
292
|
+
options: supportedTimezones,
|
|
293
|
+
selectedTimezone: timezone
|
|
249
294
|
}), /*#__PURE__*/_jsx("br", {}), localeOptions.length > 0 && type === 'publish' && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
250
295
|
children: [/*#__PURE__*/_jsx(FieldLabel, {
|
|
251
296
|
label: t('localization:localeToPublish')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","qs","React","toast","FieldLabel","Radio","useConfig","useDocumentInfo","useServerFunctions","useTranslation","requests","Banner","DrawerCloseButton","Button","DatePickerField","Drawer","Gutter","ReactSelect","ShimmerEffect","Table","buildUpcomingColumns","baseClass","defaultLocaleOption","label","value","ScheduleDrawer","slug","toggleModal","config","admin","dateFormat","localization","routes","api","serverURL","id","collectionSlug","globalSlug","title","i18n","t","schedulePublish","type","setType","useState","date","setDate","locale","setLocale","processing","setProcessing","modalTitle","upcoming","setUpcoming","upcomingColumns","setUpcomingColumns","deleteHandlerRef","useRef","localeOptions","useMemo","options","locales","map","code","unshift","fetchUpcoming","useCallback","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","fetchInitialUpcoming","_jsxs","className","gutter","Header","_jsx","onClick","required","isSelected","onChange","option","path","readOnly","minDate","e","pickerAppearance","timeIntervals","length","Fragment","buttonStyle","disabled","appearance","columns","data"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\n'use client'\n\nimport type { Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { Column } from '../../Table/index.js'\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 { Table } from '../../Table/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\nimport './index.scss'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({ slug }) => {\n const { toggleModal } = useModal()\n const {\n config: {\n admin: { dateFormat },\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>('publish')\n const [date, setDate] = React.useState<Date>()\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 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 t,\n }),\n )\n setUpcoming(docs)\n }, [collectionSlug, globalSlug, serverURL, api, dateFormat, id, t, i18n, localization])\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 })\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 }, [date, t, schedulePublish, type, locale, collectionSlug, id, globalSlug, fetchUpcoming])\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')} required />\n <DatePickerField\n minDate={new Date()}\n onChange={(e) => setDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n timeIntervals={5}\n value={date}\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 buttonStyle=\"primary\" disabled={processing} onClick={handleSave} type=\"button\">\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","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","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 { 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 { Column } from '../../Table/index.js'\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 { Table } from '../../Table/index.js'\nimport './index.scss'\nimport { TimezonePicker } from '../../TimezonePicker/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({ slug }) => {\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>('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 t,\n }),\n )\n setUpcoming(docs)\n }, [collectionSlug, globalSlug, serverURL, api, dateFormat, id, t, i18n, localization])\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 setTimezone(defaultTimezone)\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 defaultTimezone,\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')} required />\n <DatePickerField\n minDate={new Date()}\n onChange={(e) => onChangeDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n 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 buttonStyle=\"primary\" disabled={processing} onClick={handleSave} type=\"button\">\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":"AAAA,+BACA;;;AAIA,SAASA,UAAA,IAAcC,MAAM,QAAQ;AACrC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAC5C,SAASC,KAAK,QAAQ;AAKtB,SAASC,UAAU,QAAQ;AAC3B,SAASC,KAAK,QAAQ;AACtB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,MAAM,QAAQ;AACvB,SAASC,eAAe,QAAQ;AAChC,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAC9B,SAASC,KAAK,QAAQ;AACtB,OAAO;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AAErC,MAAMC,SAAA,GAAY;AAMlB,MAAMC,mBAAA,GAAsB;EAC1BC,KAAA,EAAO;EACPC,KAAA,EAAO;AACT;AAEA,OAAO,MAAMC,cAAA,GAAkCA,CAAC;EAAEC;AAAI,CAAE;EACtD,MAAM;IAAEC;EAAW,CAAE,GAAGhC,QAAA;EACxB,MAAM;IACJiC,MAAA,EAAQ;MACNC,KAAA,EAAO;QACLC,UAAU;QACVC,SAAA,EAAW;UAAEC,eAAe;UAAEC;QAAkB;MAAE,CACnD;MACDC,YAAY;MACZC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGhC,SAAA;EACJ,MAAM;IAAEiC,EAAE;IAAEC,cAAc;IAAEC,UAAU;IAAEC;EAAK,CAAE,GAAGnC,eAAA;EAClD,MAAM;IAAEoC,IAAI;IAAEC;EAAC,CAAE,GAAGnC,cAAA;EACpB,MAAM;IAAEoC;EAAe,CAAE,GAAGrC,kBAAA;EAC5B,MAAM,CAACsC,IAAA,EAAMC,OAAA,CAAQ,GAAG/C,KAAA,CAAMgD,QAAQ,CAAc;EACpD,MAAM,CAACC,IAAA,EAAMC,OAAA,CAAQ,GAAGlD,KAAA,CAAMgD,QAAQ;EACtC,MAAM,CAACG,QAAA,EAAUC,WAAA,CAAY,GAAGpD,KAAA,CAAMgD,QAAQ,CAASf,eAAA;EACvD,MAAM,CAACoB,MAAA,EAAQC,SAAA,CAAU,GAAGtD,KAAA,CAAMgD,QAAQ,CAAmCzB,mBAAA;EAC7E,MAAM,CAACgC,UAAA,EAAYC,aAAA,CAAc,GAAGxD,KAAA,CAAMgD,QAAQ,CAAC;EACnD,MAAMS,UAAA,GAAab,CAAA,CAAE,8BAA8B;IAAEF;EAAM;EAC3D,MAAM,CAACgB,QAAA,EAAUC,WAAA,CAAY,GAAG3D,KAAA,CAAMgD,QAAQ;EAC9C,MAAM,CAACY,eAAA,EAAiBC,kBAAA,CAAmB,GAAG7D,KAAA,CAAMgD,QAAQ;EAC5D,MAAMc,gBAAA,GAAmB9D,KAAA,CAAM+D,MAAM,CAAkD,MAAM;EAE7F;EACA,MAAMC,YAAA,GAAeC,IAAA,CAAKC,cAAc,GAAGC,eAAe,GAAGC,QAAQ;EAErE,MAAMC,aAAA,GAAgBrE,KAAA,CAAME,OAAO,CAAC;IAClC,IAAIiC,YAAA,EAAc;MAChB,MAAMmC,OAAA,GAAUnC,YAAA,CAAaoC,OAAO,CAACC,GAAG,CAAC,CAAC;QAAEC,IAAI;QAAEjD;MAAK,CAAE,MAAM;QAC7DA,KAAA,EAAO3B,cAAA,CAAe2B,KAAA,EAAOmB,IAAA;QAC7BlB,KAAA,EAAOgD;MACT;MAEAH,OAAA,CAAQI,OAAO,CAACnD,mBAAA;MAEhB,OAAO+C,OAAA;IACT;IAEA,OAAO,EAAE;EACX,GAAG,CAACnC,YAAA,EAAcQ,IAAA,CAAK;EAEvB,MAAMgC,aAAA,GAAgB3E,KAAA,CAAMC,WAAW,CAAC;IACtC,MAAM2E,KAAA,GAAwC;MAC5CC,IAAA,EAAM;MACNC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEC,QAAA,EAAU;YACRC,MAAA,EAAQ;UACV;QACF,GACA;UACEC,SAAA,EAAW;YACTC,YAAA,EAAc,IAAIC,IAAA;UACpB;QACF;MAEJ;IACF;IAEA,IAAI5C,cAAA,EAAgB;MAClBoC,KAAA,CAAME,KAAK,CAACC,GAAG,CAACM,IAAI,CAAC;QACnB,mBAAmB;UACjBJ,MAAA,EAAQK,MAAA,CAAO/C,EAAA;QACjB;MACF;MACAqC,KAAA,CAAME,KAAK,CAACC,GAAG,CAACM,IAAI,CAAC;QACnB,wBAAwB;UACtBJ,MAAA,EAAQzC;QACV;MACF;IACF;IAEA,IAAIC,UAAA,EAAY;MACdmC,KAAA,CAAME,KAAK,CAACC,GAAG,CAACM,IAAI,CAAC;QACnB,gBAAgB;UACdJ,MAAA,EAAQxC;QACV;MACF;IACF;IAEA,MAAM;MAAE8C;IAAI,CAAE,GAAG,MAAM7E,QAAA,CACpB8E,IAAI,CAAC,GAAGlD,SAAA,GAAYD,GAAA,eAAkB,EAAE;MACvCoD,IAAA,EAAM1F,EAAA,CAAG2F,SAAS,CAACd,KAAA;MACnBe,OAAA,EAAS;QACP,mBAAmBhD,IAAA,CAAKiD,QAAQ;QAChC,gBAAgB;QAChB,0BAA0B;MAC5B;IACF,GACCC,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI;IAEzBlC,kBAAA,CACExC,oBAAA,CAAqB;MACnBU,UAAA;MACA;MACAiE,aAAA,EAAelC,gBAAA,CAAiBmC,OAAO;MACvCV,IAAA;MACA5C,IAAA;MACAR,YAAA;MACAS;IACF;IAEFe,WAAA,CAAY4B,IAAA;EACd,GAAG,CAAC/C,cAAA,EAAgBC,UAAA,EAAYH,SAAA,EAAWD,GAAA,EAAKN,UAAA,EAAYQ,EAAA,EAAIK,CAAA,EAAGD,IAAA,EAAMR,YAAA,CAAa;EAEtF,MAAM6D,aAAA,GAAgBhG,KAAA,CAAMC,WAAW,CACrC,MAAOsC,IAAA;IACL,IAAI;MACF,MAAMM,eAAA,CAAgB;QACpBqD,QAAA,EAAU3D;MACZ;MACA,MAAMoC,aAAA;MACNxE,KAAA,CAAMgG,OAAO,CAACvD,CAAA,CAAE;IAClB,EAAE,OAAOwD,GAAA,EAAK;MACZC,OAAA,CAAQC,KAAK,CAACF,GAAA;MACdjG,KAAA,CAAMmG,KAAK,CAACF,GAAA,CAAIG,OAAO;IACzB;EACF,GACA,CAAC5B,aAAA,EAAe9B,eAAA,EAAiBD,CAAA,CAAE;EAGrC5C,KAAA,CAAMwG,SAAS,CAAC;IACd1C,gBAAA,CAAiBmC,OAAO,GAAGD,aAAA;EAC7B,GAAG,CAACA,aAAA,CAAc;EAElB,MAAMS,UAAA,GAAazG,KAAA,CAAMC,WAAW,CAAC;IACnC,IAAI,CAACgD,IAAA,EAAM;MACT,OAAO9C,KAAA,CAAMmG,KAAK,CAAC1D,CAAA,CAAE;IACvB;IAEAY,aAAA,CAAc;IAEd,IAAIkD,qBAAA;IAEJ,IAAI,OAAOrD,MAAA,KAAW,YAAYA,MAAA,CAAO5B,KAAK,KAAK,SAASqB,IAAA,KAAS,WAAW;MAC9E4D,qBAAA,GAAwBrD,MAAA,CAAO5B,KAAK;IACtC;IAEA,IAAI;MACF,MAAMoB,eAAA,CAAgB;QACpBC,IAAA;QACAG,IAAA;QACA0D,GAAA,EAAKnE,cAAA,GACD;UACEoE,UAAA,EAAYpE,cAAA;UACZf,KAAA,EAAO6D,MAAA,CAAO/C,EAAA;QAChB,IACAsE,SAAA;QACJC,MAAA,EAAQrE,UAAA,IAAcoE,SAAA;QACtBxD,MAAA,EAAQqD,qBAAA;QACRvD;MACF;MAEAC,WAAA,CAAYnB,eAAA;MACZiB,OAAA,CAAQ2D,SAAA;MACR1G,KAAA,CAAMgG,OAAO,CAACvD,CAAA,CAAE;MAChB,KAAK+B,aAAA;IACP,EAAE,OAAOyB,KAAA,EAAK;MACZC,OAAA,CAAQC,KAAK,CAACF,KAAA;MACdjG,KAAA,CAAMmG,KAAK,CAACF,KAAA,CAAIG,OAAO;IACzB;IAEA/C,aAAA,CAAc;EAChB,GAAG,CACDP,IAAA,EACAI,MAAA,EACAP,IAAA,EACAF,CAAA,EACAC,eAAA,EACAL,cAAA,EACAD,EAAA,EACAE,UAAA,EACAU,QAAA,EACAlB,eAAA,EACA0C,aAAA,CACD;EAED,MAAMoC,cAAA,GAAiB7G,OAAA,CAAQ;IAC7B,IAAIiD,QAAA,IAAYa,YAAA,IAAgBf,IAAA,EAAM;MACpC;MACA;MACA,MAAM+D,kBAAA,GAAqBrH,MAAA,CAAOsH,EAAE,CAAC9D,QAAA;MACrC,MAAM+D,cAAA,GAAiBvH,MAAA,CAAOsH,EAAE,CAACjD,YAAA;MAEjC,MAAMmD,YAAA,GAAe,IAAIxH,MAAA,CAAOsD,IAAA,EAAMmE,YAAY,CAACjE,QAAA;MAEnD;MACA,MAAMkE,gBAAA,GAAmBvH,SAAA,CAAUqH,YAAA,EAAcH,kBAAA;MAEjD;MACA,MAAMM,oBAAA,GAAuBxH,SAAA,CAAUuH,gBAAA,EAAkBH,cAAA;MAEzD,OAAOI,oBAAA,CAAqBC,WAAW;IACzC;IAEA,OAAOtE,IAAA;EACT,GAAG,CAACE,QAAA,EAAUF,IAAA,EAAMe,YAAA,CAAa;EAEjC,MAAMwD,YAAA,GAAevH,WAAA,CAClBwH,YAAA;IACC,IAAItE,QAAA,IAAYsE,YAAA,EAAc;MAC5B;MACA,MAAMC,aAAA,GAAgB/H,MAAA,CAAOsH,EAAE,CAAC9D,QAAA;MAEhC;MACA,MAAMwE,YAAA,GAAe,IAAIhI,MAAA,CAAO8H,YAAA;MAEhC;MACA,MAAMJ,kBAAA,GAAmBvH,SAAA,CAAU6H,YAAA,EAAcD,aAAA;MAEjDxE,OAAA,CAAQmE,kBAAA,IAAoB;IAC9B,OAAO;MACLnE,OAAA,CAAQuE,YAAA,IAAgB;IAC1B;EACF,GACA,CAACvE,OAAA,EAASC,QAAA,CAAS;EAGrBnD,KAAA,CAAMwG,SAAS,CAAC;IACd,IAAI,CAAC9C,QAAA,EAAU;MACb,MAAMkE,oBAAA,GAAuB,MAAAA,CAAA;QAC3B,MAAMjD,aAAA;MACR;MAEA,KAAKiD,oBAAA;IACP;EACF,GAAG,CAAClE,QAAA,EAAUiB,aAAA,CAAc;EAE5B,oBACEkD,KAAA,CAAC9G,MAAA;IACC+G,SAAA,EAAWxG,SAAA;IACXyG,MAAA,EAAQ;IACRC,MAAA,eACEH,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGxG,SAAA,iBAA0B;8BAC3C2G,IAAA,CAAC;QAAGvF,KAAA,EAAOe,UAAA;kBAAaA;uBACxBwE,IAAA,CAACrH,iBAAA;QAAkBsH,OAAA,EAASA,CAAA,KAAMtG,WAAA,CAAYD,IAAA;;;IAGlDA,IAAA,EAAMA,IAAA;4BAENkG,KAAA,CAAC7G,MAAA;MAAO8G,SAAA,EAAW,GAAGxG,SAAA,aAAsB;8BAC1C2G,IAAA,CAAC7H,UAAA;QAAWoB,KAAA,EAAOoB,CAAA,CAAE;QAAiBuF,QAAQ;uBAC9CN,KAAA,CAAC;QAAGC,SAAA,EAAW,GAAGxG,SAAA,QAAiB;gCACjC2G,IAAA,CAAC;oBACC,aAAAA,IAAA,CAAC5H,KAAA;YACCkC,EAAA,EAAI,GAAGZ,IAAA,OAAW;YAClByG,UAAA,EAAYtF,IAAA,KAAS;YACrBuF,QAAA,EAAUA,CAAA,KAAMtF,OAAA,CAAQ;YACxBuF,MAAA,EAAQ;cAAE9G,KAAA,EAAOoB,CAAA,CAAE;cAAoBnB,KAAA,EAAO;YAAU;YACxD8G,IAAA,EAAM,GAAG5G,IAAA,OAAW;YACpB6G,QAAA,EAAUjF;;yBAGd0E,IAAA,CAAC;oBACC,aAAAA,IAAA,CAAC5H,KAAA;YACCkC,EAAA,EAAI,GAAGZ,IAAA,OAAW;YAClByG,UAAA,EAAYtF,IAAA,KAAS;YACrBuF,QAAA,EAAUA,CAAA,KAAMtF,OAAA,CAAQ;YACxBuF,MAAA,EAAQ;cAAE9G,KAAA,EAAOoB,CAAA,CAAE;cAAsBnB,KAAA,EAAO;YAAY;YAC5D8G,IAAA,EAAM,GAAG5G,IAAA,OAAW;YACpB6G,QAAA,EAAUjF;;;uBAIhB0E,IAAA,CAAC,W,aACDA,IAAA,CAAC7H,UAAA;QAAWoB,KAAA,EAAOoB,CAAA,CAAE;QAAiBuF,QAAQ;uBAC9CF,IAAA,CAACnH,eAAA;QACC2H,OAAA,EAAS,IAAIrD,IAAA;QACbiD,QAAA,EAAWK,CAAA,IAAMlB,YAAA,CAAakB,CAAA;QAC9BC,gBAAA,EAAiB;QACjBH,QAAA,EAAUjF,UAAA;QACVqF,aAAA,EAAe;QACfnH,KAAA,EAAOsF;UAER7E,kBAAA,CAAmB2G,MAAM,GAAG,kBAC3BZ,IAAA,CAAC7G,cAAA;QACCmB,EAAA,EAAI,iBAAiB;QACrB8F,QAAA,EAAUjF,WAAA;QACVkB,OAAA,EAASpC,kBAAA;QACT4G,gBAAA,EAAkB3F;uBAGtB8E,IAAA,CAAC,WACA5D,aAAA,CAAcwE,MAAM,GAAG,KAAK/F,IAAA,KAAS,0BACpC+E,KAAA,CAAC7H,KAAA,CAAM+I,QAAQ;gCACbd,IAAA,CAAC7H,UAAA;UAAWoB,KAAA,EAAOoB,CAAA,CAAE;yBACrBqF,IAAA,CAAChH,WAAA;UACCoH,QAAA,EAAWK,GAAA,IAAMpF,SAAA,CAAUoF,GAAA;UAC3BpE,OAAA,EAASD,aAAA;UACT5C,KAAA,EAAO4B;yBAET4E,IAAA,CAAC;uBAGLJ,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGxG,SAAA,WAAoB;gCACrC2G,IAAA,CAACpH,MAAA;UAAOmI,WAAA,EAAY;UAAUC,QAAA,EAAU1F,UAAA;UAAY2E,OAAA,EAASzB,UAAA;UAAY3D,IAAA,EAAK;oBAC3EF,CAAA,CAAE;YAEJW,UAAA,gBAAa0E,IAAA,CAAC;oBAAMrF,CAAA,CAAE;aAA4B;;qBAGvDiF,KAAA,CAAC7G,MAAA;MAAO8G,SAAA,EAAW,GAAGxG,SAAA,YAAqB;8BACzC2G,IAAA,CAAC;kBAAIrF,CAAA,CAAE;UACN,CAACc,QAAA,iBAAYuE,IAAA,CAAC/G,aAAA,OACdwC,QAAA,EAAUmF,MAAA,KAAW,kBACpBZ,IAAA,CAACtH,MAAA;QAAOmC,IAAA,EAAK;kBAAQF,CAAA,CAAE;UAExBc,QAAA,EAAUmF,MAAA,GAAS,kBAClBZ,IAAA,CAAC9G,KAAA;QAAM+H,UAAA,EAAW;QAAYC,OAAA,EAASvF,eAAA;QAAiBwF,IAAA,EAAM1F;;;;AAKxE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,WAAW,CAAA;KAClB,CAAA;IACD,SAAS,EAAE,IAAI,CAAA;CAChB,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,WAAW,CAAA;KAClB,CAAA;IACD,SAAS,EAAE,IAAI,CAAA;CAChB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"sourcesContent":["export type PublishType = 'publish' | 'unpublish'\n\nexport type UpcomingEvent = {\n id: number | string\n input: {\n locale?: string\n type: PublishType\n }\n waitUntil: Date\n}\n"],"mappings":"AAEA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"sourcesContent":["export type PublishType = 'publish' | 'unpublish'\n\nexport type UpcomingEvent = {\n id: number | string\n input: {\n locale?: string\n timezone?: string\n type: PublishType\n }\n waitUntil: Date\n}\n"],"mappings":"AAEA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuNtD,CAAA"}
|
|
@@ -310,6 +310,7 @@ export const PublishButton = t0 => {
|
|
|
310
310
|
children: [_jsx(FormSubmit, {
|
|
311
311
|
buttonId: "action-save",
|
|
312
312
|
disabled: !canPublish,
|
|
313
|
+
enableSubMenu: canSchedulePublish,
|
|
313
314
|
onClick: defaultPublish,
|
|
314
315
|
size: "medium",
|
|
315
316
|
SubMenuPopupContent: localization || canSchedulePublish ? t16 => {
|
|
@@ -322,7 +323,7 @@ export const PublishButton = t0 => {
|
|
|
322
323
|
onClick: () => [toggleModal(drawerSlug), close()],
|
|
323
324
|
children: t("version:schedulePublish")
|
|
324
325
|
})
|
|
325
|
-
}, "schedule-publish"), localization && _jsx(PopupList.ButtonGroup, {
|
|
326
|
+
}, "schedule-publish"), localization && canPublish && _jsx(PopupList.ButtonGroup, {
|
|
326
327
|
children: _jsx(PopupList.Button, {
|
|
327
328
|
onClick: secondaryPublish,
|
|
328
329
|
children: secondaryLabel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","t0","$","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","t1","serverURL","api","t","t2","t3","bb0","t4","undefined","entityConfig","hasNewerVersions","canPublish","scheduledPublishEnabled","versions","drafts","schedulePublish","canSchedulePublish","Boolean","operation","disabled","search","action","method","overrides","_status","skipValidation","saveDraft","t5","Symbol","for","t6","cmdCtrlKey","keyCodes","t7","e","preventDefault","stopPropagation","autosave","t8","publish","t9","locale","params","stringify","publishSpecificLocale","action_0","publishAll","defaultLocalePublishOption","t10","locales","find","locale_0","activeLocale","activeLocaleLabel","t11","defaultPublish","t12","defaultLabel","t13","secondaryPublish","t14","t15","bb1","secondaryLabel","_jsxs","Fragment","children","_jsx","buttonId","onClick","size","SubMenuPopupContent","t16","close","ButtonGroup","Button","type","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled && hasPublishPermission && (globalSlug || (collectionSlug && id)),\n )\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n const publishAll =\n !localization || (localization && localization.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code)\n const defaultLabel = publishAll ? label : t('version:publishIn', { locale: activeLocaleLabel })\n\n const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish\n const secondaryLabel = publishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={defaultPublish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button onClick={() => [toggleModal(drawerSlug), close()]}>\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization && (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={secondaryPublish}>\n {secondaryLabel}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {localization ? defaultLabel : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && <ScheduleDrawer slug={drawerSlug} />}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","t0","$","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","t1","serverURL","api","t","t2","t3","bb0","t4","undefined","entityConfig","hasNewerVersions","canPublish","scheduledPublishEnabled","versions","drafts","schedulePublish","canSchedulePublish","Boolean","operation","disabled","search","action","method","overrides","_status","skipValidation","saveDraft","t5","Symbol","for","t6","cmdCtrlKey","keyCodes","t7","e","preventDefault","stopPropagation","autosave","t8","publish","t9","locale","params","stringify","publishSpecificLocale","action_0","publishAll","defaultLocalePublishOption","t10","locales","find","locale_0","activeLocale","activeLocaleLabel","t11","defaultPublish","t12","defaultLabel","t13","secondaryPublish","t14","t15","bb1","secondaryLabel","_jsxs","Fragment","children","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","t16","close","ButtonGroup","Button","type","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled && hasPublishPermission && (globalSlug || (collectionSlug && id)),\n )\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n const publishAll =\n !localization || (localization && localization.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code)\n const defaultLabel = publishAll ? label : t('version:publishIn', { locale: activeLocaleLabel })\n\n const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish\n const secondaryLabel = publishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={defaultPublish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button onClick={() => [toggleModal(drawerSlug), close()]}>\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization && canPublish && (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={secondaryPublish}>\n {secondaryLabel}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {localization ? defaultLabel : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && <ScheduleDrawer slug={drawerSlug} />}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValueLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValueLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAkB7D,CAAA"}
|
|
@@ -8,18 +8,22 @@ const baseClass = 'multi-value-label';
|
|
|
8
8
|
export const MultiValueLabel = props => {
|
|
9
9
|
// @ts-expect-error-next-line// TODO Fix this - moduleResolution 16 breaks our declare module
|
|
10
10
|
const {
|
|
11
|
+
data,
|
|
11
12
|
selectProps: {
|
|
12
13
|
customProps: {
|
|
13
|
-
draggableProps
|
|
14
|
+
draggableProps,
|
|
15
|
+
editableProps
|
|
14
16
|
} = {}
|
|
15
17
|
} = {}
|
|
16
18
|
} = props;
|
|
19
|
+
const className = `${baseClass}__text`;
|
|
17
20
|
return /*#__PURE__*/_jsx("div", {
|
|
18
21
|
className: baseClass,
|
|
19
22
|
children: /*#__PURE__*/_jsx(SelectComponents.MultiValueLabel, {
|
|
20
23
|
...props,
|
|
21
24
|
innerProps: {
|
|
22
|
-
className
|
|
25
|
+
className,
|
|
26
|
+
...(editableProps && editableProps(data, className, props.selectProps) || {}),
|
|
23
27
|
...(draggableProps || {})
|
|
24
28
|
}
|
|
25
29
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","components","SelectComponents","baseClass","MultiValueLabel","props","selectProps","customProps","draggableProps","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","components","SelectComponents","baseClass","MultiValueLabel","props","data","selectProps","customProps","draggableProps","editableProps","className","_jsx","innerProps"],"sources":["../../../../src/elements/ReactSelect/MultiValueLabel/index.tsx"],"sourcesContent":["'use client'\nimport type { MultiValueProps } from 'react-select'\n\nimport React from 'react'\nimport { components as SelectComponents } from 'react-select'\n\nimport type { Option } from '../types.js'\n\nimport './index.scss'\n\nconst baseClass = 'multi-value-label'\n\nexport const MultiValueLabel: React.FC<MultiValueProps<Option>> = (props) => {\n // @ts-expect-error-next-line// TODO Fix this - moduleResolution 16 breaks our declare module\n const { data, selectProps: { customProps: { draggableProps, editableProps } = {} } = {} } = props\n\n const className = `${baseClass}__text`\n\n return (\n <div className={baseClass}>\n <SelectComponents.MultiValueLabel\n {...props}\n innerProps={{\n className,\n ...((editableProps && editableProps(data, className, props.selectProps)) || {}),\n ...(draggableProps || {}),\n }}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAClB,SAASC,UAAA,IAAcC,gBAAgB,QAAQ;AAI/C,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,eAAA,GAAsDC,KAAA;EACjE;EACA,MAAM;IAAEC,IAAI;IAAEC,WAAA,EAAa;MAAEC,WAAA,EAAa;QAAEC,cAAc;QAAEC;MAAa,CAAE,GAAG,CAAC;IAAC,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGL,KAAA;EAE5F,MAAMM,SAAA,GAAY,GAAGR,SAAA,QAAiB;EAEtC,oBACES,IAAA,CAAC;IAAID,SAAA,EAAWR,SAAA;cACd,aAAAS,IAAA,CAACV,gBAAA,CAAiBE,eAAe;MAC9B,GAAGC,KAAK;MACTQ,UAAA,EAAY;QACVF,SAAA;QACA,IAAID,aAAC,IAAiBA,aAAA,CAAcJ,IAAA,EAAMK,SAAA,EAAWN,KAAA,CAAME,WAAW,KAAM,CAAC,CAAC;QAC9E,IAAIE,cAAA,IAAkB,CAAC,CAAC;MAC1B;;;AAIR","ignoreList":[]}
|
|
@@ -6,8 +6,12 @@ type CustomSelectProps = {
|
|
|
6
6
|
DocumentDrawerToggler?: ReturnType<UseDocumentDrawer>[1];
|
|
7
7
|
draggableProps?: any;
|
|
8
8
|
droppableRef?: React.RefObject<HTMLDivElement | null>;
|
|
9
|
+
editableProps?: (data: Option<{
|
|
10
|
+
label: string;
|
|
11
|
+
value: string;
|
|
12
|
+
}>, className: string, selectProps: ReactSelectStateManagerProps) => any;
|
|
9
13
|
onDelete?: DocumentDrawerProps['onDelete'];
|
|
10
|
-
onDocumentDrawerOpen
|
|
14
|
+
onDocumentDrawerOpen?: (args: {
|
|
11
15
|
collectionSlug: string;
|
|
12
16
|
hasReadPermission: boolean;
|
|
13
17
|
id: number | string;
|
|
@@ -60,6 +64,7 @@ export type ReactSelectAdapterProps = {
|
|
|
60
64
|
isOptionSelected?: any;
|
|
61
65
|
isSearchable?: boolean;
|
|
62
66
|
isSortable?: boolean;
|
|
67
|
+
menuIsOpen?: boolean;
|
|
63
68
|
noOptionsMessage?: (obj: {
|
|
64
69
|
inputValue: string;
|
|
65
70
|
}) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAEjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAExF,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,qBAAqB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACrD,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC1C,oBAAoB,EAAE,CAAC,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps, UseDocumentDrawer } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n DocumentDrawerToggler?: ReturnType<UseDocumentDrawer>[1]\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n onDelete?: DocumentDrawerProps['onDelete']\n onDocumentDrawerOpen
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps, UseDocumentDrawer } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n DocumentDrawerToggler?: ReturnType<UseDocumentDrawer>[1]\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n editableProps?: (\n data: Option<{ label: string; value: string }>,\n className: string,\n selectProps: ReactSelectStateManagerProps,\n ) => any\n onDelete?: DocumentDrawerProps['onDelete']\n onDocumentDrawerOpen?: (args: {\n collectionSlug: string\n hasReadPermission: boolean\n id: number | string\n }) => void\n onDuplicate?: DocumentDrawerProps['onSave']\n onSave?: DocumentDrawerProps['onSave']\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: CustomSelectProps & ReactSelectStateManagerProps<Option, IsMulti, Group>\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n {\n allowEdit,\n data,\n label,\n value,\n }: { allowEdit: boolean; data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n menuIsOpen?: boolean\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"mappings":"AA2DA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAa,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAG/E,OAAO,KAAqD,MAAM,OAAO,CAAA;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAerE,OAAO,cAAc,CAAA;AASrB,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,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAwPvE,CAAA"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
|
-
import React, { Fragment, useCallback, useState } from 'react';
|
|
5
|
+
import React, { Fragment, useCallback, useEffect, useState } from 'react';
|
|
6
6
|
import { Button } from '../../elements/Button/index.js';
|
|
7
7
|
import { Pill } from '../../elements/Pill/index.js';
|
|
8
|
-
import {
|
|
8
|
+
import { useEffectEvent } from '../../hooks/useEffectEvent.js';
|
|
9
9
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
10
10
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
11
11
|
import { useConfig } from '../../providers/Config/index.js';
|
|
@@ -15,10 +15,10 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
15
15
|
import { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js';
|
|
16
16
|
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
17
17
|
import { ColumnSelector } from '../ColumnSelector/index.js';
|
|
18
|
+
import './index.scss';
|
|
18
19
|
import { useDocumentDrawer } from '../DocumentDrawer/index.js';
|
|
19
20
|
import { RelationshipProvider } from '../Table/RelationshipProvider/index.js';
|
|
20
21
|
import { TableColumnsProvider } from '../TableColumns/index.js';
|
|
21
|
-
import './index.scss';
|
|
22
22
|
import { DrawerLink } from './cells/DrawerLink/index.js';
|
|
23
23
|
import { RelationshipTablePagination } from './Pagination.js';
|
|
24
24
|
const baseClass = 'relationship-table';
|
|
@@ -107,11 +107,14 @@ export const RelationshipTable = props => {
|
|
|
107
107
|
setColumnState(newColumnState);
|
|
108
108
|
setIsLoadingTable(false);
|
|
109
109
|
}, [field.defaultLimit, field.defaultSort, field.admin.defaultColumns, collectionConfig.admin.pagination.defaultLimit, collectionConfig.defaultSort, query, filterOptions, getTableState, relationTo]);
|
|
110
|
-
|
|
111
|
-
if (!
|
|
110
|
+
const handleTableRender = useEffectEvent((query_0, disableTable_0) => {
|
|
111
|
+
if (!disableTable_0 && (!Table || query_0)) {
|
|
112
112
|
void renderTable();
|
|
113
113
|
}
|
|
114
|
-
}
|
|
114
|
+
});
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
handleTableRender(query, disableTable);
|
|
117
|
+
}, [query, disableTable]);
|
|
115
118
|
const [DocumentDrawer, DocumentDrawerToggler, {
|
|
116
119
|
closeDrawer,
|
|
117
120
|
openDrawer
|