@payloadcms/ui 3.22.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.
Files changed (54) hide show
  1. package/dist/elements/DatePicker/types.d.ts +1 -1
  2. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  3. package/dist/elements/DatePicker/types.js.map +1 -1
  4. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  5. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +17 -1
  6. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  7. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  8. package/dist/elements/PublishButton/ScheduleDrawer/index.js +52 -7
  9. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  10. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -0
  11. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  12. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  13. package/dist/elements/TimezonePicker/index.d.ts +5 -0
  14. package/dist/elements/TimezonePicker/index.d.ts.map +1 -0
  15. package/dist/elements/TimezonePicker/index.js +50 -0
  16. package/dist/elements/TimezonePicker/index.js.map +1 -0
  17. package/dist/elements/TimezonePicker/index.scss +51 -0
  18. package/dist/elements/TimezonePicker/types.d.ts +8 -0
  19. package/dist/elements/TimezonePicker/types.d.ts.map +1 -0
  20. package/dist/elements/TimezonePicker/types.js +2 -0
  21. package/dist/elements/TimezonePicker/types.js.map +1 -0
  22. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts +6 -0
  23. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts.map +1 -0
  24. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js +12 -0
  25. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js.map +1 -0
  26. package/dist/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
  27. package/dist/elements/WhereBuilder/Condition/Select/index.js +1 -9
  28. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  29. package/dist/exports/client/index.d.ts +2 -0
  30. package/dist/exports/client/index.d.ts.map +1 -1
  31. package/dist/exports/client/index.js +23 -23
  32. package/dist/exports/client/index.js.map +4 -4
  33. package/dist/exports/shared/index.js +2 -2
  34. package/dist/exports/shared/index.js.map +4 -4
  35. package/dist/fields/DateTime/index.d.ts +1 -2
  36. package/dist/fields/DateTime/index.d.ts.map +1 -1
  37. package/dist/fields/DateTime/index.js +73 -8
  38. package/dist/fields/DateTime/index.js.map +1 -1
  39. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  40. package/dist/forms/Form/mergeServerFormState.js +1 -0
  41. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  42. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  43. package/dist/providers/DocumentInfo/index.js +11 -2
  44. package/dist/providers/DocumentInfo/index.js.map +1 -1
  45. package/dist/styles.css +1 -1
  46. package/dist/utilities/formatDate.d.ts +2 -1
  47. package/dist/utilities/formatDate.d.ts.map +1 -1
  48. package/dist/utilities/formatDate.js +15 -3
  49. package/dist/utilities/formatDate.js.map +1 -1
  50. package/dist/utilities/schedulePublishHandler.d.ts +2 -1
  51. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  52. package/dist/utilities/schedulePublishHandler.js +3 -1
  53. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  54. package/package.json +6 -5
@@ -3,6 +3,6 @@ export type Props = {
3
3
  onChange?: (val: Date) => void;
4
4
  placeholder?: string;
5
5
  readOnly?: boolean;
6
- value?: Date;
6
+ value?: Date | string;
7
7
  } & DayPickerProps & SharedProps & TimePickerProps;
8
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE3E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,IAAI,CAAA;CACb,GAAG,cAAc,GAChB,WAAW,GACX,eAAe,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE3E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CACtB,GAAG,cAAc,GAChB,WAAW,GACX,eAAe,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DatePicker/types.ts"],"sourcesContent":["import type { DayPickerProps, SharedProps, TimePickerProps } from 'payload'\n\nexport type Props = {\n onChange?: (val: Date) => void\n placeholder?: string\n readOnly?: boolean\n value?: Date\n} & DayPickerProps &\n SharedProps &\n TimePickerProps\n"],"mappings":"AAEA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DatePicker/types.ts"],"sourcesContent":["import type { DayPickerProps, SharedProps, TimePickerProps } from 'payload'\n\nexport type Props = {\n onChange?: (val: Date) => void\n placeholder?: string\n readOnly?: boolean\n value?: Date | string\n} & DayPickerProps &\n SharedProps &\n TimePickerProps\n"],"mappings":"AAEA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildUpcomingColumns.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM/C,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC5C,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;AAED,eAAO,MAAM,oBAAoB,gEAO9B,IAAI,KAAG,MAAM,EAmFf,CAAA"}
1
+ {"version":3,"file":"buildUpcomingColumns.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM/C,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC5C,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;AAED,eAAO,MAAM,oBAAoB,gEAO9B,IAAI,KAAG,MAAM,EAsGf,CAAA"}
@@ -43,9 +43,25 @@ export const buildUpcomingColumns = ({
43
43
  children: formatDate({
44
44
  date: doc.waitUntil,
45
45
  i18n,
46
- pattern: dateFormat
46
+ pattern: dateFormat,
47
+ timezone: doc.input.timezone
47
48
  })
48
49
  }, doc.id))
