@strapi/content-releases 5.26.0 → 5.28.0
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/admin/components/ReleaseModal.js +7 -0
- package/dist/admin/components/ReleaseModal.js.map +1 -1
- package/dist/admin/components/ReleaseModal.mjs +7 -0
- package/dist/admin/components/ReleaseModal.mjs.map +1 -1
- package/dist/admin/pages/PurchaseContentReleases.js +2 -2
- package/dist/admin/pages/PurchaseContentReleases.js.map +1 -1
- package/dist/admin/pages/PurchaseContentReleases.mjs +3 -3
- package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -1
- package/dist/admin/pages/ReleaseDetailsPage.js +117 -115
- package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -1
- package/dist/admin/pages/ReleaseDetailsPage.mjs +117 -115
- package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -1
- package/dist/admin/pages/ReleasesPage.js +130 -128
- package/dist/admin/pages/ReleasesPage.js.map +1 -1
- package/dist/admin/pages/ReleasesPage.mjs +130 -128
- package/dist/admin/pages/ReleasesPage.mjs.map +1 -1
- package/dist/admin/pages/ReleasesSettingsPage.js +1 -1
- package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -1
- package/dist/admin/pages/ReleasesSettingsPage.mjs +2 -2
- package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -1
- package/dist/admin/src/services/homepage.d.ts +1 -1
- package/dist/admin/src/services/release.d.ts +28 -28
- package/package.json +7 -7
|
@@ -146,9 +146,15 @@ const ReleaseModal = ({ handleClose, open, handleSubmit, initialValues, isLoadin
|
|
|
146
146
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
147
147
|
gap: 4,
|
|
148
148
|
alignItems: "start",
|
|
149
|
+
direction: {
|
|
150
|
+
initial: 'column',
|
|
151
|
+
medium: 'row'
|
|
152
|
+
},
|
|
153
|
+
wrap: "wrap",
|
|
149
154
|
children: [
|
|
150
155
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
151
156
|
width: "100%",
|
|
157
|
+
flex: 1,
|
|
152
158
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
|
|
153
159
|
name: "date",
|
|
154
160
|
error: errors.date && formatMessage({
|
|
@@ -186,6 +192,7 @@ const ReleaseModal = ({ handleClose, open, handleSubmit, initialValues, isLoadin
|
|
|
186
192
|
}),
|
|
187
193
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
188
194
|
width: "100%",
|
|
195
|
+
flex: 1,
|
|
189
196
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
|
|
190
197
|
name: "time",
|
|
191
198
|
error: errors.time && formatMessage({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseModal.js","sources":["../../../admin/src/components/ReleaseModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Modal,\n TextInput,\n Typography,\n Checkbox,\n Flex,\n Box,\n DatePicker,\n TimePicker,\n Combobox,\n ComboboxOption,\n Field,\n} from '@strapi/design-system';\nimport { formatISO } from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { Formik, Form, useFormikContext } from 'formik';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { pluginId } from '../pluginId';\nimport { getTimezones } from '../utils/time';\nimport { RELEASE_SCHEMA } from '../validation/schemas';\n\nexport interface FormValues {\n name: string;\n date?: string;\n time: string;\n timezone: string | null;\n isScheduled?: boolean;\n scheduledAt: Date | null;\n}\n\ninterface ReleaseModalProps {\n handleClose: () => void;\n handleSubmit: (values: FormValues) => void;\n isLoading?: boolean;\n initialValues: FormValues;\n open?: boolean;\n}\n\nexport const ReleaseModal = ({\n handleClose,\n open,\n handleSubmit,\n initialValues,\n isLoading = false,\n}: ReleaseModalProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const isCreatingRelease = pathname === `/plugins/${pluginId}`;\n // Set default first timezone from the list if no system timezone detected\n const { timezoneList, systemTimezone = { value: 'UTC+00:00-Africa/Abidjan ' } } = getTimezones(\n initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date()\n );\n\n /**\n * Generate scheduled time using selected date, time and timezone\n */\n const getScheduledTimestamp = (values: FormValues) => {\n const { date, time, timezone } = values;\n if (!date || !time || !timezone) return null;\n const timezoneWithoutOffset = timezone.split('&')[1];\n return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);\n };\n\n /**\n * Get timezone with offset to show the selected value in the dropdown\n */\n const getTimezoneWithOffset = () => {\n const currentTimezone = timezoneList.find(\n (timezone) => timezone.value.split('&')[1] === initialValues.timezone\n );\n return currentTimezone?.value || systemTimezone.value;\n };\n\n return (\n <Modal.Root open={open} onOpenChange={handleClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-releases.modal.title',\n defaultMessage:\n '{isCreatingRelease, select, true {New release} other {Edit release}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Modal.Title>\n </Modal.Header>\n <Formik\n onSubmit={(values) => {\n handleSubmit({\n ...values,\n timezone: values.timezone ? values.timezone.split('&')[1] : null,\n scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null,\n });\n }}\n initialValues={{\n ...initialValues,\n timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value,\n }}\n validationSchema={RELEASE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleChange, setFieldValue }) => {\n return (\n <Form>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root\n name=\"name\"\n error={\n errors.name &&\n formatMessage({ id: errors.name, defaultMessage: errors.name })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.release-name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n <Box width=\"max-content\">\n <Checkbox\n name=\"isScheduled\"\n checked={values.isScheduled}\n onCheckedChange={(checked) => {\n setFieldValue('isScheduled', checked);\n if (!checked) {\n // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB\n setFieldValue('date', null);\n setFieldValue('time', '');\n setFieldValue('timezone', null);\n } else {\n // On ticking back schedule release date, time and timezone should be restored to the initial state\n setFieldValue('date', initialValues.date);\n setFieldValue('time', initialValues.time);\n setFieldValue(\n 'timezone',\n initialValues.timezone ?? systemTimezone?.value\n );\n }\n }}\n >\n <Typography\n textColor={values.isScheduled ? 'primary600' : 'neutral800'}\n fontWeight={values.isScheduled ? 'semiBold' : 'regular'}\n >\n {formatMessage({\n id: 'modal.form.input.label.schedule-release',\n defaultMessage: 'Schedule release',\n })}\n </Typography>\n </Checkbox>\n </Box>\n {values.isScheduled && (\n <>\n <Flex gap={4} alignItems=\"start\">\n <Box width=\"100%\">\n <Field.Root\n name=\"date\"\n error={\n errors.date &&\n formatMessage({ id: errors.date, defaultMessage: errors.date })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.date',\n defaultMessage: 'Date',\n })}\n </Field.Label>\n <DatePicker\n onChange={(date) => {\n const isoFormatDate = date\n ? formatISO(date, { representation: 'date' })\n : null;\n setFieldValue('date', isoFormatDate);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('date', null);\n }}\n value={values.date ? new Date(values.date) : new Date()}\n minDate={utcToZonedTime(new Date(), values.timezone.split('&')[1])}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n <Box width=\"100%\">\n <Field.Root\n name=\"time\"\n error={\n errors.time &&\n formatMessage({ id: errors.time, defaultMessage: errors.time })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.time',\n defaultMessage: 'Time',\n })}\n </Field.Label>\n <TimePicker\n onChange={(time) => {\n setFieldValue('time', time);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('time', '');\n }}\n value={values.time || undefined}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n </Flex>\n <TimezoneComponent timezoneOptions={timezoneList} />\n </>\n )}\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button name=\"submit\" loading={isLoading} type=\"submit\">\n {formatMessage(\n {\n id: 'content-releases.modal.form.button.submit',\n defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Button>\n </Modal.Footer>\n </Form>\n );\n }}\n </Formik>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\n/**\n * Generates the list of timezones and user's current timezone(system timezone)\n */\ninterface ITimezoneOption {\n offset: string;\n value: string;\n}\n\nconst TimezoneComponent = ({ timezoneOptions }: { timezoneOptions: ITimezoneOption[] }) => {\n const { values, errors, setFieldValue } = useFormikContext<FormValues>();\n const { formatMessage } = useIntl();\n const [timezoneList, setTimezoneList] = React.useState<ITimezoneOption[]>(timezoneOptions);\n\n React.useEffect(() => {\n if (values.date) {\n // Update the timezone offset which varies with DST based on the date selected\n const { timezoneList } = getTimezones(new Date(values.date));\n setTimezoneList(timezoneList);\n\n const updatedTimezone =\n values.timezone &&\n timezoneList.find((tz) => tz.value.split('&')[1] === values.timezone!.split('&')[1]);\n if (updatedTimezone) {\n setFieldValue('timezone', updatedTimezone!.value);\n }\n }\n }, [setFieldValue, values.date, values.timezone]);\n\n return (\n <Field.Root\n name=\"timezone\"\n error={\n errors.timezone && formatMessage({ id: errors.timezone, defaultMessage: errors.timezone })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.timezone',\n defaultMessage: 'Timezone',\n })}\n </Field.Label>\n <Combobox\n autocomplete={{ type: 'list', filter: 'contains' }}\n value={values.timezone || undefined}\n textValue={values.timezone ? values.timezone.replace(/&/, ' ') : undefined} // textValue is required to show the updated DST timezone\n onChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onTextValueChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onClear={() => {\n setFieldValue('timezone', '');\n }}\n >\n {timezoneList.map((timezone) => (\n <ComboboxOption key={timezone.value} value={timezone.value}>\n {timezone.value.replace(/&/, ' ')}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["ReleaseModal","handleClose","open","handleSubmit","initialValues","isLoading","formatMessage","useIntl","pathname","useLocation","isCreatingRelease","pluginId","timezoneList","systemTimezone","value","getTimezones","scheduledAt","Date","getScheduledTimestamp","values","date","time","timezone","timezoneWithoutOffset","split","zonedTimeToUtc","getTimezoneWithOffset","currentTimezone","find","_jsx","Modal","Root","onOpenChange","_jsxs","Content","Header","Title","id","defaultMessage","Formik","onSubmit","isScheduled","validationSchema","RELEASE_SCHEMA","validateOnChange","errors","handleChange","setFieldValue","Form","Body","Flex","direction","alignItems","gap","Field","name","error","required","Label","TextInput","onChange","Error","Box","width","Checkbox","checked","onCheckedChange","Typography","textColor","fontWeight","_Fragment","DatePicker","isoFormatDate","formatISO","representation","clearLabel","onClear","minDate","utcToZonedTime","TimePicker","undefined","TimezoneComponent","timezoneOptions","Footer","Close","Button","variant","loading","type","useFormikContext","setTimezoneList","React","useState","useEffect","updatedTimezone","tz","Combobox","autocomplete","filter","textValue","replace","onTextValueChange","map","ComboboxOption"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReleaseModal.js","sources":["../../../admin/src/components/ReleaseModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Modal,\n TextInput,\n Typography,\n Checkbox,\n Flex,\n Box,\n DatePicker,\n TimePicker,\n Combobox,\n ComboboxOption,\n Field,\n} from '@strapi/design-system';\nimport { formatISO } from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { Formik, Form, useFormikContext } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { pluginId } from '../pluginId';\nimport { getTimezones } from '../utils/time';\nimport { RELEASE_SCHEMA } from '../validation/schemas';\n\nexport interface FormValues {\n name: string;\n date?: string;\n time: string;\n timezone: string | null;\n isScheduled?: boolean;\n scheduledAt: Date | null;\n}\n\ninterface ReleaseModalProps {\n handleClose: () => void;\n handleSubmit: (values: FormValues) => void;\n isLoading?: boolean;\n initialValues: FormValues;\n open?: boolean;\n}\n\nexport const ReleaseModal = ({\n handleClose,\n open,\n handleSubmit,\n initialValues,\n isLoading = false,\n}: ReleaseModalProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const isCreatingRelease = pathname === `/plugins/${pluginId}`;\n // Set default first timezone from the list if no system timezone detected\n const { timezoneList, systemTimezone = { value: 'UTC+00:00-Africa/Abidjan ' } } = getTimezones(\n initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date()\n );\n\n /**\n * Generate scheduled time using selected date, time and timezone\n */\n const getScheduledTimestamp = (values: FormValues) => {\n const { date, time, timezone } = values;\n if (!date || !time || !timezone) return null;\n const timezoneWithoutOffset = timezone.split('&')[1];\n return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);\n };\n\n /**\n * Get timezone with offset to show the selected value in the dropdown\n */\n const getTimezoneWithOffset = () => {\n const currentTimezone = timezoneList.find(\n (timezone) => timezone.value.split('&')[1] === initialValues.timezone\n );\n return currentTimezone?.value || systemTimezone.value;\n };\n\n return (\n <Modal.Root open={open} onOpenChange={handleClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-releases.modal.title',\n defaultMessage:\n '{isCreatingRelease, select, true {New release} other {Edit release}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Modal.Title>\n </Modal.Header>\n <Formik\n onSubmit={(values) => {\n handleSubmit({\n ...values,\n timezone: values.timezone ? values.timezone.split('&')[1] : null,\n scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null,\n });\n }}\n initialValues={{\n ...initialValues,\n timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value,\n }}\n validationSchema={RELEASE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleChange, setFieldValue }) => {\n return (\n <Form>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root\n name=\"name\"\n error={\n errors.name &&\n formatMessage({ id: errors.name, defaultMessage: errors.name })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.release-name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n <Box width=\"max-content\">\n <Checkbox\n name=\"isScheduled\"\n checked={values.isScheduled}\n onCheckedChange={(checked) => {\n setFieldValue('isScheduled', checked);\n if (!checked) {\n // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB\n setFieldValue('date', null);\n setFieldValue('time', '');\n setFieldValue('timezone', null);\n } else {\n // On ticking back schedule release date, time and timezone should be restored to the initial state\n setFieldValue('date', initialValues.date);\n setFieldValue('time', initialValues.time);\n setFieldValue(\n 'timezone',\n initialValues.timezone ?? systemTimezone?.value\n );\n }\n }}\n >\n <Typography\n textColor={values.isScheduled ? 'primary600' : 'neutral800'}\n fontWeight={values.isScheduled ? 'semiBold' : 'regular'}\n >\n {formatMessage({\n id: 'modal.form.input.label.schedule-release',\n defaultMessage: 'Schedule release',\n })}\n </Typography>\n </Checkbox>\n </Box>\n {values.isScheduled && (\n <>\n <Flex\n gap={4}\n alignItems=\"start\"\n direction={{ initial: 'column', medium: 'row' }}\n wrap=\"wrap\"\n >\n <Box width=\"100%\" flex={1}>\n <Field.Root\n name=\"date\"\n error={\n errors.date &&\n formatMessage({ id: errors.date, defaultMessage: errors.date })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.date',\n defaultMessage: 'Date',\n })}\n </Field.Label>\n <DatePicker\n onChange={(date) => {\n const isoFormatDate = date\n ? formatISO(date, { representation: 'date' })\n : null;\n setFieldValue('date', isoFormatDate);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('date', null);\n }}\n value={values.date ? new Date(values.date) : new Date()}\n minDate={utcToZonedTime(new Date(), values.timezone.split('&')[1])}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n <Box width=\"100%\" flex={1}>\n <Field.Root\n name=\"time\"\n error={\n errors.time &&\n formatMessage({ id: errors.time, defaultMessage: errors.time })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.time',\n defaultMessage: 'Time',\n })}\n </Field.Label>\n <TimePicker\n onChange={(time) => {\n setFieldValue('time', time);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('time', '');\n }}\n value={values.time || undefined}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n </Flex>\n <TimezoneComponent timezoneOptions={timezoneList} />\n </>\n )}\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button name=\"submit\" loading={isLoading} type=\"submit\">\n {formatMessage(\n {\n id: 'content-releases.modal.form.button.submit',\n defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Button>\n </Modal.Footer>\n </Form>\n );\n }}\n </Formik>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\n/**\n * Generates the list of timezones and user's current timezone(system timezone)\n */\ninterface ITimezoneOption {\n offset: string;\n value: string;\n}\n\nconst TimezoneComponent = ({ timezoneOptions }: { timezoneOptions: ITimezoneOption[] }) => {\n const { values, errors, setFieldValue } = useFormikContext<FormValues>();\n const { formatMessage } = useIntl();\n const [timezoneList, setTimezoneList] = React.useState<ITimezoneOption[]>(timezoneOptions);\n\n React.useEffect(() => {\n if (values.date) {\n // Update the timezone offset which varies with DST based on the date selected\n const { timezoneList } = getTimezones(new Date(values.date));\n setTimezoneList(timezoneList);\n\n const updatedTimezone =\n values.timezone &&\n timezoneList.find((tz) => tz.value.split('&')[1] === values.timezone!.split('&')[1]);\n if (updatedTimezone) {\n setFieldValue('timezone', updatedTimezone!.value);\n }\n }\n }, [setFieldValue, values.date, values.timezone]);\n\n return (\n <Field.Root\n name=\"timezone\"\n error={\n errors.timezone && formatMessage({ id: errors.timezone, defaultMessage: errors.timezone })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.timezone',\n defaultMessage: 'Timezone',\n })}\n </Field.Label>\n <Combobox\n autocomplete={{ type: 'list', filter: 'contains' }}\n value={values.timezone || undefined}\n textValue={values.timezone ? values.timezone.replace(/&/, ' ') : undefined} // textValue is required to show the updated DST timezone\n onChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onTextValueChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onClear={() => {\n setFieldValue('timezone', '');\n }}\n >\n {timezoneList.map((timezone) => (\n <ComboboxOption key={timezone.value} value={timezone.value}>\n {timezone.value.replace(/&/, ' ')}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["ReleaseModal","handleClose","open","handleSubmit","initialValues","isLoading","formatMessage","useIntl","pathname","useLocation","isCreatingRelease","pluginId","timezoneList","systemTimezone","value","getTimezones","scheduledAt","Date","getScheduledTimestamp","values","date","time","timezone","timezoneWithoutOffset","split","zonedTimeToUtc","getTimezoneWithOffset","currentTimezone","find","_jsx","Modal","Root","onOpenChange","_jsxs","Content","Header","Title","id","defaultMessage","Formik","onSubmit","isScheduled","validationSchema","RELEASE_SCHEMA","validateOnChange","errors","handleChange","setFieldValue","Form","Body","Flex","direction","alignItems","gap","Field","name","error","required","Label","TextInput","onChange","Error","Box","width","Checkbox","checked","onCheckedChange","Typography","textColor","fontWeight","_Fragment","initial","medium","wrap","flex","DatePicker","isoFormatDate","formatISO","representation","clearLabel","onClear","minDate","utcToZonedTime","TimePicker","undefined","TimezoneComponent","timezoneOptions","Footer","Close","Button","variant","loading","type","useFormikContext","setTimezoneList","React","useState","useEffect","updatedTimezone","tz","Combobox","autocomplete","filter","textValue","replace","onTextValueChange","map","ComboboxOption"],"mappings":"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"}
|
|
@@ -125,9 +125,15 @@ const ReleaseModal = ({ handleClose, open, handleSubmit, initialValues, isLoadin
|
|
|
125
125
|
/*#__PURE__*/ jsxs(Flex, {
|
|
126
126
|
gap: 4,
|
|
127
127
|
alignItems: "start",
|
|
128
|
+
direction: {
|
|
129
|
+
initial: 'column',
|
|
130
|
+
medium: 'row'
|
|
131
|
+
},
|
|
132
|
+
wrap: "wrap",
|
|
128
133
|
children: [
|
|
129
134
|
/*#__PURE__*/ jsx(Box, {
|
|
130
135
|
width: "100%",
|
|
136
|
+
flex: 1,
|
|
131
137
|
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
132
138
|
name: "date",
|
|
133
139
|
error: errors.date && formatMessage({
|
|
@@ -165,6 +171,7 @@ const ReleaseModal = ({ handleClose, open, handleSubmit, initialValues, isLoadin
|
|
|
165
171
|
}),
|
|
166
172
|
/*#__PURE__*/ jsx(Box, {
|
|
167
173
|
width: "100%",
|
|
174
|
+
flex: 1,
|
|
168
175
|
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
169
176
|
name: "time",
|
|
170
177
|
error: errors.time && formatMessage({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseModal.mjs","sources":["../../../admin/src/components/ReleaseModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Modal,\n TextInput,\n Typography,\n Checkbox,\n Flex,\n Box,\n DatePicker,\n TimePicker,\n Combobox,\n ComboboxOption,\n Field,\n} from '@strapi/design-system';\nimport { formatISO } from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { Formik, Form, useFormikContext } from 'formik';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { pluginId } from '../pluginId';\nimport { getTimezones } from '../utils/time';\nimport { RELEASE_SCHEMA } from '../validation/schemas';\n\nexport interface FormValues {\n name: string;\n date?: string;\n time: string;\n timezone: string | null;\n isScheduled?: boolean;\n scheduledAt: Date | null;\n}\n\ninterface ReleaseModalProps {\n handleClose: () => void;\n handleSubmit: (values: FormValues) => void;\n isLoading?: boolean;\n initialValues: FormValues;\n open?: boolean;\n}\n\nexport const ReleaseModal = ({\n handleClose,\n open,\n handleSubmit,\n initialValues,\n isLoading = false,\n}: ReleaseModalProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const isCreatingRelease = pathname === `/plugins/${pluginId}`;\n // Set default first timezone from the list if no system timezone detected\n const { timezoneList, systemTimezone = { value: 'UTC+00:00-Africa/Abidjan ' } } = getTimezones(\n initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date()\n );\n\n /**\n * Generate scheduled time using selected date, time and timezone\n */\n const getScheduledTimestamp = (values: FormValues) => {\n const { date, time, timezone } = values;\n if (!date || !time || !timezone) return null;\n const timezoneWithoutOffset = timezone.split('&')[1];\n return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);\n };\n\n /**\n * Get timezone with offset to show the selected value in the dropdown\n */\n const getTimezoneWithOffset = () => {\n const currentTimezone = timezoneList.find(\n (timezone) => timezone.value.split('&')[1] === initialValues.timezone\n );\n return currentTimezone?.value || systemTimezone.value;\n };\n\n return (\n <Modal.Root open={open} onOpenChange={handleClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-releases.modal.title',\n defaultMessage:\n '{isCreatingRelease, select, true {New release} other {Edit release}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Modal.Title>\n </Modal.Header>\n <Formik\n onSubmit={(values) => {\n handleSubmit({\n ...values,\n timezone: values.timezone ? values.timezone.split('&')[1] : null,\n scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null,\n });\n }}\n initialValues={{\n ...initialValues,\n timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value,\n }}\n validationSchema={RELEASE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleChange, setFieldValue }) => {\n return (\n <Form>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root\n name=\"name\"\n error={\n errors.name &&\n formatMessage({ id: errors.name, defaultMessage: errors.name })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.release-name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n <Box width=\"max-content\">\n <Checkbox\n name=\"isScheduled\"\n checked={values.isScheduled}\n onCheckedChange={(checked) => {\n setFieldValue('isScheduled', checked);\n if (!checked) {\n // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB\n setFieldValue('date', null);\n setFieldValue('time', '');\n setFieldValue('timezone', null);\n } else {\n // On ticking back schedule release date, time and timezone should be restored to the initial state\n setFieldValue('date', initialValues.date);\n setFieldValue('time', initialValues.time);\n setFieldValue(\n 'timezone',\n initialValues.timezone ?? systemTimezone?.value\n );\n }\n }}\n >\n <Typography\n textColor={values.isScheduled ? 'primary600' : 'neutral800'}\n fontWeight={values.isScheduled ? 'semiBold' : 'regular'}\n >\n {formatMessage({\n id: 'modal.form.input.label.schedule-release',\n defaultMessage: 'Schedule release',\n })}\n </Typography>\n </Checkbox>\n </Box>\n {values.isScheduled && (\n <>\n <Flex gap={4} alignItems=\"start\">\n <Box width=\"100%\">\n <Field.Root\n name=\"date\"\n error={\n errors.date &&\n formatMessage({ id: errors.date, defaultMessage: errors.date })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.date',\n defaultMessage: 'Date',\n })}\n </Field.Label>\n <DatePicker\n onChange={(date) => {\n const isoFormatDate = date\n ? formatISO(date, { representation: 'date' })\n : null;\n setFieldValue('date', isoFormatDate);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('date', null);\n }}\n value={values.date ? new Date(values.date) : new Date()}\n minDate={utcToZonedTime(new Date(), values.timezone.split('&')[1])}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n <Box width=\"100%\">\n <Field.Root\n name=\"time\"\n error={\n errors.time &&\n formatMessage({ id: errors.time, defaultMessage: errors.time })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.time',\n defaultMessage: 'Time',\n })}\n </Field.Label>\n <TimePicker\n onChange={(time) => {\n setFieldValue('time', time);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('time', '');\n }}\n value={values.time || undefined}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n </Flex>\n <TimezoneComponent timezoneOptions={timezoneList} />\n </>\n )}\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button name=\"submit\" loading={isLoading} type=\"submit\">\n {formatMessage(\n {\n id: 'content-releases.modal.form.button.submit',\n defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Button>\n </Modal.Footer>\n </Form>\n );\n }}\n </Formik>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\n/**\n * Generates the list of timezones and user's current timezone(system timezone)\n */\ninterface ITimezoneOption {\n offset: string;\n value: string;\n}\n\nconst TimezoneComponent = ({ timezoneOptions }: { timezoneOptions: ITimezoneOption[] }) => {\n const { values, errors, setFieldValue } = useFormikContext<FormValues>();\n const { formatMessage } = useIntl();\n const [timezoneList, setTimezoneList] = React.useState<ITimezoneOption[]>(timezoneOptions);\n\n React.useEffect(() => {\n if (values.date) {\n // Update the timezone offset which varies with DST based on the date selected\n const { timezoneList } = getTimezones(new Date(values.date));\n setTimezoneList(timezoneList);\n\n const updatedTimezone =\n values.timezone &&\n timezoneList.find((tz) => tz.value.split('&')[1] === values.timezone!.split('&')[1]);\n if (updatedTimezone) {\n setFieldValue('timezone', updatedTimezone!.value);\n }\n }\n }, [setFieldValue, values.date, values.timezone]);\n\n return (\n <Field.Root\n name=\"timezone\"\n error={\n errors.timezone && formatMessage({ id: errors.timezone, defaultMessage: errors.timezone })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.timezone',\n defaultMessage: 'Timezone',\n })}\n </Field.Label>\n <Combobox\n autocomplete={{ type: 'list', filter: 'contains' }}\n value={values.timezone || undefined}\n textValue={values.timezone ? values.timezone.replace(/&/, ' ') : undefined} // textValue is required to show the updated DST timezone\n onChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onTextValueChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onClear={() => {\n setFieldValue('timezone', '');\n }}\n >\n {timezoneList.map((timezone) => (\n <ComboboxOption key={timezone.value} value={timezone.value}>\n {timezone.value.replace(/&/, ' ')}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["ReleaseModal","handleClose","open","handleSubmit","initialValues","isLoading","formatMessage","useIntl","pathname","useLocation","isCreatingRelease","pluginId","timezoneList","systemTimezone","value","getTimezones","scheduledAt","Date","getScheduledTimestamp","values","date","time","timezone","timezoneWithoutOffset","split","zonedTimeToUtc","getTimezoneWithOffset","currentTimezone","find","_jsx","Modal","Root","onOpenChange","_jsxs","Content","Header","Title","id","defaultMessage","Formik","onSubmit","isScheduled","validationSchema","RELEASE_SCHEMA","validateOnChange","errors","handleChange","setFieldValue","Form","Body","Flex","direction","alignItems","gap","Field","name","error","required","Label","TextInput","onChange","Error","Box","width","Checkbox","checked","onCheckedChange","Typography","textColor","fontWeight","_Fragment","DatePicker","isoFormatDate","formatISO","representation","clearLabel","onClear","minDate","utcToZonedTime","TimePicker","undefined","TimezoneComponent","timezoneOptions","Footer","Close","Button","variant","loading","type","useFormikContext","setTimezoneList","React","useState","useEffect","updatedTimezone","tz","Combobox","autocomplete","filter","textValue","replace","onTextValueChange","map","ComboboxOption"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReleaseModal.mjs","sources":["../../../admin/src/components/ReleaseModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Modal,\n TextInput,\n Typography,\n Checkbox,\n Flex,\n Box,\n DatePicker,\n TimePicker,\n Combobox,\n ComboboxOption,\n Field,\n} from '@strapi/design-system';\nimport { formatISO } from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { Formik, Form, useFormikContext } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { pluginId } from '../pluginId';\nimport { getTimezones } from '../utils/time';\nimport { RELEASE_SCHEMA } from '../validation/schemas';\n\nexport interface FormValues {\n name: string;\n date?: string;\n time: string;\n timezone: string | null;\n isScheduled?: boolean;\n scheduledAt: Date | null;\n}\n\ninterface ReleaseModalProps {\n handleClose: () => void;\n handleSubmit: (values: FormValues) => void;\n isLoading?: boolean;\n initialValues: FormValues;\n open?: boolean;\n}\n\nexport const ReleaseModal = ({\n handleClose,\n open,\n handleSubmit,\n initialValues,\n isLoading = false,\n}: ReleaseModalProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const isCreatingRelease = pathname === `/plugins/${pluginId}`;\n // Set default first timezone from the list if no system timezone detected\n const { timezoneList, systemTimezone = { value: 'UTC+00:00-Africa/Abidjan ' } } = getTimezones(\n initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date()\n );\n\n /**\n * Generate scheduled time using selected date, time and timezone\n */\n const getScheduledTimestamp = (values: FormValues) => {\n const { date, time, timezone } = values;\n if (!date || !time || !timezone) return null;\n const timezoneWithoutOffset = timezone.split('&')[1];\n return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);\n };\n\n /**\n * Get timezone with offset to show the selected value in the dropdown\n */\n const getTimezoneWithOffset = () => {\n const currentTimezone = timezoneList.find(\n (timezone) => timezone.value.split('&')[1] === initialValues.timezone\n );\n return currentTimezone?.value || systemTimezone.value;\n };\n\n return (\n <Modal.Root open={open} onOpenChange={handleClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: 'content-releases.modal.title',\n defaultMessage:\n '{isCreatingRelease, select, true {New release} other {Edit release}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Modal.Title>\n </Modal.Header>\n <Formik\n onSubmit={(values) => {\n handleSubmit({\n ...values,\n timezone: values.timezone ? values.timezone.split('&')[1] : null,\n scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null,\n });\n }}\n initialValues={{\n ...initialValues,\n timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value,\n }}\n validationSchema={RELEASE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleChange, setFieldValue }) => {\n return (\n <Form>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root\n name=\"name\"\n error={\n errors.name &&\n formatMessage({ id: errors.name, defaultMessage: errors.name })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.release-name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n <Box width=\"max-content\">\n <Checkbox\n name=\"isScheduled\"\n checked={values.isScheduled}\n onCheckedChange={(checked) => {\n setFieldValue('isScheduled', checked);\n if (!checked) {\n // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB\n setFieldValue('date', null);\n setFieldValue('time', '');\n setFieldValue('timezone', null);\n } else {\n // On ticking back schedule release date, time and timezone should be restored to the initial state\n setFieldValue('date', initialValues.date);\n setFieldValue('time', initialValues.time);\n setFieldValue(\n 'timezone',\n initialValues.timezone ?? systemTimezone?.value\n );\n }\n }}\n >\n <Typography\n textColor={values.isScheduled ? 'primary600' : 'neutral800'}\n fontWeight={values.isScheduled ? 'semiBold' : 'regular'}\n >\n {formatMessage({\n id: 'modal.form.input.label.schedule-release',\n defaultMessage: 'Schedule release',\n })}\n </Typography>\n </Checkbox>\n </Box>\n {values.isScheduled && (\n <>\n <Flex\n gap={4}\n alignItems=\"start\"\n direction={{ initial: 'column', medium: 'row' }}\n wrap=\"wrap\"\n >\n <Box width=\"100%\" flex={1}>\n <Field.Root\n name=\"date\"\n error={\n errors.date &&\n formatMessage({ id: errors.date, defaultMessage: errors.date })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.date',\n defaultMessage: 'Date',\n })}\n </Field.Label>\n <DatePicker\n onChange={(date) => {\n const isoFormatDate = date\n ? formatISO(date, { representation: 'date' })\n : null;\n setFieldValue('date', isoFormatDate);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('date', null);\n }}\n value={values.date ? new Date(values.date) : new Date()}\n minDate={utcToZonedTime(new Date(), values.timezone.split('&')[1])}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n <Box width=\"100%\" flex={1}>\n <Field.Root\n name=\"time\"\n error={\n errors.time &&\n formatMessage({ id: errors.time, defaultMessage: errors.time })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.time',\n defaultMessage: 'Time',\n })}\n </Field.Label>\n <TimePicker\n onChange={(time) => {\n setFieldValue('time', time);\n }}\n clearLabel={formatMessage({\n id: 'content-releases.modal.form.input.clearLabel',\n defaultMessage: 'Clear',\n })}\n onClear={() => {\n setFieldValue('time', '');\n }}\n value={values.time || undefined}\n />\n <Field.Error />\n </Field.Root>\n </Box>\n </Flex>\n <TimezoneComponent timezoneOptions={timezoneList} />\n </>\n )}\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button name=\"submit\" loading={isLoading} type=\"submit\">\n {formatMessage(\n {\n id: 'content-releases.modal.form.button.submit',\n defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}',\n },\n { isCreatingRelease: isCreatingRelease }\n )}\n </Button>\n </Modal.Footer>\n </Form>\n );\n }}\n </Formik>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\n/**\n * Generates the list of timezones and user's current timezone(system timezone)\n */\ninterface ITimezoneOption {\n offset: string;\n value: string;\n}\n\nconst TimezoneComponent = ({ timezoneOptions }: { timezoneOptions: ITimezoneOption[] }) => {\n const { values, errors, setFieldValue } = useFormikContext<FormValues>();\n const { formatMessage } = useIntl();\n const [timezoneList, setTimezoneList] = React.useState<ITimezoneOption[]>(timezoneOptions);\n\n React.useEffect(() => {\n if (values.date) {\n // Update the timezone offset which varies with DST based on the date selected\n const { timezoneList } = getTimezones(new Date(values.date));\n setTimezoneList(timezoneList);\n\n const updatedTimezone =\n values.timezone &&\n timezoneList.find((tz) => tz.value.split('&')[1] === values.timezone!.split('&')[1]);\n if (updatedTimezone) {\n setFieldValue('timezone', updatedTimezone!.value);\n }\n }\n }, [setFieldValue, values.date, values.timezone]);\n\n return (\n <Field.Root\n name=\"timezone\"\n error={\n errors.timezone && formatMessage({ id: errors.timezone, defaultMessage: errors.timezone })\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'content-releases.modal.form.input.label.timezone',\n defaultMessage: 'Timezone',\n })}\n </Field.Label>\n <Combobox\n autocomplete={{ type: 'list', filter: 'contains' }}\n value={values.timezone || undefined}\n textValue={values.timezone ? values.timezone.replace(/&/, ' ') : undefined} // textValue is required to show the updated DST timezone\n onChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onTextValueChange={(timezone) => {\n setFieldValue('timezone', timezone);\n }}\n onClear={() => {\n setFieldValue('timezone', '');\n }}\n >\n {timezoneList.map((timezone) => (\n <ComboboxOption key={timezone.value} value={timezone.value}>\n {timezone.value.replace(/&/, ' ')}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["ReleaseModal","handleClose","open","handleSubmit","initialValues","isLoading","formatMessage","useIntl","pathname","useLocation","isCreatingRelease","pluginId","timezoneList","systemTimezone","value","getTimezones","scheduledAt","Date","getScheduledTimestamp","values","date","time","timezone","timezoneWithoutOffset","split","zonedTimeToUtc","getTimezoneWithOffset","currentTimezone","find","_jsx","Modal","Root","onOpenChange","_jsxs","Content","Header","Title","id","defaultMessage","Formik","onSubmit","isScheduled","validationSchema","RELEASE_SCHEMA","validateOnChange","errors","handleChange","setFieldValue","Form","Body","Flex","direction","alignItems","gap","Field","name","error","required","Label","TextInput","onChange","Error","Box","width","Checkbox","checked","onCheckedChange","Typography","textColor","fontWeight","_Fragment","initial","medium","wrap","flex","DatePicker","isoFormatDate","formatISO","representation","clearLabel","onClear","minDate","utcToZonedTime","TimePicker","undefined","TimezoneComponent","timezoneOptions","Footer","Close","Button","variant","loading","type","useFormikContext","setTimezoneList","React","useState","useEffect","updatedTimezone","tz","Combobox","autocomplete","filter","textValue","replace","onTextValueChange","map","ComboboxOption"],"mappings":"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"}
|
|
@@ -23,8 +23,8 @@ const PurchaseContentReleases = ()=>{
|
|
|
23
23
|
})
|
|
24
24
|
}),
|
|
25
25
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
26
|
-
marginLeft:
|
|
27
|
-
marginRight:
|
|
26
|
+
marginLeft: strapiAdmin.RESPONSIVE_DEFAULT_SPACING,
|
|
27
|
+
marginRight: strapiAdmin.RESPONSIVE_DEFAULT_SPACING,
|
|
28
28
|
shadow: "filterShadow",
|
|
29
29
|
hasRadius: true,
|
|
30
30
|
background: "neutral0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PurchaseContentReleases.js","sources":["../../../admin/src/pages/PurchaseContentReleases.tsx"],"sourcesContent":["import { Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, PaperPlane } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseContentReleases = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <Layouts.Root>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'content-releases.pages.Releases.title',\n defaultMessage: 'Releases',\n })}\n />\n <Box\n marginLeft={10}\n marginRight={10}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} s={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <PaperPlane fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'pages.PurchaseRelease.description',\n defaultMessage: 'Group content and publish updates together',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks1',\n defaultMessage: 'Add many entries to releases',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks2',\n defaultMessage: 'Quickly identify entries containing errors',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks3',\n defaultMessage: 'Schedule their publication, or publish them manually',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/releases?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-content-releases-illustration\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'top left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </Layouts.Root>\n );\n};\n\nexport { PurchaseContentReleases };\n"],"names":["PurchaseContentReleases","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","Layouts","Root","_jsxs","Main","Header","title","id","defaultMessage","Box","marginLeft","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Item","col","s","alignItems","Flex","direction","padding","width","PaperPlane","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PurchaseContentReleases.js","sources":["../../../admin/src/pages/PurchaseContentReleases.tsx"],"sourcesContent":["import { Layouts, RESPONSIVE_DEFAULT_SPACING } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, PaperPlane } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseContentReleases = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <Layouts.Root>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'content-releases.pages.Releases.title',\n defaultMessage: 'Releases',\n })}\n />\n <Box\n marginLeft={RESPONSIVE_DEFAULT_SPACING}\n marginRight={RESPONSIVE_DEFAULT_SPACING}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} s={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <PaperPlane fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'pages.PurchaseRelease.description',\n defaultMessage: 'Group content and publish updates together',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks1',\n defaultMessage: 'Add many entries to releases',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks2',\n defaultMessage: 'Quickly identify entries containing errors',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks3',\n defaultMessage: 'Schedule their publication, or publish them manually',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/releases?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-content-releases-illustration\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'top left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </Layouts.Root>\n );\n};\n\nexport { PurchaseContentReleases };\n"],"names":["PurchaseContentReleases","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","Layouts","Root","_jsxs","Main","Header","title","id","defaultMessage","Box","marginLeft","RESPONSIVE_DEFAULT_SPACING","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Item","col","s","alignItems","Flex","direction","padding","width","PaperPlane","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { Layouts } from '@strapi/admin/strapi-admin';
|
|
2
|
+
import { Layouts, RESPONSIVE_DEFAULT_SPACING } from '@strapi/admin/strapi-admin';
|
|
3
3
|
import { Main, Box, Grid, Flex, Typography, LinkButton } from '@strapi/design-system';
|
|
4
4
|
import { PaperPlane, Check, ExternalLink } from '@strapi/icons';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
@@ -21,8 +21,8 @@ const PurchaseContentReleases = ()=>{
|
|
|
21
21
|
})
|
|
22
22
|
}),
|
|
23
23
|
/*#__PURE__*/ jsx(Box, {
|
|
24
|
-
marginLeft:
|
|
25
|
-
marginRight:
|
|
24
|
+
marginLeft: RESPONSIVE_DEFAULT_SPACING,
|
|
25
|
+
marginRight: RESPONSIVE_DEFAULT_SPACING,
|
|
26
26
|
shadow: "filterShadow",
|
|
27
27
|
hasRadius: true,
|
|
28
28
|
background: "neutral0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PurchaseContentReleases.mjs","sources":["../../../admin/src/pages/PurchaseContentReleases.tsx"],"sourcesContent":["import { Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, PaperPlane } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseContentReleases = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <Layouts.Root>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'content-releases.pages.Releases.title',\n defaultMessage: 'Releases',\n })}\n />\n <Box\n marginLeft={10}\n marginRight={10}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} s={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <PaperPlane fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'pages.PurchaseRelease.description',\n defaultMessage: 'Group content and publish updates together',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks1',\n defaultMessage: 'Add many entries to releases',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks2',\n defaultMessage: 'Quickly identify entries containing errors',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks3',\n defaultMessage: 'Schedule their publication, or publish them manually',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/releases?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-content-releases-illustration\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'top left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </Layouts.Root>\n );\n};\n\nexport { PurchaseContentReleases };\n"],"names":["PurchaseContentReleases","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","Layouts","Root","_jsxs","Main","Header","title","id","defaultMessage","Box","marginLeft","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Item","col","s","alignItems","Flex","direction","padding","width","PaperPlane","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PurchaseContentReleases.mjs","sources":["../../../admin/src/pages/PurchaseContentReleases.tsx"],"sourcesContent":["import { Layouts, RESPONSIVE_DEFAULT_SPACING } from '@strapi/admin/strapi-admin';\nimport { Box, Main, Flex, Typography, Grid, LinkButton } from '@strapi/design-system';\nimport { ExternalLink, Check, PaperPlane } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport darkIllustration from '../assets/purchase-page-illustration-dark.svg';\nimport lightIllustration from '../assets/purchase-page-illustration-light.svg';\nimport { useTypedSelector } from '../modules/hooks';\n\nconst PurchaseContentReleases = () => {\n const { formatMessage } = useIntl();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n\n const illustration = currentTheme === 'light' ? lightIllustration : darkIllustration;\n return (\n <Layouts.Root>\n <Main>\n <Layouts.Header\n title={formatMessage({\n id: 'content-releases.pages.Releases.title',\n defaultMessage: 'Releases',\n })}\n />\n <Box\n marginLeft={RESPONSIVE_DEFAULT_SPACING}\n marginRight={RESPONSIVE_DEFAULT_SPACING}\n shadow=\"filterShadow\"\n hasRadius\n background=\"neutral0\"\n borderColor={'neutral150'}\n overflow={'hidden'}\n >\n <Grid.Root>\n <Grid.Item col={6} s={12} alignItems={'flex-start'}>\n <Flex direction=\"column\" alignItems=\"flex-start\" padding={7} width={'100%'}>\n <Flex>\n <PaperPlane fill=\"primary600\" width={`24px`} height={`24px`} />\n </Flex>\n <Flex paddingTop={3} paddingBottom={4}>\n <Typography variant=\"beta\" fontWeight=\"bold\">\n {formatMessage({\n id: 'pages.PurchaseRelease.description',\n defaultMessage: 'Group content and publish updates together',\n })}\n </Typography>\n </Flex>\n\n <Flex direction=\"column\" alignItems={'flex-start'} gap={2}>\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks1',\n defaultMessage: 'Add many entries to releases',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks2',\n defaultMessage: 'Quickly identify entries containing errors',\n })}\n </Typography>\n </Flex>\n\n <Flex gap={2}>\n <Check\n fill=\"success500\"\n width={`16px`}\n height={`16px`}\n style={{ flexShrink: 0 }}\n />\n <Typography textColor=\"neutral700\">\n {formatMessage({\n id: 'pages.PurchaseRelease.perks3',\n defaultMessage: 'Schedule their publication, or publish them manually',\n })}\n </Typography>\n </Flex>\n </Flex>\n\n <Flex gap={2} marginTop={7}>\n <LinkButton\n variant=\"default\"\n href=\"https://strapi.io/pricing-self-hosted?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.upgrade.cta',\n defaultMessage: 'Upgrade',\n })}\n </LinkButton>\n <LinkButton\n variant=\"tertiary\"\n endIcon={<ExternalLink />}\n href=\"https://strapi.io/features/releases?utm_campaign=In-Product-CTA&utm_source=Releases\"\n >\n {formatMessage({\n id: 'Settings.page.purchase.learn-more.cta',\n defaultMessage: 'Learn more',\n })}\n </LinkButton>\n </Flex>\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} background=\"primary100\" minHeight={'280px'}>\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <img\n src={illustration}\n alt=\"purchase-page-content-releases-illustration\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'top left',\n }}\n />\n </div>\n </Grid.Item>\n </Grid.Root>\n </Box>\n </Main>\n </Layouts.Root>\n );\n};\n\nexport { PurchaseContentReleases };\n"],"names":["PurchaseContentReleases","formatMessage","useIntl","currentTheme","useTypedSelector","state","admin_app","theme","illustration","lightIllustration","darkIllustration","_jsx","Layouts","Root","_jsxs","Main","Header","title","id","defaultMessage","Box","marginLeft","RESPONSIVE_DEFAULT_SPACING","marginRight","shadow","hasRadius","background","borderColor","overflow","Grid","Item","col","s","alignItems","Flex","direction","padding","width","PaperPlane","fill","height","paddingTop","paddingBottom","Typography","variant","fontWeight","gap","Check","style","flexShrink","textColor","marginTop","LinkButton","href","endIcon","ExternalLink","minHeight","div","position","img","src","alt","top","left","objectFit","objectPosition"],"mappings":"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"}
|