@payloadcms/next 3.0.0-beta.44 → 3.0.0-beta.45
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/layouts/Root/index.d.ts +0 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/scss/app.scss +1 -1
- package/dist/scss/toasts.scss +111 -0
- package/dist/views/API/index.client.js +1 -1
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.js +2 -4
- package/dist/views/Edit/Default/Auth/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/ResetPassword/index.client.js +2 -4
- package/dist/views/ResetPassword/index.client.js.map +1 -1
- package/dist/views/Version/Restore/index.js +1 -1
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/package.json +8 -8
- package/dist/scss/toastify.scss +0 -58
package/dist/scss/app.scss
CHANGED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
.payload-toast-container {
|
|
2
|
+
.payload-toast-close-button {
|
|
3
|
+
left: unset;
|
|
4
|
+
right: 0.5rem;
|
|
5
|
+
top: 1.55rem;
|
|
6
|
+
color: var(--theme-elevation-400);
|
|
7
|
+
background: unset;
|
|
8
|
+
border: none;
|
|
9
|
+
display: flex;
|
|
10
|
+
width: 1.25rem;
|
|
11
|
+
height: 1.25rem;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
align-items: center;
|
|
14
|
+
|
|
15
|
+
&:hover {
|
|
16
|
+
background: none;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
svg {
|
|
20
|
+
width: 2rem;
|
|
21
|
+
height: 2rem;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
[dir='RTL'] & {
|
|
25
|
+
right: unset;
|
|
26
|
+
left: 0.5rem;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.payload-toast-item {
|
|
31
|
+
padding: 1rem 2.5rem 1rem 1rem;
|
|
32
|
+
color: var(--theme-text);
|
|
33
|
+
font-style: normal;
|
|
34
|
+
font-weight: 600;
|
|
35
|
+
display: flex;
|
|
36
|
+
gap: 1rem;
|
|
37
|
+
align-items: center;
|
|
38
|
+
width: 100%;
|
|
39
|
+
border-radius: 0.15rem;
|
|
40
|
+
border: 1px solid var(--theme-border-color);
|
|
41
|
+
background: var(--theme-input-bg);
|
|
42
|
+
box-shadow:
|
|
43
|
+
0px 10px 4px -8px rgba(0, 2, 4, 0.02),
|
|
44
|
+
0px 2px 3px 0px rgba(0, 2, 4, 0.05);
|
|
45
|
+
|
|
46
|
+
.toast-content {
|
|
47
|
+
transition: opacity 100ms cubic-bezier(0.55, 0.055, 0.675, 0.19);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&[data-front='false'] {
|
|
51
|
+
.toast-content {
|
|
52
|
+
opacity: 0;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&[data-expanded='true'] {
|
|
57
|
+
.toast-content {
|
|
58
|
+
opacity: 1;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.toast-icon {
|
|
63
|
+
svg {
|
|
64
|
+
width: 2.4rem;
|
|
65
|
+
height: 2.4rem;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&.toast-warning {
|
|
70
|
+
border-color: var(--theme-warning-200);
|
|
71
|
+
background-color: var(--theme-warning-100);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&.toast-error {
|
|
75
|
+
border-color: var(--theme-error-300);
|
|
76
|
+
background-color: var(--theme-error-150);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&.toast-success {
|
|
80
|
+
border-color: var(--theme-success-200);
|
|
81
|
+
background-color: var(--theme-success-100);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&.toast-info {
|
|
85
|
+
border-color: var(--theme-elevation-250);
|
|
86
|
+
background-color: var(--theme-elevation-100);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
[data-theme='light'] & {
|
|
90
|
+
&.toast-warning {
|
|
91
|
+
border-color: var(--theme-warning-550);
|
|
92
|
+
background-color: var(--theme-warning-100);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&.toast-error {
|
|
96
|
+
border-color: var(--theme-error-200);
|
|
97
|
+
background-color: var(--theme-error-50);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&.toast-success {
|
|
101
|
+
border-color: var(--theme-success-550);
|
|
102
|
+
background-color: var(--theme-success-50);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&.toast-info {
|
|
106
|
+
border-color: var(--theme-border-color);
|
|
107
|
+
background-color: var(--theme-elevation-50);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -15,7 +15,7 @@ import { useTranslation } from '@payloadcms/ui/providers/Translation';
|
|
|
15
15
|
import { useSearchParams } from 'next/navigation.js';
|
|
16
16
|
import qs from 'qs';
|
|
17
17
|
import * as React from 'react';
|
|
18
|
-
import { toast } from '
|
|
18
|
+
import { toast } from 'sonner';
|
|
19
19
|
import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
|
|
20
20
|
import { LocaleSelector } from './LocaleSelector/index.js';
|
|
21
21
|
import { RenderJSON } from './RenderJSON/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard'\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { NumberField as NumberInput } from '@payloadcms/ui/fields/Number'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { MinimizeMaximize } from '@payloadcms/ui/icons/MinimizeMaximize'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useLocale } from '@payloadcms/ui/providers/Locale'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useSearchParams } from 'next/navigation.js'\nimport qs from 'qs'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { LocaleSelector } from './LocaleSelector/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\nimport './index.scss'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const {\n collections,\n globals,\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = Boolean(collectionConfig.versions?.drafts)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = Boolean(globalConfig.versions?.drafts)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(searchParams.get('depth') || '1')\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}${qs.stringify(\n {\n depth,\n draft,\n locale,\n },\n { addQueryPrefix: true },\n )}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error)\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error)\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.API} />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <Checkbox\n label={t('version:draft')}\n name=\"draft\"\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <Checkbox\n label={t('authentication:authenticated')}\n name=\"authenticated\"\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />}\n <NumberInput\n label={t('general:depth')}\n max={10}\n min={0}\n name=\"depth\"\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n step={1}\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximize isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"names":["CopyToClipboard","Gutter","Checkbox","NumberField","NumberInput","Form","MinimizeMaximize","SetViewActions","useComponentMap","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","qs","React","toast","SetDocumentStepNav","LocaleSelector","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","searchParams","i18n","t","code","getComponentMap","componentMap","collections","globals","localization","routes","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","Boolean","versions","drafts","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","authenticated","setAuthenticated","fullscreen","setFullscreen","fetchURL","stringify","addQueryPrefix","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","className","filter","join","right","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","actions","actionsMap","Edit","API","div","span","a","href","rel","target","initialState","initialValue","valid","Number","name","onChange","path","max","min","toString","step","button","aria-label","onClick","type","isMinimized","object"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard'\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { NumberField as NumberInput } from '@payloadcms/ui/fields/Number'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { MinimizeMaximize } from '@payloadcms/ui/icons/MinimizeMaximize'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useLocale } from '@payloadcms/ui/providers/Locale'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useSearchParams } from 'next/navigation.js'\nimport qs from 'qs'\nimport * as React from 'react'\nimport { toast } from 'sonner'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { LocaleSelector } from './LocaleSelector/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\nimport './index.scss'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const {\n collections,\n globals,\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = Boolean(collectionConfig.versions?.drafts)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = Boolean(globalConfig.versions?.drafts)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(searchParams.get('depth') || '1')\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}${qs.stringify(\n {\n depth,\n draft,\n locale,\n },\n { addQueryPrefix: true },\n )}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error)\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error)\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.API} />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <Checkbox\n label={t('version:draft')}\n name=\"draft\"\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <Checkbox\n label={t('authentication:authenticated')}\n name=\"authenticated\"\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />}\n <NumberInput\n label={t('general:depth')}\n max={10}\n min={0}\n name=\"depth\"\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n step={1}\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximize isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"names":["CopyToClipboard","Gutter","Checkbox","NumberField","NumberInput","Form","MinimizeMaximize","SetViewActions","useComponentMap","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","qs","React","toast","SetDocumentStepNav","LocaleSelector","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","searchParams","i18n","t","code","getComponentMap","componentMap","collections","globals","localization","routes","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","Boolean","versions","drafts","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","authenticated","setAuthenticated","fullscreen","setFullscreen","fetchURL","stringify","addQueryPrefix","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","className","filter","join","right","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","actions","actionsMap","Edit","API","div","span","a","href","rel","target","initialState","initialValue","valid","Number","name","onChange","path","max","min","toString","step","button","aria-label","onClick","type","isMinimized","object"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAEA,SAASA,eAAe,QAAQ,0CAAyC;AACzE,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,QAAQ,QAAQ,iCAAgC;AACzD,SAASC,eAAeC,WAAW,QAAQ,+BAA8B;AACzE,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,qBAAoB;AACpD,OAAOC,QAAQ,KAAI;AACnB,YAAYC,WAAW,QAAO;AAC9B,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SAASC,kBAAkB,QAAQ,8CAA6C;AAChF,SAASC,cAAc,QAAQ,4BAA2B;AAC1D,SAASC,UAAU,QAAQ,wBAAuB;AAGlD,MAAMC,YAAY;AAElB,OAAO,MAAMC,gBAA0B;IACrC,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAGf;IAExD,MAAMgB,eAAeb;IACrB,MAAM,EAAEc,IAAI,EAAEC,CAAC,EAAE,GAAGhB;IACpB,MAAM,EAAEiB,IAAI,EAAE,GAAGlB;IAEjB,MAAM,EAAEmB,eAAe,EAAE,GAAGtB;IAE5B,MAAMuB,eAAeD,gBAAgB;QAAEP;QAAgBC;IAAW;IAElE,MAAM,EACJQ,WAAW,EACXC,OAAO,EACPC,YAAY,EACZC,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,GAAG7B;IAEJ,MAAM8B,mBACJhB,kBAAkBS,YAAYQ,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKnB;IAEzE,MAAMoB,eAAenB,cAAcS,QAAQO,IAAI,CAAC,CAACI,SAAWA,OAAOF,IAAI,KAAKlB;IAE5E,MAAMqB,gBACJX,gBACAA,aAAaY,OAAO,CAACC,GAAG,CAAC,CAACC,SAAY,CAAA;YAAEC,OAAOD,OAAOC,KAAK;YAAEC,OAAOF,OAAOnB,IAAI;QAAC,CAAA;IAElF,IAAIsB,gBAAyB;IAC7B,IAAIC,cAAsB;IAE1B,IAAIb,kBAAkB;QACpBY,gBAAgBE,QAAQd,iBAAiBe,QAAQ,EAAEC;QACnDH,cAAc,CAAC,CAAC,EAAE7B,eAAe,CAAC,EAAED,GAAG,CAAC;IAC1C;IAEA,IAAIqB,cAAc;QAChBQ,gBAAgBE,QAAQV,aAAaW,QAAQ,EAAEC;QAC/CH,cAAc,CAAC,SAAS,EAAE5B,WAAW,CAAC;IACxC;IAEA,MAAM,CAACgC,MAAMC,QAAQ,GAAG1C,MAAM2C,QAAQ,CAAMjC;IAC5C,MAAM,CAACkC,OAAOC,SAAS,GAAG7C,MAAM2C,QAAQ,CAAUhC,aAAamC,GAAG,CAAC,aAAa;IAChF,MAAM,CAACb,QAAQc,UAAU,GAAG/C,MAAM2C,QAAQ,CAAShC,cAAcmC,IAAI,aAAahC;IAClF,MAAM,CAACkC,OAAOC,SAAS,GAAGjD,MAAM2C,QAAQ,CAAShC,aAAamC,GAAG,CAAC,YAAY;IAC9E,MAAM,CAACI,eAAeC,iBAAiB,GAAGnD,MAAM2C,QAAQ,CAAU;IAClE,MAAM,CAACS,YAAYC,cAAc,GAAGrD,MAAM2C,QAAQ,CAAU;IAE5D,MAAMW,WAAW,CAAC,EAAE/B,UAAU,EAAED,SAAS,EAAEe,YAAY,EAAEtC,GAAGwD,SAAS,CACnE;QACEP;QACAJ;QACAX;IACF,GACA;QAAEuB,gBAAgB;IAAK,GACvB,CAAC;IAEHxD,MAAMyD,SAAS,CAAC;QACd,MAAMC,YAAY;YAChB,IAAI;gBACF,MAAMC,MAAM,MAAMC,MAAMN,UAAU;oBAChCO,aAAaX,gBAAgB,YAAY;oBACzCY,SAAS;wBACP,mBAAmBlD,KAAKmD,QAAQ;oBAClC;oBACAC,QAAQ;gBACV;gBAEA,IAAI;oBACF,MAAMC,OAAO,MAAMN,IAAIM,IAAI;oBAC3BvB,QAAQuB;gBACV,EAAE,OAAOC,OAAO;oBACdjE,MAAMiE,KAAK,CAAC;oBACZC,QAAQD,KAAK,CAACA;gBAChB;YACF,EAAE,OAAOA,OAAO;gBACdjE,MAAMiE,KAAK,CAAC;gBACZC,QAAQD,KAAK,CAACA;YAChB;QACF;QAEA,KAAKR;IACP,GAAG;QAAC9C,KAAKmD,QAAQ;QAAET;QAAUJ;KAAc;IAE3C,qBACE,MAAChE;QACCkF,WAAW;YAAC/D;YAAW+C,cAAc,CAAC,EAAE/C,UAAU,YAAY,CAAC;SAAC,CAACgE,MAAM,CAAC/B,SAASgC,IAAI,CAAC;QACtFC,OAAO;;0BAEP,KAACrE;gBACCM,gBAAgBA;gBAChBgE,aAAa5C,cAAcM;gBAC3BzB,YAAYA;gBACZF,IAAIA;gBACJkE,aAAajD,mBAAmBA,kBAAkBkD,QAAQC,SAASC;gBACnEC,YAAYrD,mBAAmBA,kBAAkBsD,OAAOD,aAAaD;gBACrEG,MAAK;;0BAEP,KAACvF;gBAAewF,SAAShE,cAAciE,YAAYC,MAAMC;;0BACzD,MAACC;gBAAIhB,WAAW,CAAC,EAAE/D,UAAU,eAAe,CAAC;;kCAC3C,MAAC+E;wBAAIhB,WAAW,CAAC,EAAE/D,UAAU,SAAS,CAAC;;0CACrC,MAACgF;gCAAKjB,WAAW,CAAC,EAAE/D,UAAU,OAAO,CAAC;;oCAAE;kDAC9B,KAACpB;wCAAgBkD,OAAOmB;;;;0CAElC,KAACgC;gCAAEC,MAAMjC;gCAAUkC,KAAI;gCAAsBC,QAAO;0CACjDnC;;;;kCAGL,KAAChE;wBACCoG,cAAc;4BACZxC,eAAe;gCACbyC,cAAczC,iBAAiB;gCAC/B0C,OAAO;gCACPzD,OAAOe,iBAAiB;4BAC1B;4BACAF,OAAO;gCACL2C,cAAcE,OAAO7C,SAAS;gCAC9B4C,OAAO;gCACPzD,OAAO0D,OAAO7C,SAAS;4BACzB;4BACAJ,OAAO;gCACL+C,cAAc/C,SAAS;gCACvBgD,OAAO;gCACPzD,OAAOS,SAAS;4BAClB;4BACAX,QAAQ;gCACN0D,cAAc1D;gCACd2D,OAAO;gCACPzD,OAAOF;4BACT;wBACF;kCAEA,cAAA,MAACmD;4BAAIhB,WAAW,CAAC,EAAE/D,UAAU,aAAa,CAAC;;8CACzC,MAAC+E;oCAAIhB,WAAW,CAAC,EAAE/D,UAAU,yBAAyB,CAAC;;wCACpD+B,+BACC,KAACjD;4CACC+C,OAAOrB,EAAE;4CACTiF,MAAK;4CACLC,UAAU,IAAMlD,SAAS,CAACD;4CAC1BoD,MAAK;;sDAGT,KAAC7G;4CACC+C,OAAOrB,EAAE;4CACTiF,MAAK;4CACLC,UAAU,IAAM5C,iBAAiB,CAACD;4CAClC8C,MAAK;;;;gCAGRlE,+BAAiB,KAAC3B;oCAAe2B,eAAeA;oCAAeiE,UAAUhD;;8CAC1E,KAAC1D;oCACC6C,OAAOrB,EAAE;oCACToF,KAAK;oCACLC,KAAK;oCACLJ,MAAK;oCACLC,UAAU,CAAC5D,QAAUc,SAASd,OAAOgE;oCACrCH,MAAK;oCACLI,MAAM;;;;;;;0BAKd,MAAChB;gBAAIhB,WAAW,CAAC,EAAE/D,UAAU,iBAAiB,CAAC;;kCAC7C,KAAC+E;wBAAIhB,WAAW,CAAC,EAAE/D,UAAU,oCAAoC,CAAC;kCAChE,cAAA,KAACgG;4BACCC,cAAW;4BACXlC,WAAW,CAAC,EAAE/D,UAAU,0BAA0B,CAAC;4BACnDkG,SAAS,IAAMlD,cAAc,CAACD;4BAC9BoD,MAAK;sCAEL,cAAA,KAACjH;gCAAiBkH,aAAa,CAACrD;;;;kCAGpC,KAACgC;wBAAIhB,WAAW,CAAC,EAAE/D,UAAU,SAAS,CAAC;kCACrC,cAAA,KAACD;4BAAWsG,QAAQjE;;;;;;;AAK9B,EAAC"}
|
|
@@ -10,7 +10,7 @@ import { useConfig } from '@payloadcms/ui/providers/Config';
|
|
|
10
10
|
import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo';
|
|
11
11
|
import { useTranslation } from '@payloadcms/ui/providers/Translation';
|
|
12
12
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
13
|
-
import { toast } from '
|
|
13
|
+
import { toast } from 'sonner';
|
|
14
14
|
import { APIKey } from './APIKey.js';
|
|
15
15
|
const baseClass = 'auth-fields';
|
|
16
16
|
export const Auth = (props)=>{
|
|
@@ -51,9 +51,7 @@ export const Auth = (props)=>{
|
|
|
51
51
|
method: 'post'
|
|
52
52
|
});
|
|
53
53
|
if (response.status === 200) {
|
|
54
|
-
toast.success(t('authentication:successfullyUnlocked')
|
|
55
|
-
autoClose: 3000
|
|
56
|
-
});
|
|
54
|
+
toast.success(t('authentication:successfullyUnlocked'));
|
|
57
55
|
} else {
|
|
58
56
|
toast.error(t('authentication:failedToUnlock'));
|
|
59
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { ConfirmPassword } from '@payloadcms/ui/fields/ConfirmPassword'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { useFormFields, useFormModified } from '@payloadcms/ui/forms/Form'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { ConfirmPassword } from '@payloadcms/ui/fields/ConfirmPassword'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { useFormFields, useFormModified } from '@payloadcms/ui/forms/Form'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { APIKey } from './APIKey.js'\nimport './index.scss'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n operation,\n readOnly,\n requirePassword,\n useAPIKey,\n verify,\n } = props\n\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const enableAPIKey = useFormFields(([fields]) => (fields && fields?.enableAPIKey) || null)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n const { isInitializing } = useDocumentInfo()\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n\n const handleChangePassword = useCallback(\n (state: boolean) => {\n if (!state) {\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(state)\n },\n [dispatchFields],\n )\n\n const unlock = useCallback(async () => {\n const url = `${serverURL}${api}/${collectionSlug}/unlock`\n const response = await fetch(url, {\n body: JSON.stringify({\n email,\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n if (response.status === 200) {\n toast.success(t('authentication:successfullyUnlocked'))\n } else {\n toast.error(t('authentication:failedToUnlock'))\n }\n }, [i18n, serverURL, api, collectionSlug, email, t])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n if (disableLocalStrategy && !useAPIKey) {\n return null\n }\n\n const disabled = readOnly || isInitializing\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {!disableLocalStrategy && (\n <React.Fragment>\n <Email\n autoComplete=\"email\"\n disabled={disabled}\n label={t('general:email')}\n name=\"email\"\n readOnly={readOnly}\n required\n />\n {(changingPassword || requirePassword) && (\n <div className={`${baseClass}__changing-password`}>\n <Password\n autoComplete=\"off\"\n disabled={disabled}\n label={t('authentication:newPassword')}\n name=\"password\"\n required\n />\n <ConfirmPassword disabled={readOnly} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => handleChangePassword(false)}\n size=\"small\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"small\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {operation === 'update' && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => unlock()}\n size=\"small\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n <Checkbox\n disabled={disabled}\n label={t('authentication:enableAPIKey')}\n name=\"enableAPIKey\"\n readOnly={readOnly}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={readOnly} />\n </div>\n )}\n {verify && (\n <Checkbox\n disabled={disabled}\n label={t('authentication:verified')}\n name=\"_verified\"\n readOnly={readOnly}\n />\n )}\n </div>\n )\n}\n"],"names":["Button","Checkbox","ConfirmPassword","Email","Password","useFormFields","useFormModified","useConfig","useDocumentInfo","useTranslation","React","useCallback","useEffect","useState","toast","APIKey","baseClass","Auth","props","className","collectionSlug","disableLocalStrategy","email","operation","readOnly","requirePassword","useAPIKey","verify","changingPassword","setChangingPassword","enableAPIKey","fields","dispatchFields","reducer","modified","i18n","t","isInitializing","routes","api","serverURL","handleChangePassword","state","type","path","unlock","url","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","error","disabled","div","filter","Boolean","join","Fragment","autoComplete","label","name","required","buttonStyle","onClick","size","id","enabled","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { useConfig } from '@payloadcms/ui/providers/Config';
|
|
|
7
7
|
import { useTranslation } from '@payloadcms/ui/providers/Translation';
|
|
8
8
|
import { email } from 'payload/fields/validations';
|
|
9
9
|
import React, { Fragment, useState } from 'react';
|
|
10
|
-
import { toast } from '
|
|
10
|
+
import { toast } from 'sonner';
|
|
11
11
|
export const ForgotPasswordForm = ()=>{
|
|
12
12
|
const config = useConfig();
|
|
13
13
|
const { admin: { user: userSlug }, routes: { api } } = config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/ForgotPassword/ForgotPasswordForm/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormState, PayloadRequestWithData } from 'payload/types'\n\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { email } from 'payload/fields/validations'\nimport React, { Fragment, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/ForgotPassword/ForgotPasswordForm/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormState, PayloadRequestWithData } from 'payload/types'\n\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { email } from 'payload/fields/validations'\nimport React, { Fragment, useState } from 'react'\nimport { toast } from 'sonner'\n\nexport const ForgotPasswordForm: React.FC = () => {\n const config = useConfig()\n\n const {\n admin: { user: userSlug },\n routes: { api },\n } = config\n\n const { t } = useTranslation()\n const [hasSubmitted, setHasSubmitted] = useState(false)\n\n const handleResponse = (res) => {\n res.json().then(\n () => {\n setHasSubmitted(true)\n },\n () => {\n toast.error(t('authentication:emailNotValid'))\n },\n )\n }\n\n const initialState: FormState = {\n email: {\n initialValue: '',\n valid: true,\n value: undefined,\n },\n }\n\n if (hasSubmitted) {\n return (\n <Fragment>\n <h1>{t('authentication:emailSent')}</h1>\n <p>{t('authentication:checkYourEmailForPasswordReset')}</p>\n </Fragment>\n )\n }\n\n return (\n <Form\n action={`${api}/${userSlug}/forgot-password`}\n handleResponse={handleResponse}\n initialState={initialState}\n method=\"POST\"\n >\n <h1>{t('authentication:forgotPassword')}</h1>\n <p>{t('authentication:forgotPasswordEmailInstructions')}</p>\n <Email\n autoComplete=\"email\"\n label={t('general:email')}\n name=\"email\"\n required\n validate={(value) =>\n email(value, {\n name: 'email',\n type: 'email',\n data: {},\n preferences: { fields: {} },\n req: { t } as PayloadRequestWithData,\n required: true,\n siblingData: {},\n })\n }\n />\n <FormSubmit>{t('general:submit')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["Email","Form","FormSubmit","useConfig","useTranslation","email","React","Fragment","useState","toast","ForgotPasswordForm","config","admin","user","userSlug","routes","api","t","hasSubmitted","setHasSubmitted","handleResponse","res","json","then","error","initialState","initialValue","valid","value","undefined","h1","p","action","method","autoComplete","label","name","required","validate","type","data","preferences","fields","req","siblingData"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAIA,SAASA,KAAK,QAAQ,8BAA6B;AACnD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,QAAQ,6BAA4B;AAClD,OAAOC,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,QAAO;AACjD,SAASC,KAAK,QAAQ,SAAQ;AAE9B,OAAO,MAAMC,qBAA+B;IAC1C,MAAMC,SAASR;IAEf,MAAM,EACJS,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EACzBC,QAAQ,EAAEC,GAAG,EAAE,EAChB,GAAGL;IAEJ,MAAM,EAAEM,CAAC,EAAE,GAAGb;IACd,MAAM,CAACc,cAAcC,gBAAgB,GAAGX,SAAS;IAEjD,MAAMY,iBAAiB,CAACC;QACtBA,IAAIC,IAAI,GAAGC,IAAI,CACb;YACEJ,gBAAgB;QAClB,GACA;YACEV,MAAMe,KAAK,CAACP,EAAE;QAChB;IAEJ;IAEA,MAAMQ,eAA0B;QAC9BpB,OAAO;YACLqB,cAAc;YACdC,OAAO;YACPC,OAAOC;QACT;IACF;IAEA,IAAIX,cAAc;QAChB,qBACE,MAACX;;8BACC,KAACuB;8BAAIb,EAAE;;8BACP,KAACc;8BAAGd,EAAE;;;;IAGZ;IAEA,qBACE,MAAChB;QACC+B,QAAQ,CAAC,EAAEhB,IAAI,CAAC,EAAEF,SAAS,gBAAgB,CAAC;QAC5CM,gBAAgBA;QAChBK,cAAcA;QACdQ,QAAO;;0BAEP,KAACH;0BAAIb,EAAE;;0BACP,KAACc;0BAAGd,EAAE;;0BACN,KAACjB;gBACCkC,cAAa;gBACbC,OAAOlB,EAAE;gBACTmB,MAAK;gBACLC,QAAQ;gBACRC,UAAU,CAACV,QACTvB,MAAMuB,OAAO;wBACXQ,MAAM;wBACNG,MAAM;wBACNC,MAAM,CAAC;wBACPC,aAAa;4BAAEC,QAAQ,CAAC;wBAAE;wBAC1BC,KAAK;4BAAE1B;wBAAE;wBACToB,UAAU;wBACVO,aAAa,CAAC;oBAChB;;0BAGJ,KAAC1C;0BAAYe,EAAE;;;;AAGrB,EAAC"}
|
|
@@ -10,7 +10,7 @@ import { useConfig } from '@payloadcms/ui/providers/Config';
|
|
|
10
10
|
import { useTranslation } from '@payloadcms/ui/providers/Translation';
|
|
11
11
|
import { useRouter } from 'next/navigation.js';
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import { toast } from '
|
|
13
|
+
import { toast } from 'sonner';
|
|
14
14
|
const initialState = {
|
|
15
15
|
'confirm-password': {
|
|
16
16
|
initialValue: '',
|
|
@@ -34,9 +34,7 @@ export const ResetPasswordClient = ({ token })=>{
|
|
|
34
34
|
history.push(`${admin}`);
|
|
35
35
|
} else {
|
|
36
36
|
history.push(`${admin}/login`);
|
|
37
|
-
toast.success(i18n.t('general:updatedSuccessfully')
|
|
38
|
-
autoClose: 3000
|
|
39
|
-
});
|
|
37
|
+
toast.success(i18n.t('general:updatedSuccessfully'));
|
|
40
38
|
}
|
|
41
39
|
}, [
|
|
42
40
|
fetchFullUser,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/ResetPassword/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\nimport { ConfirmPassword } from '@payloadcms/ui/fields/ConfirmPassword'\nimport { HiddenInput } from '@payloadcms/ui/fields/HiddenInput'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { Form, useFormFields } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/views/ResetPassword/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\nimport { ConfirmPassword } from '@payloadcms/ui/fields/ConfirmPassword'\nimport { HiddenInput } from '@payloadcms/ui/fields/HiddenInput'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { Form, useFormFields } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\nimport { toast } from 'sonner'\n\ntype Args = {\n token: string\n}\n\nconst initialState: FormState = {\n 'confirm-password': {\n initialValue: '',\n valid: false,\n value: '',\n },\n password: {\n initialValue: '',\n valid: false,\n value: '',\n },\n}\n\nexport const ResetPasswordClient: React.FC<Args> = ({ token }) => {\n const i18n = useTranslation()\n const {\n admin: { user: userSlug },\n routes: { admin, api },\n serverURL,\n } = useConfig()\n\n const history = useRouter()\n\n const { fetchFullUser } = useAuth()\n\n const onSuccess = React.useCallback(\n async (data) => {\n if (data.token) {\n await fetchFullUser()\n history.push(`${admin}`)\n } else {\n history.push(`${admin}/login`)\n toast.success(i18n.t('general:updatedSuccessfully'))\n }\n },\n [fetchFullUser, history, admin, i18n],\n )\n\n return (\n <Form\n action={`${serverURL}${api}/${userSlug}/reset-password`}\n initialState={initialState}\n method=\"POST\"\n onSuccess={onSuccess}\n >\n <PasswordToConfirm />\n <ConfirmPassword />\n <HiddenInput forceUsePathFromProps name=\"token\" value={token} />\n <FormSubmit>{i18n.t('authentication:resetPassword')}</FormSubmit>\n </Form>\n )\n}\n\nconst PasswordToConfirm = () => {\n const { t } = useTranslation()\n const { value: confirmValue } = useFormFields(\n ([fields]) => (fields && fields?.['confirm-password']) || null,\n )\n\n const validate = React.useCallback(\n (value: string) => {\n if (!value) {\n return t('validation:required')\n }\n\n if (value === confirmValue) {\n return true\n }\n\n return t('fields:passwordsDoNotMatch')\n },\n [confirmValue, t],\n )\n\n return (\n <Password\n autoComplete=\"off\"\n label={t('authentication:newPassword')}\n name=\"password\"\n required\n validate={validate}\n />\n )\n}\n"],"names":["ConfirmPassword","HiddenInput","Password","Form","useFormFields","FormSubmit","useAuth","useConfig","useTranslation","useRouter","React","toast","initialState","initialValue","valid","value","password","ResetPasswordClient","token","i18n","admin","user","userSlug","routes","api","serverURL","history","fetchFullUser","onSuccess","useCallback","data","push","success","t","action","method","PasswordToConfirm","forceUsePathFromProps","name","confirmValue","fields","validate","autoComplete","label","required"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,SAASA,eAAe,QAAQ,wCAAuC;AACvE,SAASC,WAAW,QAAQ,oCAAmC;AAC/D,SAASC,QAAQ,QAAQ,iCAAgC;AACzD,SAASC,IAAI,EAAEC,aAAa,QAAQ,4BAA2B;AAC/D,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AACzB,SAASC,KAAK,QAAQ,SAAQ;AAM9B,MAAMC,eAA0B;IAC9B,oBAAoB;QAClBC,cAAc;QACdC,OAAO;QACPC,OAAO;IACT;IACAC,UAAU;QACRH,cAAc;QACdC,OAAO;QACPC,OAAO;IACT;AACF;AAEA,OAAO,MAAME,sBAAsC,CAAC,EAAEC,KAAK,EAAE;IAC3D,MAAMC,OAAOX;IACb,MAAM,EACJY,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EACzBC,QAAQ,EAAEH,KAAK,EAAEI,GAAG,EAAE,EACtBC,SAAS,EACV,GAAGlB;IAEJ,MAAMmB,UAAUjB;IAEhB,MAAM,EAAEkB,aAAa,EAAE,GAAGrB;IAE1B,MAAMsB,YAAYlB,MAAMmB,WAAW,CACjC,OAAOC;QACL,IAAIA,KAAKZ,KAAK,EAAE;YACd,MAAMS;YACND,QAAQK,IAAI,CAAC,CAAC,EAAEX,MAAM,CAAC;QACzB,OAAO;YACLM,QAAQK,IAAI,CAAC,CAAC,EAAEX,MAAM,MAAM,CAAC;YAC7BT,MAAMqB,OAAO,CAACb,KAAKc,CAAC,CAAC;QACvB;IACF,GACA;QAACN;QAAeD;QAASN;QAAOD;KAAK;IAGvC,qBACE,MAAChB;QACC+B,QAAQ,CAAC,EAAET,UAAU,EAAED,IAAI,CAAC,EAAEF,SAAS,eAAe,CAAC;QACvDV,cAAcA;QACduB,QAAO;QACPP,WAAWA;;0BAEX,KAACQ;0BACD,KAACpC;0BACD,KAACC;gBAAYoC,qBAAqB;gBAACC,MAAK;gBAAQvB,OAAOG;;0BACvD,KAACb;0BAAYc,KAAKc,CAAC,CAAC;;;;AAG1B,EAAC;AAED,MAAMG,oBAAoB;IACxB,MAAM,EAAEH,CAAC,EAAE,GAAGzB;IACd,MAAM,EAAEO,OAAOwB,YAAY,EAAE,GAAGnC,cAC9B,CAAC,CAACoC,OAAO,GAAK,AAACA,UAAUA,QAAQ,CAAC,mBAAmB,IAAK;IAG5D,MAAMC,WAAW/B,MAAMmB,WAAW,CAChC,CAACd;QACC,IAAI,CAACA,OAAO;YACV,OAAOkB,EAAE;QACX;QAEA,IAAIlB,UAAUwB,cAAc;YAC1B,OAAO;QACT;QAEA,OAAON,EAAE;IACX,GACA;QAACM;QAAcN;KAAE;IAGnB,qBACE,KAAC/B;QACCwC,cAAa;QACbC,OAAOV,EAAE;QACTK,MAAK;QACLM,QAAQ;QACRH,UAAUA;;AAGhB"}
|
|
@@ -10,7 +10,7 @@ import { MinimalTemplate } from '@payloadcms/ui/templates/Minimal';
|
|
|
10
10
|
import { requests } from '@payloadcms/ui/utilities/api';
|
|
11
11
|
import { useRouter } from 'next/navigation.js';
|
|
12
12
|
import React, { Fragment, useCallback, useState } from 'react';
|
|
13
|
-
import { toast } from '
|
|
13
|
+
import { toast } from 'sonner';
|
|
14
14
|
const baseClass = 'restore-version';
|
|
15
15
|
const modalSlug = 'restore-version';
|
|
16
16
|
const Restore = ({ className, collectionSlug, globalSlug, label, originalDocID, versionDate, versionID })=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Modal, useModal } from '@payloadcms/ui/elements/Modal'\nimport { Pill } from '@payloadcms/ui/elements/Pill'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { MinimalTemplate } from '@payloadcms/ui/templates/Minimal'\nimport { requests } from '@payloadcms/ui/utilities/api'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Modal, useModal } from '@payloadcms/ui/elements/Modal'\nimport { Pill } from '@payloadcms/ui/elements/Pill'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { MinimalTemplate } from '@payloadcms/ui/templates/Minimal'\nimport { requests } from '@payloadcms/ui/utilities/api'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\n// import { requests } from '../../../../api'\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n versionDate,\n versionID,\n}) => {\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${api}`\n let redirectURL: string\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}`\n redirectURL = `${admin}/collections/${collectionSlug}/${originalDocID}`\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}`\n redirectURL = `${admin}/globals/${globalSlug}`\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n\n return (\n <Fragment>\n <Pill\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n >\n {t('version:restoreThisVersion')}\n </Pill>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : handleRestore}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"names":["getTranslation","Button","Modal","useModal","Pill","useConfig","useTranslation","MinimalTemplate","requests","useRouter","React","Fragment","useCallback","useState","toast","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","versionDate","versionID","routes","admin","api","serverURL","toggleModal","processing","setProcessing","router","i18n","t","restoreMessage","fetchURL","redirectURL","handleRestore","res","post","headers","language","status","json","success","message","push","error","filter","Boolean","join","onClick","slug","h1","p","buttonStyle","undefined","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,KAAK,EAAEC,QAAQ,QAAQ,gCAA+B;AAC/D,SAASC,IAAI,QAAQ,+BAA8B;AACnD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,+BAA8B;AACvD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAC9D,SAASC,KAAK,QAAQ,SAAQ;AAO9B,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAElB,MAAMC,UAA2B,CAAC,EAChCC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,KAAK,EACLC,aAAa,EACbC,WAAW,EACXC,SAAS,EACV;IACC,MAAM,EACJC,QAAQ,EAAEC,KAAK,EAAEC,GAAG,EAAE,EACtBC,SAAS,EACV,GAAGvB;IACJ,MAAM,EAAEwB,WAAW,EAAE,GAAG1B;IACxB,MAAM,CAAC2B,YAAYC,cAAc,GAAGlB,SAAS;IAC7C,MAAMmB,SAASvB;IACf,MAAM,EAAEwB,IAAI,EAAEC,CAAC,EAAE,GAAG5B;IAEpB,MAAM6B,iBAAiBD,EAAE,gCAAgC;QACvDb,OAAOrB,eAAeqB,OAAOY;QAC7BV;IACF;IAEA,IAAIa,WAAW,CAAC,EAAER,UAAU,EAAED,IAAI,CAAC;IACnC,IAAIU;IAEJ,IAAIlB,gBAAgB;QAClBiB,WAAW,CAAC,EAAEA,SAAS,CAAC,EAAEjB,eAAe,UAAU,EAAEK,UAAU,CAAC;QAChEa,cAAc,CAAC,EAAEX,MAAM,aAAa,EAAEP,eAAe,CAAC,EAAEG,cAAc,CAAC;IACzE;IAEA,IAAIF,YAAY;QACdgB,WAAW,CAAC,EAAEA,SAAS,SAAS,EAAEhB,WAAW,UAAU,EAAEI,UAAU,CAAC;QACpEa,cAAc,CAAC,EAAEX,MAAM,SAAS,EAAEN,WAAW,CAAC;IAChD;IAEA,MAAMkB,gBAAgB1B,YAAY;QAChCmB,cAAc;QAEd,MAAMQ,MAAM,MAAM/B,SAASgC,IAAI,CAACJ,UAAU;YACxCK,SAAS;gBACP,mBAAmBR,KAAKS,QAAQ;YAClC;QACF;QAEA,IAAIH,IAAII,MAAM,KAAK,KAAK;YACtB,MAAMC,OAAO,MAAML,IAAIK,IAAI;YAC3B9B,MAAM+B,OAAO,CAACD,KAAKE,OAAO;YAC1Bd,OAAOe,IAAI,CAACV;QACd,OAAO;YACLvB,MAAMkC,KAAK,CAACd,EAAE;QAChB;IACF,GAAG;QAACE;QAAUC;QAAaH;QAAGD;QAAMD;KAAO;IAE3C,qBACE,MAACrB;;0BACC,KAACP;gBACCc,WAAW;oBAACH;oBAAWG;iBAAU,CAAC+B,MAAM,CAACC,SAASC,IAAI,CAAC;gBACvDC,SAAS,IAAMvB,YAAYb;0BAE1BkB,EAAE;;0BAEL,KAAChC;gBAAMgB,WAAW,CAAC,EAAEH,UAAU,OAAO,CAAC;gBAAEsC,MAAMrC;0BAC7C,cAAA,MAACT;oBAAgBW,WAAW,CAAC,EAAEH,UAAU,gBAAgB,CAAC;;sCACxD,KAACuC;sCAAIpB,EAAE;;sCACP,KAACqB;sCAAGpB;;sCACJ,KAAClC;4BACCuD,aAAY;4BACZJ,SAAStB,aAAa2B,YAAY,IAAM5B,YAAYb;4BACpD0C,MAAK;sCAEJxB,EAAE;;sCAEL,KAACjC;4BAAOmD,SAAStB,aAAa2B,YAAYnB;sCACvCR,aAAaI,EAAE,uBAAuBA,EAAE;;;;;;;AAMrD;AAEA,eAAejB,QAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.45",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"path-to-regexp": "^6.2.1",
|
|
40
40
|
"qs": "6.11.2",
|
|
41
41
|
"react-diff-viewer-continued": "3.2.6",
|
|
42
|
-
"react-toastify": "10.0.5",
|
|
43
42
|
"sass": "1.77.4",
|
|
43
|
+
"sonner": "^1.5.0",
|
|
44
44
|
"ws": "^8.16.0",
|
|
45
|
-
"@payloadcms/graphql": "3.0.0-beta.
|
|
46
|
-
"@payloadcms/
|
|
47
|
-
"@payloadcms/
|
|
45
|
+
"@payloadcms/graphql": "3.0.0-beta.45",
|
|
46
|
+
"@payloadcms/ui": "3.0.0-beta.45",
|
|
47
|
+
"@payloadcms/translations": "3.0.0-beta.45"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@next/eslint-plugin-next": "^14.1.0",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"terser-webpack-plugin": "^5.3.10",
|
|
64
64
|
"webpack": "^5.78.0",
|
|
65
65
|
"webpack-cli": "^5.1.4",
|
|
66
|
-
"
|
|
67
|
-
"
|
|
66
|
+
"payload": "3.0.0-beta.45",
|
|
67
|
+
"@payloadcms/eslint-config": "1.1.1"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"graphql": "^16.8.1",
|
|
71
71
|
"next": "^15.0.0-rc.0",
|
|
72
|
-
"payload": "3.0.0-beta.
|
|
72
|
+
"payload": "3.0.0-beta.45"
|
|
73
73
|
},
|
|
74
74
|
"engines": {
|
|
75
75
|
"node": "^18.20.2 || >=20.9.0"
|
package/dist/scss/toastify.scss
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
@import 'vars';
|
|
2
|
-
|
|
3
|
-
.Toastify {
|
|
4
|
-
.Toastify__toast-container {
|
|
5
|
-
left: base(5);
|
|
6
|
-
transform: none;
|
|
7
|
-
right: base(5);
|
|
8
|
-
width: auto;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.Toastify__toast {
|
|
12
|
-
padding: base(0.5);
|
|
13
|
-
border-radius: $style-radius-m;
|
|
14
|
-
font-weight: 600;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.Toastify__close-button {
|
|
18
|
-
align-self: center;
|
|
19
|
-
opacity: 0.7;
|
|
20
|
-
|
|
21
|
-
&:hover {
|
|
22
|
-
opacity: 1;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.Toastify__toast--success {
|
|
27
|
-
color: var(--color-success-900);
|
|
28
|
-
background: var(--color-success-500);
|
|
29
|
-
|
|
30
|
-
.Toastify__progress-bar {
|
|
31
|
-
background-color: var(--color-success-900);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.Toastify__close-button--success {
|
|
36
|
-
color: var(--color-success-900);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.Toastify__toast--error {
|
|
40
|
-
background: var(--theme-error-500);
|
|
41
|
-
color: #fff;
|
|
42
|
-
|
|
43
|
-
.Toastify__progress-bar {
|
|
44
|
-
background-color: #fff;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.Toastify__close-button--light {
|
|
49
|
-
color: inherit;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@include mid-break {
|
|
53
|
-
.Toastify__toast-container {
|
|
54
|
-
left: $baseline;
|
|
55
|
-
right: $baseline;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|