50
+ }, {
51
+ accessor: 'input.timezone',
52
+ active: true,
53
+ field: {
54
+ name: '',
55
+ type: 'text'
56
+ },
57
+ Heading: /*#__PURE__*/_jsx("span", {
58
+ children: t('general:timezone')
59
+ }),
60
+ renderedCells: docs.map(doc => {
61
+ return /*#__PURE__*/_jsx("span", {
62
+ children: doc.input.timezone || t('general:noValue')
63
+ }, doc.id);
64
+ })
49
65
  }];
50
66
  if (localization) {
51
67
  columns.push({
@@ -1 +1 @@
1
- {"version":3,"file":"buildUpcomingColumns.js","names":["getTranslation","React","formatDate","Button","Pill","buildUpcomingColumns","dateFormat","deleteHandler","docs","i18n","localization","t","columns","accessor","active","field","name","type","Heading","_jsx","renderedCells","map","doc","input","_jsxs","pillStyle","id","date","waitUntil","pattern","push","locale","matchedLocale","locales","find","code","label","buttonStyle","className","icon","onClick","e","preventDefault","tooltip"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.tsx"],"sourcesContent":["import type { ClientConfig } from 'payload'\n\nimport { getTranslation, type I18nClient, type TFunction } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Column } from '../../Table/index.js'\nimport type { UpcomingEvent } from './types.js'\n\nimport { formatDate } from '../../../utilities/formatDate.js'\nimport { Button } from '../../Button/index.js'\nimport { Pill } from '../../Pill/index.js'\n\ntype Args = {\n dateFormat: string\n deleteHandler: (id: number | string) => void\n docs: UpcomingEvent[]\n i18n: I18nClient\n localization: ClientConfig['localization']\n t: TFunction\n}\n\nexport const buildUpcomingColumns = ({\n dateFormat,\n deleteHandler,\n docs,\n i18n,\n localization,\n t,\n}: Args): Column[] => {\n const columns: Column[] = [\n {\n accessor: 'input.type',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <span>{t('version:type')}</span>,\n renderedCells: docs.map((doc) => {\n const type = doc.input?.type\n\n return (\n <Pill key={doc.id} pillStyle={type === 'publish' ? 'success' : 'warning'}>\n {type === 'publish' && t('version:publish')}\n {type === 'unpublish' && t('version:unpublish')}\n </Pill>\n )\n }),\n },\n {\n accessor: 'waitUntil',\n active: true,\n field: {\n name: '',\n type: 'date',\n },\n Heading: <span>{t('general:time')}</span>,\n renderedCells: docs.map((doc) => (\n <span key={doc.id}>{formatDate({ date: doc.waitUntil, i18n, pattern: dateFormat })}</span>\n )),\n },\n ]\n\n if (localization) {\n columns.push({\n accessor: 'input.locale',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <span>{t('general:locale')}</span>,\n renderedCells: docs.map((doc) => {\n if (doc.input.locale) {\n const matchedLocale = localization.locales.find(\n (locale) => locale.code === doc.input.locale,\n )\n if (matchedLocale) {\n return <span key={doc.id}>{getTranslation(matchedLocale.label, i18n)}</span>\n }\n }\n\n return <span key={doc.id}>{t('general:all')}</span>\n }),\n })\n }\n\n columns.push({\n accessor: 'delete',\n active: true,\n field: {\n name: 'delete',\n type: 'text',\n },\n Heading: <span>{t('general:delete')}</span>,\n renderedCells: docs.map((doc) => (\n <Button\n buttonStyle=\"icon-label\"\n className=\"schedule-publish__delete\"\n icon=\"x\"\n key={doc.id}\n onClick={(e) => {\n e.preventDefault()\n deleteHandler(doc.id)\n }}\n tooltip={t('general:delete')}\n />\n )),\n })\n\n return columns\n}\n"],"mappings":";AAEA,SAASA,cAAc,QAAyC;AAChE,OAAOC,KAAA,MAAW;AAKlB,SAASC,UAAU,QAAQ;AAC3B,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AAWrB,OAAO,MAAMC,oBAAA,GAAuBA,CAAC;EACnCC,UAAU;EACVC,aAAa;EACbC,IAAI;EACJC,IAAI;EACJC,YAAY;EACZC;AAAC,CACI;EACL,MAAMC,OAAA,GAAoB,CACxB;IACEC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAAC;gBAAMR,CAAA,CAAE;;IAClBS,aAAA,EAAeZ,IAAA,CAAKa,GAAG,CAAEC,GAAA;MACvB,MAAML,IAAA,GAAOK,GAAA,CAAIC,KAAK,EAAEN,IAAA;MAExB,oBACEO,KAAA,CAACpB,IAAA;QAAkBqB,SAAA,EAAWR,IAAA,KAAS,YAAY,YAAY;mBAC5DA,IAAA,KAAS,aAAaN,CAAA,CAAE,oBACxBM,IAAA,KAAS,eAAeN,CAAA,CAAE;SAFlBW,GAAA,CAAII,EAAE;IAKrB;EACF,GACA;IACEb,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAAC;gBAAMR,CAAA,CAAE;;IAClBS,aAAA,EAAeZ,IAAA,CAAKa,GAAG,CAAEC,GAAA,iBACvBH,IAAA,CAAC;gBAAmBjB,UAAA,CAAW;QAAEyB,IAAA,EAAML,GAAA,CAAIM,SAAS;QAAEnB,IAAA;QAAMoB,OAAA,EAASvB;MAAW;OAArEgB,GAAA,CAAII,EAAE;EAErB,EACD;EAED,IAAIhB,YAAA,EAAc;IAChBE,OAAA,CAAQkB,IAAI,CAAC;MACXjB,QAAA,EAAU;MACVC,MAAA,EAAQ;MACRC,KAAA,EAAO;QACLC,IAAA,EAAM;QACNC,IAAA,EAAM;MACR;MACAC,OAAA,eAASC,IAAA,CAAC;kBAAMR,CAAA,CAAE;;MAClBS,aAAA,EAAeZ,IAAA,CAAKa,GAAG,CAAEC,GAAA;QACvB,IAAIA,GAAA,CAAIC,KAAK,CAACQ,MAAM,EAAE;UACpB,MAAMC,aAAA,GAAgBtB,YAAA,CAAauB,OAAO,CAACC,IAAI,CAC5CH,MAAA,IAAWA,MAAA,CAAOI,IAAI,KAAKb,GAAA,CAAIC,KAAK,CAACQ,MAAM;UAE9C,IAAIC,aAAA,EAAe;YACjB,oBAAOb,IAAA,CAAC;wBAAmBnB,cAAA,CAAegC,aAAA,CAAcI,KAAK,EAAE3B,IAAA;eAA7Ca,GAAA,CAAII,EAAE;UAC1B;QACF;QAEA,oBAAOP,IAAA,CAAC;oBAAmBR,CAAA,CAAE;WAAXW,GAAA,CAAII,EAAE;MAC1B;IACF;EACF;EAEAd,OAAA,CAAQkB,IAAI,CAAC;IACXjB,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAAC;gBAAMR,CAAA,CAAE;;IAClBS,aAAA,EAAeZ,IAAA,CAAKa,GAAG,CAAEC,GAAA,iBACvBH,IAAA,CAAChB,MAAA;MACCkC,WAAA,EAAY;MACZC,SAAA,EAAU;MACVC,IAAA,EAAK;MAELC,OAAA,EAAUC,CAAA;QACRA,CAAA,CAAEC,cAAc;QAChBnC,aAAA,CAAce,GAAA,CAAII,EAAE;MACtB;MACAiB,OAAA,EAAShC,CAAA,CAAE;OALNW,GAAA,CAAII,EAAE;EAQjB;EAEA,OAAOd,OAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"buildUpcomingColumns.js","names":["getTranslation","React","formatDate","Button","Pill","buildUpcomingColumns","dateFormat","deleteHandler","docs","i18n","localization","t","columns","accessor","active","field","name","type","Heading","_jsx","renderedCells","map","doc","input","_jsxs","pillStyle","id","date","waitUntil","pattern","timezone","push","locale","matchedLocale","locales","find","code","label","buttonStyle","className","icon","onClick","e","preventDefault","tooltip"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.tsx"],"sourcesContent":["import type { ClientConfig } from 'payload'\n\nimport { getTranslation, type I18nClient, type TFunction } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Column } from '../../Table/index.js'\nimport type { UpcomingEvent } from './types.js'\n\nimport { formatDate } from '../../../utilities/formatDate.js'\nimport { Button } from '../../Button/index.js'\nimport { Pill } from '../../Pill/index.js'\n\ntype Args = {\n dateFormat: string\n deleteHandler: (id: number | string) => void\n docs: UpcomingEvent[]\n i18n: I18nClient\n localization: ClientConfig['localization']\n t: TFunction\n}\n\nexport const buildUpcomingColumns = ({\n dateFormat,\n deleteHandler,\n docs,\n i18n,\n localization,\n t,\n}: Args): Column[] => {\n const columns: Column[] = [\n {\n accessor: 'input.type',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <span>{t('version:type')}</span>,\n renderedCells: docs.map((doc) => {\n const type = doc.input?.type\n\n return (\n <Pill key={doc.id} pillStyle={type === 'publish' ? 'success' : 'warning'}>\n {type === 'publish' && t('version:publish')}\n {type === 'unpublish' && t('version:unpublish')}\n </Pill>\n )\n }),\n },\n {\n accessor: 'waitUntil',\n active: true,\n field: {\n name: '',\n type: 'date',\n },\n Heading: <span>{t('general:time')}</span>,\n renderedCells: docs.map((doc) => (\n <span key={doc.id}>\n {formatDate({\n date: doc.waitUntil,\n i18n,\n pattern: dateFormat,\n timezone: doc.input.timezone,\n })}\n </span>\n )),\n },\n {\n accessor: 'input.timezone',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <span>{t('general:timezone')}</span>,\n renderedCells: docs.map((doc) => {\n return <span key={doc.id}>{doc.input.timezone || t('general:noValue')}</span>\n }),\n },\n ]\n\n if (localization) {\n columns.push({\n accessor: 'input.locale',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <span>{t('general:locale')}</span>,\n renderedCells: docs.map((doc) => {\n if (doc.input.locale) {\n const matchedLocale = localization.locales.find(\n (locale) => locale.code === doc.input.locale,\n )\n if (matchedLocale) {\n return <span key={doc.id}>{getTranslation(matchedLocale.label, i18n)}</span>\n }\n }\n\n return <span key={doc.id}>{t('general:all')}</span>\n }),\n })\n }\n\n columns.push({\n accessor: 'delete',\n active: true,\n field: {\n name: 'delete',\n type: 'text',\n },\n Heading: <span>{t('general:delete')}</span>,\n renderedCells: docs.map((doc) => (\n <Button\n buttonStyle=\"icon-label\"\n className=\"schedule-publish__delete\"\n icon=\"x\"\n key={doc.id}\n onClick={(e) => {\n e.preventDefault()\n deleteHandler(doc.id)\n }}\n tooltip={t('general:delete')}\n />\n )),\n })\n\n return columns\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAA;AAuBzB,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAOD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuP1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAsBnD,OAAO,cAAc,CAAA;AAMrB,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAOD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6T1C,CAAA"}
@@ -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, t, schedulePublish, type, locale, collectionSlug, id, globalSlug, fetchUpcoming]);
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 => setDate(e),
284
+ onChange: e => onChangeDate(e),
245
285
  pickerAppearance: "dayAndTime",
246
286
  readOnly: processing,
247
287
  timeIntervals: 5,
248
- value: date
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":"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","ignoreList":[]}
@@ -3,6 +3,7 @@ export type UpcomingEvent = {
3
3
  id: number | string;
4
4
  input: {
5
5
  locale?: string;
6
+ timezone?: string;
6
7
  type: PublishType;
7
8
  };
8
9
  waitUntil: Date;
@@ -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":[]}
@@ -0,0 +1,5 @@
1
+ import type React from 'react';
2
+ import type { Props } from './types.js';
3
+ import './index.scss';
4
+ export declare const TimezonePicker: React.FC<Props>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TimezonePicker/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2C1C,CAAA"}
@@ -0,0 +1,50 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { useMemo } from 'react';
5
+ import { FieldLabel } from '../../fields/FieldLabel/index.js';
6
+ import './index.scss';
7
+ import { useTranslation } from '../../providers/Translation/index.js';
8
+ import { ReactSelect } from '../ReactSelect/index.js';
9
+ import { formatOptions } from '../WhereBuilder/Condition/Select/formatOptions.js';
10
+ export const TimezonePicker = props => {
11
+ const {
12
+ id,
13
+ onChange: onChangeFromProps,
14
+ options: optionsFromProps,
15
+ required,
16
+ selectedTimezone: selectedTimezoneFromProps
17
+ } = props;
18
+ const {
19
+ t
20
+ } = useTranslation();
21
+ const options = formatOptions(optionsFromProps);
22
+ const selectedTimezone = useMemo(() => {
23
+ return options.find(t_0 => {
24
+ const value = typeof t_0 === 'string' ? t_0 : t_0.value;
25
+ return value === (selectedTimezoneFromProps || 'UTC');
26
+ });
27
+ }, [options, selectedTimezoneFromProps]);
28
+ return /*#__PURE__*/_jsxs("div", {
29
+ className: "timezone-picker-wrapper",
30
+ children: [/*#__PURE__*/_jsx(FieldLabel, {
31
+ htmlFor: id,
32
+ label: `${t('general:timezone')} ${required ? '*' : ''}`,
33
+ required: required,
34
+ unstyled: true
35
+ }), /*#__PURE__*/_jsx(ReactSelect, {
36
+ className: "timezone-picker",
37
+ inputId: id,
38
+ isClearable: true,
39
+ isCreatable: false,
40
+ onChange: val => {
41
+ if (onChangeFromProps) {
42
+ onChangeFromProps(val?.value || '');
43
+ }
44
+ },
45
+ options: options,
46
+ value: selectedTimezone
47
+ })]
48
+ });
49
+ };
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useMemo","FieldLabel","useTranslation","ReactSelect","formatOptions","TimezonePicker","props","id","onChange","onChangeFromProps","options","optionsFromProps","required","selectedTimezone","selectedTimezoneFromProps","t","find","value","_jsxs","className","_jsx","htmlFor","label","unstyled","inputId","isClearable","isCreatable","val"],"sources":["../../../src/elements/TimezonePicker/index.tsx"],"sourcesContent":["'use client'\n\nimport type { OptionObject } from 'payload'\nimport type React from 'react'\n\nimport { useMemo } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport './index.scss'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport { formatOptions } from '../WhereBuilder/Condition/Select/formatOptions.js'\n\nexport const TimezonePicker: React.FC<Props> = (props) => {\n const {\n id,\n onChange: onChangeFromProps,\n options: optionsFromProps,\n required,\n selectedTimezone: selectedTimezoneFromProps,\n } = props\n\n const { t } = useTranslation()\n\n const options = formatOptions(optionsFromProps)\n\n const selectedTimezone = useMemo(() => {\n return options.find((t) => {\n const value = typeof t === 'string' ? t : t.value\n return value === (selectedTimezoneFromProps || 'UTC')\n })\n }, [options, selectedTimezoneFromProps])\n\n return (\n <div className=\"timezone-picker-wrapper\">\n <FieldLabel\n htmlFor={id}\n label={`${t('general:timezone')} ${required ? '*' : ''}`}\n required={required}\n unstyled\n />\n <ReactSelect\n className=\"timezone-picker\"\n inputId={id}\n isClearable={true}\n isCreatable={false}\n onChange={(val: OptionObject) => {\n if (onChangeFromProps) {\n onChangeFromProps(val?.value || '')\n }\n }}\n options={options}\n value={selectedTimezone}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAKA,SAASA,OAAO,QAAQ;AAIxB,SAASC,UAAU,QAAQ;AAC3B,OAAO;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAE9B,OAAO,MAAMC,cAAA,GAAmCC,KAAA;EAC9C,MAAM;IACJC,EAAE;IACFC,QAAA,EAAUC,iBAAiB;IAC3BC,OAAA,EAASC,gBAAgB;IACzBC,QAAQ;IACRC,gBAAA,EAAkBC;EAAyB,CAC5C,GAAGR,KAAA;EAEJ,MAAM;IAAES;EAAC,CAAE,GAAGb,cAAA;EAEd,MAAMQ,OAAA,GAAUN,aAAA,CAAcO,gBAAA;EAE9B,MAAME,gBAAA,GAAmBb,OAAA,CAAQ;IAC/B,OAAOU,OAAA,CAAQM,IAAI,CAAED,GAAA;MACnB,MAAME,KAAA,GAAQ,OAAOF,GAAA,KAAM,WAAWA,GAAA,GAAIA,GAAA,CAAEE,KAAK;MACjD,OAAOA,KAAA,MAAWH,yBAAA,IAA6B,KAAI;IACrD;EACF,GAAG,CAACJ,OAAA,EAASI,yBAAA,CAA0B;EAEvC,oBACEI,KAAA,CAAC;IAAIC,SAAA,EAAU;4BACbC,IAAA,CAACnB,UAAA;MACCoB,OAAA,EAASd,EAAA;MACTe,KAAA,EAAO,GAAGP,CAAA,CAAE,uBAAuBH,QAAA,GAAW,MAAM,IAAI;MACxDA,QAAA,EAAUA,QAAA;MACVW,QAAQ;qBAEVH,IAAA,CAACjB,WAAA;MACCgB,SAAA,EAAU;MACVK,OAAA,EAASjB,EAAA;MACTkB,WAAA,EAAa;MACbC,WAAA,EAAa;MACblB,QAAA,EAAWmB,GAAA;QACT,IAAIlB,iBAAA,EAAmB;UACrBA,iBAAA,CAAkBkB,GAAA,EAAKV,KAAA,IAAS;QAClC;MACF;MACAP,OAAA,EAASA,OAAA;MACTO,KAAA,EAAOJ;;;AAIf","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ @layer payload-default {
2
+ .timezone-picker-wrapper {
3
+ display: flex;
4
+ gap: calc(var(--base) / 4);
5
+ margin-top: calc(var(--base) / 4);
6
+ align-items: center;
7
+
8
+ .field-label {
9
+ margin-right: unset;
10
+ color: var(--theme-elevation-400);
11
+ flex-shrink: 0;
12
+ }
13
+
14
+ .timezone-picker {
15
+ display: inline-block;
16
+
17
+ .rs__menu {
18
+ min-width: calc(var(--base) * 14);
19
+ overflow: hidden;
20
+ border-radius: calc(var(--base) * 0.25);
21
+ }
22
+
23
+ .rs__value-container {
24
+ text-align: center;
25
+ }
26
+
27
+ .rs__control {
28
+ background: none;
29
+ border: none;
30
+ padding: 0;
31
+ min-height: auto !important;
32
+ position: relative;
33
+ box-shadow: unset;
34
+ min-width: var(--base);
35
+
36
+ &:hover {
37
+ cursor: pointer;
38
+ box-shadow: unset;
39
+ }
40
+
41
+ &.rs__control--menu-is-open::before {
42
+ display: block;
43
+ }
44
+ }
45
+
46
+ .rs__indicators {
47
+ margin-inline-start: calc(var(--base) * 0.25);
48
+ }
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,8 @@
1
+ import type { SelectFieldClient } from 'payload';
2
+ export type Props = {
3
+ id: string;
4
+ onChange?: (val: string) => void;
5
+ required?: boolean;
6
+ selectedTimezone?: string;
7
+ } & Pick<SelectFieldClient, 'options'>;
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/TimezonePicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/TimezonePicker/types.ts"],"sourcesContent":["import type { SelectFieldClient } from 'payload'\n\nexport type Props = {\n id: string\n onChange?: (val: string) => void\n required?: boolean\n selectedTimezone?: string\n} & Pick<SelectFieldClient, 'options'>\n"],"mappings":"AAEA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { Option, OptionObject } from 'payload';
2
+ /**
3
+ * Formats an array of options for use in a select input.
4
+ */
5
+ export declare const formatOptions: (options: Option[]) => OptionObject[];
6
+ //# sourceMappingURL=formatOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatOptions.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Select/formatOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,aAAa,YAAa,MAAM,EAAE,KAAG,YAAY,EAU1D,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Formats an array of options for use in a select input.
3
+ */export const formatOptions = options => options.map(option => {
4
+ if (typeof option === 'object' && (option.value || option.value === '')) {
5
+ return option;
6
+ }
7
+ return {
8
+ label: option,
9
+ value: option
10
+ };
11
+ });
12
+ //# sourceMappingURL=formatOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatOptions.js","names":["formatOptions","options","map","option","value","label"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/formatOptions.ts"],"sourcesContent":["import type { Option, OptionObject } from 'payload'\n\n/**\n * Formats an array of options for use in a select input.\n */\nexport const formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n"],"mappings":"AAEA;;GAGA,OAAO,MAAMA,aAAA,GAAiBC,OAAA,IAC5BA,OAAA,CAAQC,GAAG,CAAEC,MAAA;EACX,IAAI,OAAOA,MAAA,KAAW,aAAaA,MAAA,CAAOC,KAAK,IAAID,MAAA,CAAOC,KAAK,KAAK,EAAC,GAAI;IACvE,OAAOD,MAAA;EACT;EAEA,OAAO;IACLE,KAAA,EAAOF,MAAA;IACPC,KAAA,EAAOD;EACT;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAiBvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoElC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoElC,CAAA"}
@@ -6,15 +6,7 @@ import { getTranslation } from '@payloadcms/translations';
6
6
  import React from 'react';
7
7
  import { useTranslation } from '../../../../providers/Translation/index.js';
8
8
  import { ReactSelect } from '../../../ReactSelect/index.js';
9
- const formatOptions = options => options.map(option => {
10
- if (typeof option === 'object' && (option.value || option.value === '')) {
11
- return option;
12
- }
13
- return {
14
- label: option,
15
- value: option
16
- };
17
- });
9
+ import { formatOptions } from './formatOptions.js';
18
10
  export const Select = t0 => {
19
11
  const $ = _c(26);
20
12
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useTranslation","ReactSelect","formatOptions","options","map","option","value","label","Select","t0","$","disabled","onChange","operator","optionsFromProps","i18n","t1","setOptions","useState","t2","Symbol","for","isMulti","includes","valueToRender","Array","isArray","t3","val","matchingOption","find","matchingOption_0","t4","option_0","selectedOption","newValue","_temp","onSelect","t5","useEffect","t6","t7","t8","option_2","_jsx","option_1"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { Option, OptionObject } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\n\nconst formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n\nexport const Select: React.FC<Props> = ({\n disabled,\n onChange,\n operator,\n options: optionsFromProps,\n value,\n}) => {\n const { i18n } = useTranslation()\n const [options, setOptions] = React.useState(formatOptions(optionsFromProps))\n\n const isMulti = ['in', 'not_in'].includes(operator)\n let valueToRender\n\n if (isMulti && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n }\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = null\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else {\n newValue = selectedOption.value\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n setOptions(formatOptions(optionsFromProps))\n }, [optionsFromProps])\n\n React.useEffect(() => {\n if (!isMulti && Array.isArray(value)) {\n onChange(value[0])\n }\n }, [isMulti, onChange, value])\n\n return (\n <ReactSelect\n disabled={disabled}\n isMulti={isMulti}\n onChange={onSelect}\n options={options.map((option) => ({ ...option, label: getTranslation(option.label, i18n) }))}\n value={valueToRender}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useTranslation","ReactSelect","formatOptions","Select","t0","$","disabled","onChange","operator","options","optionsFromProps","value","i18n","t1","setOptions","useState","t2","Symbol","for","isMulti","includes","valueToRender","Array","isArray","t3","val","matchingOption","find","option","label","map","matchingOption_0","t4","option_0","selectedOption","newValue","_temp","onSelect","t5","useEffect","t6","t7","t8","option_2","_jsx","option_1"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport { formatOptions } from './formatOptions.js'\n\nexport const Select: React.FC<Props> = ({\n disabled,\n onChange,\n operator,\n options: optionsFromProps,\n value,\n}) => {\n const { i18n } = useTranslation()\n const [options, setOptions] = React.useState(formatOptions(optionsFromProps))\n\n const isMulti = ['in', 'not_in'].includes(operator)\n let valueToRender\n\n if (isMulti && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n }\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = null\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else {\n newValue = selectedOption.value\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n setOptions(formatOptions(optionsFromProps))\n }, [optionsFromProps])\n\n React.useEffect(() => {\n if (!isMulti && Array.isArray(value)) {\n onChange(value[0])\n }\n }, [isMulti, onChange, value])\n\n return (\n <ReactSelect\n disabled={disabled}\n isMulti={isMulti}\n onChange={onSelect}\n options={options.map((option) => ({ ...option, label: getTranslation(option.label, i18n) }))}\n value={valueToRender}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ export { useIntersect } from '../../hooks/useIntersect.js';
9
9
  export { usePayloadAPI } from '../../hooks/usePayloadAPI.js';
10
10
  export { useResize } from '../../hooks/useResize.js';
11
11
  export { useThrottledEffect } from '../../hooks/useThrottledEffect.js';
12
+ export { useEffectEvent } from '../../hooks/useEffectEvent.js';
12
13
  export { useUseTitleField } from '../../hooks/useUseAsTitle.js';
13
14
  export { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
14
15
  export { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js';
@@ -92,6 +93,7 @@ export { FileDetails } from '../../elements/FileDetails/index.js';
92
93
  export { PreviewSizes } from '../../elements/PreviewSizes/index.js';
93
94
  export { PreviewButton } from '../../elements/PreviewButton/index.js';
94
95
  export { RelationshipTable } from '../../elements/RelationshipTable/index.js';
96
+ export { TimezonePicker } from '../../elements/TimezonePicker/index.js';
95
97
  export { BlocksDrawer } from '../../fields/Blocks/BlocksDrawer/index.js';
96
98
  export { SectionTitle } from '../../fields/Blocks/SectionTitle/index.js';
97
99
  export { HiddenField } from '../../fields/Hidden/index.js';