@payloadcms/ui 3.89.0 → 3.90.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/elements/BulkUpload/FormsManager/createFormData.d.ts +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.js +7 -3
- package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +4 -2
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Spinner/index.d.ts +19 -0
- package/dist/elements/Spinner/index.d.ts.map +1 -0
- package/dist/elements/Spinner/index.js +51 -0
- package/dist/elements/Spinner/index.js.map +1 -0
- package/dist/elements/Spinner/index.scss +23 -0
- package/dist/exports/client/index.d.ts +4 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +109 -234
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Tabs/resolveRestoredTabIndex.d.ts +19 -0
- package/dist/fields/Tabs/resolveRestoredTabIndex.d.ts.map +1 -0
- package/dist/fields/Tabs/resolveRestoredTabIndex.js +20 -0
- package/dist/fields/Tabs/resolveRestoredTabIndex.js.map +1 -0
- package/dist/fields/Tabs/resolveRestoredTabIndex.spec.js +53 -0
- package/dist/fields/Tabs/resolveRestoredTabIndex.spec.js.map +1 -0
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +6 -2
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +3 -2
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +32 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +25 -9
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.spec.js +179 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.spec.js.map +1 -0
- package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/icons/Eye/index.scss +1 -1
- package/dist/icons/Refresh/index.d.ts +7 -0
- package/dist/icons/Refresh/index.d.ts.map +1 -0
- package/dist/icons/Refresh/index.js +35 -0
- package/dist/icons/Refresh/index.js.map +1 -0
- package/dist/icons/Refresh/index.scss +11 -0
- package/dist/icons/Spinner/index.d.ts +8 -0
- package/dist/icons/Spinner/index.d.ts.map +1 -0
- package/dist/icons/Spinner/index.js +34 -0
- package/dist/icons/Spinner/index.js.map +1 -0
- package/dist/icons/Spinner/index.scss +12 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +6 -2
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
- package/dist/utilities/schedulePublishHandler.js +4 -1
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
- package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +216 -59
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +11 -0
- package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
- package/dist/views/Edit/Auth/APIKeyGenerationModal.js +113 -0
- package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +10 -30
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.scss +73 -36
- package/dist/views/Edit/Auth/types.d.ts +1 -1
- package/dist/views/Edit/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Auth/types.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/GenerateConfirmation/index.d.ts +0 -7
- package/dist/elements/GenerateConfirmation/index.d.ts.map +0 -1
- package/dist/elements/GenerateConfirmation/index.js +0 -95
- package/dist/elements/GenerateConfirmation/index.js.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useModal } from '@faceless-ui/modal';
|
|
6
|
+
import React, { useCallback } from 'react';
|
|
7
|
+
import { toast } from 'sonner';
|
|
8
|
+
import { Button } from '../../../elements/Button/index.js';
|
|
9
|
+
import { ConfirmationModal } from '../../../elements/ConfirmationModal/index.js';
|
|
10
|
+
import { Translation } from '../../../elements/Translation/index.js';
|
|
11
|
+
import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
|
|
12
|
+
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
13
|
+
export function APIKeyGenerationModal(props) {
|
|
14
|
+
const $ = _c(16);
|
|
15
|
+
const {
|
|
16
|
+
id,
|
|
17
|
+
highlightField,
|
|
18
|
+
icon,
|
|
19
|
+
setKey,
|
|
20
|
+
willInvalidateExistingKey: t0
|
|
21
|
+
} = props;
|
|
22
|
+
const willInvalidateExistingKey = t0 === undefined ? true : t0;
|
|
23
|
+
const {
|
|
24
|
+
id: documentID
|
|
25
|
+
} = useDocumentInfo();
|
|
26
|
+
const {
|
|
27
|
+
toggleModal
|
|
28
|
+
} = useModal();
|
|
29
|
+
const {
|
|
30
|
+
t
|
|
31
|
+
} = useTranslation();
|
|
32
|
+
const modalSlug = `generate-confirmation-${documentID}`;
|
|
33
|
+
let t1;
|
|
34
|
+
if ($[0] !== highlightField || $[1] !== setKey || $[2] !== t) {
|
|
35
|
+
t1 = async () => {
|
|
36
|
+
if ((await setKey()) === false) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
toast.success(t("authentication:newAPIKeyGenerated"));
|
|
40
|
+
highlightField(true);
|
|
41
|
+
};
|
|
42
|
+
$[0] = highlightField;
|
|
43
|
+
$[1] = setKey;
|
|
44
|
+
$[2] = t;
|
|
45
|
+
$[3] = t1;
|
|
46
|
+
} else {
|
|
47
|
+
t1 = $[3];
|
|
48
|
+
}
|
|
49
|
+
const handleGenerate = t1;
|
|
50
|
+
let t2;
|
|
51
|
+
if ($[4] !== documentID || $[5] !== handleGenerate || $[6] !== icon || $[7] !== id || $[8] !== modalSlug || $[9] !== t || $[10] !== toggleModal || $[11] !== willInvalidateExistingKey) {
|
|
52
|
+
let t3;
|
|
53
|
+
if ($[13] !== modalSlug || $[14] !== toggleModal) {
|
|
54
|
+
t3 = () => {
|
|
55
|
+
toggleModal(modalSlug);
|
|
56
|
+
};
|
|
57
|
+
$[13] = modalSlug;
|
|
58
|
+
$[14] = toggleModal;
|
|
59
|
+
$[15] = t3;
|
|
60
|
+
} else {
|
|
61
|
+
t3 = $[15];
|
|
62
|
+
}
|
|
63
|
+
t2 = _jsxs(React.Fragment, {
|
|
64
|
+
children: [_jsx(Button, {
|
|
65
|
+
"aria-label": icon ? t("authentication:generateNewAPIKey") : undefined,
|
|
66
|
+
buttonStyle: icon ? "none" : "secondary",
|
|
67
|
+
className: icon ? "api-key__regenerate-button" : undefined,
|
|
68
|
+
icon,
|
|
69
|
+
id,
|
|
70
|
+
onClick: t3,
|
|
71
|
+
size: "small",
|
|
72
|
+
children: !icon && t("authentication:generateNewAPIKey")
|
|
73
|
+
}), _jsx(ConfirmationModal, {
|
|
74
|
+
body: willInvalidateExistingKey ? _jsx(Translation, {
|
|
75
|
+
elements: {
|
|
76
|
+
1: _temp
|
|
77
|
+
},
|
|
78
|
+
i18nKey: "authentication:generatingNewAPIKeyWillInvalidate",
|
|
79
|
+
t
|
|
80
|
+
}) : _jsxs("span", {
|
|
81
|
+
children: ["Are you sure you want to generate an API key for user ", _jsx("strong", {
|
|
82
|
+
children: documentID
|
|
83
|
+
}), "? This will take effect immediately."]
|
|
84
|
+
}),
|
|
85
|
+
confirmLabel: t("authentication:generate"),
|
|
86
|
+
heading: t("authentication:confirmGeneration"),
|
|
87
|
+
modalSlug,
|
|
88
|
+
onConfirm: handleGenerate
|
|
89
|
+
})]
|
|
90
|
+
});
|
|
91
|
+
$[4] = documentID;
|
|
92
|
+
$[5] = handleGenerate;
|
|
93
|
+
$[6] = icon;
|
|
94
|
+
$[7] = id;
|
|
95
|
+
$[8] = modalSlug;
|
|
96
|
+
$[9] = t;
|
|
97
|
+
$[10] = toggleModal;
|
|
98
|
+
$[11] = willInvalidateExistingKey;
|
|
99
|
+
$[12] = t2;
|
|
100
|
+
} else {
|
|
101
|
+
t2 = $[12];
|
|
102
|
+
}
|
|
103
|
+
return t2;
|
|
104
|
+
}
|
|
105
|
+
function _temp(t0) {
|
|
106
|
+
const {
|
|
107
|
+
children
|
|
108
|
+
} = t0;
|
|
109
|
+
return _jsx("strong", {
|
|
110
|
+
children
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=APIKeyGenerationModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"APIKeyGenerationModal.js","names":["c","_c","useModal","React","useCallback","toast","Button","ConfirmationModal","Translation","useDocumentInfo","useTranslation","APIKeyGenerationModal","props","$","id","highlightField","icon","setKey","willInvalidateExistingKey","t0","undefined","documentID","toggleModal","t","modalSlug","t1","success","handleGenerate","t2","t3","_jsxs","Fragment","children","_jsx","buttonStyle","className","onClick","size","body","elements","1","_temp","i18nKey","heading","onConfirm"],"sources":["../../../../src/views/Edit/Auth/APIKeyGenerationModal.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { ConfirmationModal } from '../../../elements/ConfirmationModal/index.js'\nimport { Translation } from '../../../elements/Translation/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nexport type APIKeyGenerationModalProps = {\n highlightField: (Boolean) => void\n icon?: React.ReactNode\n id?: string\n setKey: () => boolean | Promise<boolean | void> | void\n willInvalidateExistingKey?: boolean\n}\n\nexport type GenerateConfirmationProps = APIKeyGenerationModalProps\n\nexport function APIKeyGenerationModal(props: APIKeyGenerationModalProps) {\n const { id, highlightField, icon, setKey, willInvalidateExistingKey = true } = props\n\n const { id: documentID } = useDocumentInfo()\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n const modalSlug = `generate-confirmation-${documentID}`\n\n const handleGenerate = useCallback(async () => {\n if ((await setKey()) === false) {\n return\n }\n\n toast.success(t('authentication:newAPIKeyGenerated'))\n highlightField(true)\n }, [highlightField, setKey, t])\n\n return (\n <React.Fragment>\n <Button\n aria-label={icon ? t('authentication:generateNewAPIKey') : undefined}\n buttonStyle={icon ? 'none' : 'secondary'}\n className={icon ? 'api-key__regenerate-button' : undefined}\n icon={icon}\n id={id}\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"small\"\n >\n {!icon && t('authentication:generateNewAPIKey')}\n </Button>\n <ConfirmationModal\n body={\n willInvalidateExistingKey ? (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"authentication:generatingNewAPIKeyWillInvalidate\"\n t={t}\n />\n ) : (\n <span>\n Are you sure you want to generate an API key for user <strong>{documentID}</strong>?\n This will take effect immediately.\n </span>\n )\n }\n confirmLabel={t('authentication:generate')}\n heading={t('authentication:confirmGeneration')}\n modalSlug={modalSlug}\n onConfirm={handleGenerate}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/index.tsx"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAWvC,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoQhC,CAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { formatAdminURL, getFieldPermissions } from 'payload/shared';
|
|
6
|
-
import React, {
|
|
6
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
7
7
|
import { toast } from 'sonner';
|
|
8
8
|
import { Button } from '../../../elements/Button/index.js';
|
|
9
9
|
import { EmailAndUsernameFields } from '../../../elements/EmailAndUsername/index.js';
|
|
@@ -34,8 +34,7 @@ export const Auth = props => {
|
|
|
34
34
|
verify
|
|
35
35
|
} = props;
|
|
36
36
|
const [changingPassword, setChangingPassword] = useState(requirePassword);
|
|
37
|
-
const
|
|
38
|
-
const dispatchFields = useFormFields(_temp2);
|
|
37
|
+
const dispatchFields = useFormFields(_temp);
|
|
39
38
|
const modified = useFormModified();
|
|
40
39
|
const {
|
|
41
40
|
i18n,
|
|
@@ -130,10 +129,8 @@ export const Auth = props => {
|
|
|
130
129
|
}
|
|
131
130
|
const enableFields = (!disableLocalStrategy || typeof disableLocalStrategy === "object" && disableLocalStrategy.enableFields === true) && (showUnlock || showPasswordFields);
|
|
132
131
|
const disabled = readOnly || isInitializing || isTrashed;
|
|
133
|
-
const apiKeyPermissions = docPermissions?.fields === true ? true : docPermissions?.fields?.
|
|
134
|
-
const
|
|
135
|
-
const enableAPIKeyReadOnly = readOnly || apiKeyPermissions !== true && !apiKeyPermissions?.update;
|
|
136
|
-
const canReadApiKey = apiKeyPermissions === true || apiKeyPermissions?.read;
|
|
132
|
+
const apiKeyPermissions = docPermissions?.fields === true ? true : docPermissions?.fields?.apiKey;
|
|
133
|
+
const canManageAPIKey = apiKeyPermissions === true || typeof apiKeyPermissions === "object" && Boolean(apiKeyPermissions?.[operation]);
|
|
137
134
|
let t2;
|
|
138
135
|
bb0: {
|
|
139
136
|
if (docPermissions) {
|
|
@@ -237,7 +234,7 @@ export const Auth = props => {
|
|
|
237
234
|
}
|
|
238
235
|
useEffect(t5, t6);
|
|
239
236
|
const showAuthBlock = enableFields;
|
|
240
|
-
const showAPIKeyBlock = useAPIKey &&
|
|
237
|
+
const showAPIKeyBlock = useAPIKey && canManageAPIKey;
|
|
241
238
|
const showVerifyBlock = verify && isEditing;
|
|
242
239
|
if (!(showAuthBlock || showAPIKeyBlock || showVerifyBlock)) {
|
|
243
240
|
return null;
|
|
@@ -301,24 +298,11 @@ export const Auth = props => {
|
|
|
301
298
|
children: t("authentication:forceUnlock")
|
|
302
299
|
})]
|
|
303
300
|
})]
|
|
304
|
-
}),
|
|
301
|
+
}), showAPIKeyBlock && _jsx("div", {
|
|
305
302
|
className: `${baseClass}__api-key`,
|
|
306
|
-
children:
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
name: "enableAPIKey",
|
|
310
|
-
admin: {
|
|
311
|
-
disabled,
|
|
312
|
-
readOnly: enableAPIKeyReadOnly
|
|
313
|
-
},
|
|
314
|
-
label: t("authentication:enableAPIKey")
|
|
315
|
-
},
|
|
316
|
-
path: "enableAPIKey",
|
|
317
|
-
schemaPath: `${collectionSlug}.enableAPIKey`
|
|
318
|
-
}), _jsx(APIKey, {
|
|
319
|
-
enabled: !!enableAPIKey?.value,
|
|
320
|
-
readOnly: apiKeyReadOnly
|
|
321
|
-
})]
|
|
303
|
+
children: _jsx(APIKey, {
|
|
304
|
+
readOnly: disabled,
|
|
305
|
+
reveal: typeof useAPIKey === "object" && useAPIKey.reveal === true
|
|
322
306
|
})
|
|
323
307
|
}), verify && isEditing && _jsx(CheckboxField, {
|
|
324
308
|
field: {
|
|
@@ -334,11 +318,7 @@ export const Auth = props => {
|
|
|
334
318
|
})]
|
|
335
319
|
});
|
|
336
320
|
};
|
|
337
|
-
function _temp(
|
|
338
|
-
const [fields] = t0;
|
|
339
|
-
return fields && fields?.enableAPIKey || null;
|
|
340
|
-
}
|
|
341
|
-
function _temp2(reducer) {
|
|
321
|
+
function _temp(reducer) {
|
|
342
322
|
return reducer[1];
|
|
343
323
|
}
|
|
344
324
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","formatAdminURL","getFieldPermissions","React","Fragment","useCallback","useEffect","useMemo","useState","toast","Button","EmailAndUsernameFields","CheckboxField","ConfirmPasswordField","PasswordField","useFormFields","useFormModified","useConfig","useDocumentInfo","useTranslation","APIKey","baseClass","Auth","props","$","className","collectionSlug","disableLocalStrategy","email","loginWithUsername","operation","readOnly","requirePassword","setValidateBeforeSubmit","useAPIKey","username","verify","changingPassword","setChangingPassword","enableAPIKey","_temp","dispatchFields","_temp2","modified","i18n","t","docPermissions","isEditing","isInitializing","isTrashed","config","t0","routes","t1","api","showPasswordFields","showUnlock","hasPasswordFieldOverride","fields","hasLoginFieldOverride","permissions","passwordPermissions","field","name","type","parentName","create","update","hasEmailAndUsernameFields","requireEmail","allowEmailLogin","t2","emailPermission","t3","usernamePermission","enableFields","disabled","apiKeyPermissions","apiKeyReadOnly","enableAPIKeyReadOnly","canReadApiKey","read","bb0","Boolean","unlock","undefined","hasPermissionToUnlock","changingPassword_0","errorMessage","path","valid","handleChangePassword","t4","url","apiRoute","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","error","t5","t6","showAuthBlock","showAPIKeyBlock","showVerifyBlock","t7","filter","_jsxs","join","children","_jsx","autoComplete","label","required","indexPath","parentPath","parentSchemaPath","schemaPath","buttonStyle","id","onClick","size","admin","enabled","value","reducer"],"sources":["../../../../src/views/Edit/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedFieldPermissions } from 'payload'\n\nimport { formatAdminURL, getFieldPermissions } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { EmailAndUsernameFields } from '../../../elements/EmailAndUsername/index.js'\nimport { CheckboxField } from '../../../fields/Checkbox/index.js'\nimport { ConfirmPasswordField } from '../../../fields/ConfirmPassword/index.js'\nimport { PasswordField } from '../../../fields/Password/index.js'\nimport { useFormFields, useFormModified } from '../../../forms/Form/context.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport './index.scss'\nimport { APIKey } from './APIKey.js'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n loginWithUsername,\n operation,\n readOnly,\n requirePassword,\n setValidateBeforeSubmit,\n useAPIKey,\n username,\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 { docPermissions, isEditing, isInitializing, isTrashed } = useDocumentInfo()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n let showPasswordFields: SanitizedFieldPermissions = true\n let showUnlock = true\n const hasPasswordFieldOverride =\n typeof docPermissions.fields === 'object' && 'password' in docPermissions.fields\n const hasLoginFieldOverride =\n typeof docPermissions.fields === 'object' &&\n ('username' in docPermissions.fields || 'email' in docPermissions.fields)\n\n if (hasPasswordFieldOverride) {\n const { permissions: passwordPermissions } = getFieldPermissions({\n field: { name: 'password', type: 'text' },\n operation,\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (operation === 'create') {\n showPasswordFields =\n passwordPermissions === true ||\n ((typeof passwordPermissions === 'object' &&\n passwordPermissions.create) as SanitizedFieldPermissions)\n } else {\n showPasswordFields =\n passwordPermissions === true ||\n ((typeof passwordPermissions === 'object' &&\n passwordPermissions.update) as SanitizedFieldPermissions)\n }\n }\n\n if (hasLoginFieldOverride) {\n const hasEmailAndUsernameFields =\n loginWithUsername && (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin)\n\n const { operation: emailPermission } = getFieldPermissions({\n field: { name: 'email', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n const { operation: usernamePermission } = getFieldPermissions({\n field: { name: 'username', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (hasEmailAndUsernameFields) {\n showUnlock = usernamePermission || emailPermission\n } else if (loginWithUsername && !hasEmailAndUsernameFields) {\n showUnlock = usernamePermission\n } else {\n showUnlock = emailPermission\n }\n }\n\n const enableFields =\n (!disableLocalStrategy ||\n (typeof disableLocalStrategy === 'object' && disableLocalStrategy.enableFields === true)) &&\n (showUnlock || showPasswordFields)\n\n const disabled = readOnly || isInitializing || isTrashed\n\n const apiKeyPermissions =\n docPermissions?.fields === true ? true : docPermissions?.fields?.enableAPIKey\n\n const apiKeyReadOnly =\n readOnly ||\n apiKeyPermissions === true ||\n (apiKeyPermissions && typeof apiKeyPermissions === 'object' && !apiKeyPermissions?.update)\n\n const enableAPIKeyReadOnly =\n readOnly || (apiKeyPermissions !== true && !apiKeyPermissions?.update)\n\n const canReadApiKey = apiKeyPermissions === true || apiKeyPermissions?.read\n\n const hasPermissionToUnlock: boolean = useMemo(() => {\n if (docPermissions) {\n return Boolean('unlock' in docPermissions ? docPermissions.unlock : undefined)\n }\n\n return false\n }, [docPermissions])\n\n const handleChangePassword = useCallback(\n (changingPassword: boolean) => {\n if (changingPassword) {\n setValidateBeforeSubmit(true)\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'password',\n valid: false,\n })\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'confirm-password',\n valid: false,\n })\n } else {\n setValidateBeforeSubmit(false)\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(changingPassword)\n },\n [dispatchFields, t, setValidateBeforeSubmit],\n )\n\n const unlock = useCallback(async () => {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/unlock`,\n })\n const response = await fetch(url, {\n body:\n loginWithUsername && username ? JSON.stringify({ username }) : JSON.stringify({ email }),\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, api, collectionSlug, email, username, t, loginWithUsername])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n const showAuthBlock = enableFields\n const showAPIKeyBlock = useAPIKey && canReadApiKey\n const showVerifyBlock = verify && isEditing\n\n if (!(showAuthBlock || showAPIKeyBlock || showVerifyBlock)) {\n return null\n }\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {enableFields && (\n <React.Fragment>\n <EmailAndUsernameFields\n loginWithUsername={loginWithUsername}\n operation={operation}\n permissions={docPermissions?.fields}\n readOnly={readOnly || isTrashed}\n t={t}\n />\n {(changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && (\n <div className={`${baseClass}__changing-password`}>\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path=\"password\"\n schemaPath=\"password\"\n />\n <ConfirmPasswordField disabled={readOnly || isTrashed} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"cancel-change-password\"\n onClick={() => handleChangePassword(false)}\n size=\"medium\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword &&\n !requirePassword &&\n !disableLocalStrategy &&\n showPasswordFields && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"medium\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {!changingPassword && operation === 'update' && hasPermissionToUnlock && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled || !showUnlock}\n id=\"force-unlock\"\n onClick={() => void unlock()}\n size=\"medium\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n {canReadApiKey && (\n <Fragment>\n <CheckboxField\n field={{\n name: 'enableAPIKey',\n admin: { disabled, readOnly: enableAPIKeyReadOnly },\n label: t('authentication:enableAPIKey'),\n }}\n path=\"enableAPIKey\"\n schemaPath={`${collectionSlug}.enableAPIKey`}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={apiKeyReadOnly} />\n </Fragment>\n )}\n </div>\n )}\n {verify && isEditing && (\n <CheckboxField\n field={{\n name: '_verified',\n admin: { disabled, readOnly },\n label: t('authentication:verified'),\n }}\n path=\"_verified\"\n schemaPath={`${collectionSlug}._verified`}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","formatAdminURL","getFieldPermissions","React","useCallback","useEffect","useMemo","useState","toast","Button","EmailAndUsernameFields","CheckboxField","ConfirmPasswordField","PasswordField","useFormFields","useFormModified","useConfig","useDocumentInfo","useTranslation","APIKey","baseClass","Auth","props","$","className","collectionSlug","disableLocalStrategy","email","loginWithUsername","operation","readOnly","requirePassword","setValidateBeforeSubmit","useAPIKey","username","verify","changingPassword","setChangingPassword","dispatchFields","_temp","modified","i18n","t","docPermissions","isEditing","isInitializing","isTrashed","config","t0","routes","t1","api","showPasswordFields","showUnlock","hasPasswordFieldOverride","fields","hasLoginFieldOverride","permissions","passwordPermissions","field","name","type","parentName","create","update","hasEmailAndUsernameFields","requireEmail","allowEmailLogin","t2","emailPermission","t3","usernamePermission","enableFields","disabled","apiKeyPermissions","apiKey","canManageAPIKey","Boolean","bb0","unlock","undefined","hasPermissionToUnlock","changingPassword_0","errorMessage","path","valid","handleChangePassword","t4","url","apiRoute","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","error","t5","t6","showAuthBlock","showAPIKeyBlock","showVerifyBlock","t7","filter","_jsxs","join","children","Fragment","_jsx","autoComplete","label","required","indexPath","parentPath","parentSchemaPath","schemaPath","buttonStyle","id","onClick","size","reveal","admin","reducer"],"sources":["../../../../src/views/Edit/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedFieldPermissions } from 'payload'\n\nimport { formatAdminURL, getFieldPermissions } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { EmailAndUsernameFields } from '../../../elements/EmailAndUsername/index.js'\nimport { CheckboxField } from '../../../fields/Checkbox/index.js'\nimport { ConfirmPasswordField } from '../../../fields/ConfirmPassword/index.js'\nimport { PasswordField } from '../../../fields/Password/index.js'\nimport { useFormFields, useFormModified } from '../../../forms/Form/context.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport './index.scss'\nimport { APIKey } from './APIKey.js'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n loginWithUsername,\n operation,\n readOnly,\n requirePassword,\n setValidateBeforeSubmit,\n useAPIKey,\n username,\n verify,\n } = props\n\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n const { docPermissions, isEditing, isInitializing, isTrashed } = useDocumentInfo()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n let showPasswordFields: SanitizedFieldPermissions = true\n let showUnlock = true\n const hasPasswordFieldOverride =\n typeof docPermissions.fields === 'object' && 'password' in docPermissions.fields\n const hasLoginFieldOverride =\n typeof docPermissions.fields === 'object' &&\n ('username' in docPermissions.fields || 'email' in docPermissions.fields)\n\n if (hasPasswordFieldOverride) {\n const { permissions: passwordPermissions } = getFieldPermissions({\n field: { name: 'password', type: 'text' },\n operation,\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (operation === 'create') {\n showPasswordFields =\n passwordPermissions === true ||\n ((typeof passwordPermissions === 'object' &&\n passwordPermissions.create) as SanitizedFieldPermissions)\n } else {\n showPasswordFields =\n passwordPermissions === true ||\n ((typeof passwordPermissions === 'object' &&\n passwordPermissions.update) as SanitizedFieldPermissions)\n }\n }\n\n if (hasLoginFieldOverride) {\n const hasEmailAndUsernameFields =\n loginWithUsername && (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin)\n\n const { operation: emailPermission } = getFieldPermissions({\n field: { name: 'email', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n const { operation: usernamePermission } = getFieldPermissions({\n field: { name: 'username', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (hasEmailAndUsernameFields) {\n showUnlock = usernamePermission || emailPermission\n } else if (loginWithUsername && !hasEmailAndUsernameFields) {\n showUnlock = usernamePermission\n } else {\n showUnlock = emailPermission\n }\n }\n\n const enableFields =\n (!disableLocalStrategy ||\n (typeof disableLocalStrategy === 'object' && disableLocalStrategy.enableFields === true)) &&\n (showUnlock || showPasswordFields)\n\n const disabled = readOnly || isInitializing || isTrashed\n\n const apiKeyPermissions = docPermissions?.fields === true ? true : docPermissions?.fields?.apiKey\n\n const canManageAPIKey =\n apiKeyPermissions === true ||\n (typeof apiKeyPermissions === 'object' && Boolean(apiKeyPermissions?.[operation]))\n const hasPermissionToUnlock: boolean = useMemo(() => {\n if (docPermissions) {\n return Boolean('unlock' in docPermissions ? docPermissions.unlock : undefined)\n }\n\n return false\n }, [docPermissions])\n\n const handleChangePassword = useCallback(\n (changingPassword: boolean) => {\n if (changingPassword) {\n setValidateBeforeSubmit(true)\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'password',\n valid: false,\n })\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'confirm-password',\n valid: false,\n })\n } else {\n setValidateBeforeSubmit(false)\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(changingPassword)\n },\n [dispatchFields, t, setValidateBeforeSubmit],\n )\n\n const unlock = useCallback(async () => {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/unlock`,\n })\n const response = await fetch(url, {\n body:\n loginWithUsername && username ? JSON.stringify({ username }) : JSON.stringify({ email }),\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, api, collectionSlug, email, username, t, loginWithUsername])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n const showAuthBlock = enableFields\n const showAPIKeyBlock = useAPIKey && canManageAPIKey\n const showVerifyBlock = verify && isEditing\n\n if (!(showAuthBlock || showAPIKeyBlock || showVerifyBlock)) {\n return null\n }\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {enableFields && (\n <React.Fragment>\n <EmailAndUsernameFields\n loginWithUsername={loginWithUsername}\n operation={operation}\n permissions={docPermissions?.fields}\n readOnly={readOnly || isTrashed}\n t={t}\n />\n {(changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && (\n <div className={`${baseClass}__changing-password`}>\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path=\"password\"\n schemaPath=\"password\"\n />\n <ConfirmPasswordField disabled={readOnly || isTrashed} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"cancel-change-password\"\n onClick={() => handleChangePassword(false)}\n size=\"medium\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword &&\n !requirePassword &&\n !disableLocalStrategy &&\n showPasswordFields && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"medium\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {!changingPassword && operation === 'update' && hasPermissionToUnlock && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled || !showUnlock}\n id=\"force-unlock\"\n onClick={() => void unlock()}\n size=\"medium\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {showAPIKeyBlock && (\n <div className={`${baseClass}__api-key`}>\n <APIKey\n readOnly={disabled}\n reveal={typeof useAPIKey === 'object' && useAPIKey.reveal === true}\n />\n </div>\n )}\n {verify && isEditing && (\n <CheckboxField\n field={{\n name: '_verified',\n admin: { disabled, readOnly },\n label: t('authentication:verified'),\n }}\n path=\"_verified\"\n schemaPath={`${collectionSlug}._verified`}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.field-type.api-key {
|
|
42
|
-
margin-bottom: var(--base);
|
|
42
|
+
margin-bottom: calc(var(--base) * 0.75);
|
|
43
43
|
|
|
44
44
|
input {
|
|
45
45
|
@include formInput;
|
|
@@ -50,55 +50,92 @@
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
.api-key {
|
|
53
|
-
&
|
|
53
|
+
&__label .copy-to-clipboard {
|
|
54
|
+
display: inline-flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
width: $baseline;
|
|
58
|
+
height: $baseline;
|
|
59
|
+
line-height: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&__actions {
|
|
54
63
|
display: flex;
|
|
55
64
|
align-items: center;
|
|
65
|
+
flex-wrap: wrap;
|
|
66
|
+
gap: calc(var(--base) / 2);
|
|
56
67
|
}
|
|
57
68
|
|
|
58
|
-
&
|
|
69
|
+
&__input-wrap {
|
|
70
|
+
position: relative;
|
|
59
71
|
display: flex;
|
|
60
|
-
align-
|
|
72
|
+
align-items: center;
|
|
73
|
+
|
|
74
|
+
&--has-regenerate input {
|
|
75
|
+
padding-right: calc(var(--base) * 2);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&--highlighted {
|
|
79
|
+
border-radius: var(--style-radius-s);
|
|
80
|
+
box-shadow: 0 0 0 2px var(--theme-success-500);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&__revoke-button.btn {
|
|
85
|
+
cursor: pointer;
|
|
86
|
+
--color: var(--theme-error-500);
|
|
87
|
+
--hover-color: var(--theme-error-400);
|
|
88
|
+
--btn-border: 1px solid var(--theme-error-500);
|
|
89
|
+
--hover-btn-border: 1px solid var(--theme-error-400);
|
|
61
90
|
}
|
|
62
91
|
|
|
63
|
-
&
|
|
92
|
+
&__regenerate-button.btn {
|
|
64
93
|
@include formInput;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: center;
|
|
96
|
+
justify-content: center;
|
|
97
|
+
width: calc(var(--base) * 2);
|
|
98
|
+
height: auto;
|
|
68
99
|
margin: 0 0 0 -1px;
|
|
69
100
|
padding: 0 calc(var(--base) / 2);
|
|
101
|
+
border-top-left-radius: 0;
|
|
102
|
+
border-bottom-left-radius: 0;
|
|
103
|
+
background: var(--theme-elevation-100);
|
|
70
104
|
box-shadow: none;
|
|
71
|
-
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
--btn-icon-size: 18px;
|
|
72
107
|
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
@keyframes highlight {
|
|
77
|
-
0% {
|
|
78
|
-
background: var(--theme-success-250);
|
|
79
|
-
border: 1px solid var(--theme-success-500);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
20% {
|
|
83
|
-
background: var(--theme-input-bg);
|
|
84
|
-
border: 1px solid var(--theme-elevation-250);
|
|
85
|
-
color: var(--theme-text);
|
|
86
|
-
}
|
|
87
108
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
109
|
+
&__toggle-button-wrap {
|
|
110
|
+
display: flex;
|
|
111
|
+
align-self: stretch;
|
|
112
|
+
}
|
|
93
113
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
114
|
+
&__visibility-button.btn {
|
|
115
|
+
position: absolute;
|
|
116
|
+
z-index: 1;
|
|
117
|
+
top: 0;
|
|
118
|
+
right: 0;
|
|
119
|
+
display: flex;
|
|
120
|
+
align-items: center;
|
|
121
|
+
justify-content: center;
|
|
122
|
+
width: calc(var(--base) * 2);
|
|
123
|
+
height: 100%;
|
|
124
|
+
margin: 0;
|
|
125
|
+
padding: 0 calc(var(--base) / 2);
|
|
126
|
+
border: 0;
|
|
127
|
+
background: transparent;
|
|
128
|
+
cursor: pointer;
|
|
129
|
+
--bg-color: transparent;
|
|
130
|
+
--hover-bg: transparent;
|
|
131
|
+
--btn-border: 0;
|
|
132
|
+
--hover-btn-border: 0;
|
|
133
|
+
--btn-icon-size: calc(var(--base) * 0.9);
|
|
134
|
+
|
|
135
|
+
&.api-key__visibility-button--with-regenerate {
|
|
136
|
+
right: calc(var(--base) * 2);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
98
139
|
}
|
|
99
140
|
}
|
|
100
|
-
|
|
101
|
-
.highlight {
|
|
102
|
-
animation: highlight 10s;
|
|
103
|
-
}
|
|
104
141
|
}
|
|
@@ -9,7 +9,7 @@ export type Props = {
|
|
|
9
9
|
readOnly: boolean;
|
|
10
10
|
requirePassword?: boolean;
|
|
11
11
|
setValidateBeforeSubmit: (validate: boolean) => void;
|
|
12
|
-
useAPIKey?:
|
|
12
|
+
useAPIKey?: SanitizedCollectionConfig['auth']['useAPIKey'];
|
|
13
13
|
username: string;
|
|
14
14
|
verify?: boolean;
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjD,oBAAoB,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAA;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAA;IACzE,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,uBAAuB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjD,oBAAoB,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAA;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAA;IACzE,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,uBAAuB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,SAAS,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAA;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/views/Edit/Auth/types.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from 'payload'\n\nexport type Props = {\n className?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n disableLocalStrategy?: SanitizedCollectionConfig['auth']['disableLocalStrategy']\n email: string\n loginWithUsername: SanitizedCollectionConfig['auth']['loginWithUsername']\n operation: 'create' | 'update'\n readOnly: boolean\n requirePassword?: boolean\n setValidateBeforeSubmit: (validate: boolean) => void\n useAPIKey?:
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/views/Edit/Auth/types.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from 'payload'\n\nexport type Props = {\n className?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n disableLocalStrategy?: SanitizedCollectionConfig['auth']['disableLocalStrategy']\n email: string\n loginWithUsername: SanitizedCollectionConfig['auth']['loginWithUsername']\n operation: 'create' | 'update'\n readOnly: boolean\n requirePassword?: boolean\n setValidateBeforeSubmit: (validate: boolean) => void\n useAPIKey?: SanitizedCollectionConfig['auth']['useAPIKey']\n username: string\n verify?: boolean\n}\n"],"mappings":"AAEA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.90.0",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"ts-essentials": "10.0.3",
|
|
138
138
|
"use-context-selector": "2.0.0",
|
|
139
139
|
"uuid": "13.0.2",
|
|
140
|
-
"@payloadcms/translations": "3.
|
|
140
|
+
"@payloadcms/translations": "3.90.0"
|
|
141
141
|
},
|
|
142
142
|
"devDependencies": {
|
|
143
143
|
"@babel/cli": "7.27.2",
|
|
@@ -152,13 +152,13 @@
|
|
|
152
152
|
"esbuild": "0.27.1",
|
|
153
153
|
"esbuild-sass-plugin": "3.3.1",
|
|
154
154
|
"@payloadcms/eslint-config": "3.28.0",
|
|
155
|
-
"payload": "3.
|
|
155
|
+
"payload": "3.90.0"
|
|
156
156
|
},
|
|
157
157
|
"peerDependencies": {
|
|
158
|
-
"next": ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.
|
|
158
|
+
"next": ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.3.3 <17.0.0",
|
|
159
159
|
"react": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
160
160
|
"react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
161
|
-
"payload": "3.
|
|
161
|
+
"payload": "3.90.0"
|
|
162
162
|
},
|
|
163
163
|
"engines": {
|
|
164
164
|
"node": "^18.20.2 || >=20.9.0"
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type GenerateConfirmationProps = {
|
|
3
|
-
highlightField: (Boolean: any) => void;
|
|
4
|
-
setKey: () => void;
|
|
5
|
-
};
|
|
6
|
-
export declare function GenerateConfirmation(props: GenerateConfirmationProps): React.JSX.Element;
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAS1C,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,EAAE,CAAC,OAAO,KAAA,KAAK,IAAI,CAAA;IACjC,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,qBA2CpE"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
-
import { useModal } from '@faceless-ui/modal';
|
|
6
|
-
import React, { useCallback } from 'react';
|
|
7
|
-
import { toast } from 'sonner';
|
|
8
|
-
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
9
|
-
import { useTranslation } from '../../providers/Translation/index.js';
|
|
10
|
-
import { Button } from '../Button/index.js';
|
|
11
|
-
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
12
|
-
import { Translation } from '../Translation/index.js';
|
|
13
|
-
export function GenerateConfirmation(props) {
|
|
14
|
-
const $ = _c(12);
|
|
15
|
-
const {
|
|
16
|
-
highlightField,
|
|
17
|
-
setKey
|
|
18
|
-
} = props;
|
|
19
|
-
const {
|
|
20
|
-
id
|
|
21
|
-
} = useDocumentInfo();
|
|
22
|
-
const {
|
|
23
|
-
toggleModal
|
|
24
|
-
} = useModal();
|
|
25
|
-
const {
|
|
26
|
-
t
|
|
27
|
-
} = useTranslation();
|
|
28
|
-
const modalSlug = `generate-confirmation-${id}`;
|
|
29
|
-
let t0;
|
|
30
|
-
if ($[0] !== highlightField || $[1] !== setKey || $[2] !== t) {
|
|
31
|
-
t0 = () => {
|
|
32
|
-
setKey();
|
|
33
|
-
toast.success(t("authentication:newAPIKeyGenerated"));
|
|
34
|
-
highlightField(true);
|
|
35
|
-
};
|
|
36
|
-
$[0] = highlightField;
|
|
37
|
-
$[1] = setKey;
|
|
38
|
-
$[2] = t;
|
|
39
|
-
$[3] = t0;
|
|
40
|
-
} else {
|
|
41
|
-
t0 = $[3];
|
|
42
|
-
}
|
|
43
|
-
const handleGenerate = t0;
|
|
44
|
-
let t1;
|
|
45
|
-
if ($[4] !== modalSlug || $[5] !== toggleModal) {
|
|
46
|
-
t1 = () => {
|
|
47
|
-
toggleModal(modalSlug);
|
|
48
|
-
};
|
|
49
|
-
$[4] = modalSlug;
|
|
50
|
-
$[5] = toggleModal;
|
|
51
|
-
$[6] = t1;
|
|
52
|
-
} else {
|
|
53
|
-
t1 = $[6];
|
|
54
|
-
}
|
|
55
|
-
let t2;
|
|
56
|
-
if ($[7] !== handleGenerate || $[8] !== modalSlug || $[9] !== t || $[10] !== t1) {
|
|
57
|
-
t2 = _jsxs(React.Fragment, {
|
|
58
|
-
children: [_jsx(Button, {
|
|
59
|
-
buttonStyle: "secondary",
|
|
60
|
-
onClick: t1,
|
|
61
|
-
size: "small",
|
|
62
|
-
children: t("authentication:generateNewAPIKey")
|
|
63
|
-
}), _jsx(ConfirmationModal, {
|
|
64
|
-
body: _jsx(Translation, {
|
|
65
|
-
elements: {
|
|
66
|
-
1: _temp
|
|
67
|
-
},
|
|
68
|
-
i18nKey: "authentication:generatingNewAPIKeyWillInvalidate",
|
|
69
|
-
t
|
|
70
|
-
}),
|
|
71
|
-
confirmLabel: t("authentication:generate"),
|
|
72
|
-
heading: t("authentication:confirmGeneration"),
|
|
73
|
-
modalSlug,
|
|
74
|
-
onConfirm: handleGenerate
|
|
75
|
-
})]
|
|
76
|
-
});
|
|
77
|
-
$[7] = handleGenerate;
|
|
78
|
-
$[8] = modalSlug;
|
|
79
|
-
$[9] = t;
|
|
80
|
-
$[10] = t1;
|
|
81
|
-
$[11] = t2;
|
|
82
|
-
} else {
|
|
83
|
-
t2 = $[11];
|
|
84
|
-
}
|
|
85
|
-
return t2;
|
|
86
|
-
}
|
|
87
|
-
function _temp(t0) {
|
|
88
|
-
const {
|
|
89
|
-
children
|
|
90
|
-
} = t0;
|
|
91
|
-
return _jsx("strong", {
|
|
92
|
-
children
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","toast","useDocumentInfo","useTranslation","Button","ConfirmationModal","Translation","GenerateConfirmation","props","$","highlightField","setKey","id","toggleModal","t","modalSlug","t0","success","handleGenerate","t1","t2","_jsxs","Fragment","children","_jsx","buttonStyle","onClick","size","body","elements","1","_temp","i18nKey","heading","onConfirm"],"sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { Translation } from '../Translation/index.js'\n\nexport type GenerateConfirmationProps = {\n highlightField: (Boolean) => void\n setKey: () => void\n}\n\nexport function GenerateConfirmation(props: GenerateConfirmationProps) {\n const { highlightField, setKey } = props\n\n const { id } = useDocumentInfo()\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n const modalSlug = `generate-confirmation-${id}`\n\n const handleGenerate = useCallback(() => {\n setKey()\n toast.success(t('authentication:newAPIKeyGenerated'))\n highlightField(true)\n }, [highlightField, setKey, t])\n\n return (\n <React.Fragment>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"small\"\n >\n {t('authentication:generateNewAPIKey')}\n </Button>\n <ConfirmationModal\n body={\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"authentication:generatingNewAPIKeyWillInvalidate\"\n t={t}\n />\n }\n confirmLabel={t('authentication:generate')}\n heading={t('authentication:confirmGeneration')}\n modalSlug={modalSlug}\n onConfirm={handleGenerate}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,WAAW,QAAQ;AAO5B,OAAO,SAAAC,qBAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACL;IAAAa,cAAA;IAAAC;EAAA,IAAmCH,KAAA;EAEnC;IAAAI;EAAA,IAAeV,eAAA;EACf;IAAAW;EAAA,IAAwBf,QAAA;EACxB;IAAAgB;EAAA,IAAcX,cAAA;EAEd,MAAAY,SAAA,GAAkB,yBAAyBH,EAAA,EAAI;EAAA,IAAAI,EAAA;EAAA,IAAAP,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAK,CAAA;IAEZE,EAAA,GAAAA,CAAA;MACjCL,MAAA;MACAV,KAAA,CAAAgB,OAAA,CAAcH,CAAA,CAAE;MAChBJ,cAAA,KAAe;IAAA;IACjBD,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAE,MAAA;IAAAF,CAAA,MAAAK,CAAA;IAAAL,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAJA,MAAAS,cAAA,GAAuBF,EAIO;EAAA,IAAAG,EAAA;EAAA,IAAAV,CAAA,QAAAM,SAAA,IAAAN,CAAA,QAAAI,WAAA;IAMfM,EAAA,GAAAA,CAAA;MACPN,WAAA,CAAYE,SAAA;IAAA;IACdN,CAAA,MAAAM,SAAA;IAAAN,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAW,EAAA;EAAA,IAAAX,CAAA,QAAAS,cAAA,IAAAT,CAAA,QAAAM,SAAA,IAAAN,CAAA,QAAAK,CAAA,IAAAL,CAAA,SAAAU,EAAA;IALJC,EAAA,GAAAC,KAAA,CAAAtB,KAAA,CAAAuB,QAAA;MAAAC,QAAA,GACEC,IAAA,CAAApB,MAAA;QAAAqB,WAAA,EACc;QAAAC,OAAA,EACHP,EAET;QAAAQ,IAAA,EACK;QAAAJ,QAAA,EAEJT,CAAA,CAAE;MAAA,C,GAELU,IAAA,CAAAnB,iBAAA;QAAAuB,IAAA,EAEIJ,IAAA,CAAAlB,WAAA;UAAAuB,QAAA;YAAAC,CAAA,EAAAC;UAAA;UAAAC,OAAA,EAIU;UAAAlB;QAAA,C;sBAIEA,CAAA,CAAE;QAAAmB,OAAA,EACPnB,CAAA,CAAE;QAAAC,SAAA;QAAAmB,SAAA,EAEAhB;MAAA,C;;;;;;;;;;SAvBfE,E;;AAhBG,SAAAW,MAAAf,EAAA;EA8BW;IAAAO;EAAA,IAAAP,EAAY;EAAA,OAAKQ,IAAA,CAAC;IAAAD;EAAA,C","ignoreList":[]}
|