@workos-inc/widgets 1.7.1 → 1.8.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/CHANGELOG.md +9 -0
- package/dist/cjs/api/endpoint.cjs +1 -0
- package/dist/cjs/api/endpoint.cjs.map +1 -1
- package/dist/cjs/api/endpoint.d.cts +1 -0
- package/dist/cjs/index.cjs +5 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +1 -0
- package/dist/cjs/lib/add-mfa-dialog.cjs +133 -61
- package/dist/cjs/lib/add-mfa-dialog.cjs.map +1 -1
- package/dist/cjs/lib/admin-portal-domain-verification.cjs +41 -5
- package/dist/cjs/lib/admin-portal-domain-verification.cjs.map +1 -1
- package/dist/cjs/lib/admin-portal-sso-connection.cjs +121 -44
- package/dist/cjs/lib/admin-portal-sso-connection.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/api-key-details-card.cjs +25 -3
- package/dist/cjs/lib/api-keys/api-key-details-card.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs +25 -3
- package/dist/cjs/lib/api-keys/api-key-details-dialog.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/api-keys-search.cjs +13 -4
- package/dist/cjs/lib/api-keys/api-keys-search.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/api-keys-table.cjs +94 -12
- package/dist/cjs/lib/api-keys/api-keys-table.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/api-keys.cjs +16 -2
- package/dist/cjs/lib/api-keys/api-keys.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/create-api-key.cjs +172 -20
- package/dist/cjs/lib/api-keys/create-api-key.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/relative-time.cjs +12 -2
- package/dist/cjs/lib/api-keys/relative-time.cjs.map +1 -1
- package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs +49 -7
- package/dist/cjs/lib/api-keys/revoke-api-key-dialog.cjs.map +1 -1
- package/dist/cjs/lib/change-password-dialog.cjs +122 -16
- package/dist/cjs/lib/change-password-dialog.cjs.map +1 -1
- package/dist/cjs/lib/copy-button.cjs +14 -2
- package/dist/cjs/lib/copy-button.cjs.map +1 -1
- package/dist/cjs/lib/copy-button.d.cts +2 -1
- package/dist/cjs/lib/delete-domain-dialog.cjs +52 -19
- package/dist/cjs/lib/delete-domain-dialog.cjs.map +1 -1
- package/dist/cjs/lib/delete-user-dialog.cjs +46 -11
- package/dist/cjs/lib/delete-user-dialog.cjs.map +1 -1
- package/dist/cjs/lib/delete-user-dialog.d.cts +2 -2
- package/dist/cjs/lib/domain-actions.cjs +51 -7
- package/dist/cjs/lib/domain-actions.cjs.map +1 -1
- package/dist/cjs/lib/domain-item.cjs +42 -8
- package/dist/cjs/lib/domain-item.cjs.map +1 -1
- package/dist/cjs/lib/edit-user-profile-dialog.cjs +62 -11
- package/dist/cjs/lib/edit-user-profile-dialog.cjs.map +1 -1
- package/dist/cjs/lib/edit-user-role-dialog.cjs +90 -17
- package/dist/cjs/lib/edit-user-role-dialog.cjs.map +1 -1
- package/dist/cjs/lib/elements.cjs +14 -3
- package/dist/cjs/lib/elements.cjs.map +1 -1
- package/dist/cjs/lib/elements.d.cts +5 -2
- package/dist/cjs/lib/elevated-access.cjs +78 -18
- package/dist/cjs/lib/elevated-access.cjs.map +1 -1
- package/dist/cjs/lib/generic-error.cjs +53 -11
- package/dist/cjs/lib/generic-error.cjs.map +1 -1
- package/dist/cjs/lib/generic-error.d.cts +5 -1
- package/dist/cjs/lib/i18n/intl-context.cjs +47 -0
- package/dist/cjs/lib/i18n/intl-context.cjs.map +1 -0
- package/dist/cjs/lib/i18n/intl-context.d.cts +29 -0
- package/dist/cjs/lib/i18n/translation.cjs +67 -0
- package/dist/cjs/lib/i18n/translation.cjs.map +1 -0
- package/dist/cjs/lib/i18n/translation.d.cts +16 -0
- package/dist/cjs/lib/i18n/use-locale.cjs +33 -0
- package/dist/cjs/lib/i18n/use-locale.cjs.map +1 -0
- package/dist/cjs/lib/i18n/use-locale.d.cts +7 -0
- package/dist/cjs/lib/i18n/use-translation.cjs +47 -0
- package/dist/cjs/lib/i18n/use-translation.cjs.map +1 -0
- package/dist/cjs/lib/i18n/use-translation.d.cts +15 -0
- package/dist/cjs/lib/identity-providers.d.cts +1 -1
- package/dist/cjs/lib/invite-user-dialog.cjs +69 -14
- package/dist/cjs/lib/invite-user-dialog.cjs.map +1 -1
- package/dist/cjs/lib/logout-all-sessions-dialog.cjs +33 -4
- package/dist/cjs/lib/logout-all-sessions-dialog.cjs.map +1 -1
- package/dist/cjs/lib/logout-dialog.cjs +34 -10
- package/dist/cjs/lib/logout-dialog.cjs.map +1 -1
- package/dist/cjs/lib/organization-switcher.cjs +12 -2
- package/dist/cjs/lib/organization-switcher.cjs.map +1 -1
- package/dist/cjs/lib/pipes.cjs +175 -36
- package/dist/cjs/lib/pipes.cjs.map +1 -1
- package/dist/cjs/lib/resend-invite-dialog.cjs +67 -17
- package/dist/cjs/lib/resend-invite-dialog.cjs.map +1 -1
- package/dist/cjs/lib/reset-mfa-dialog.cjs +50 -7
- package/dist/cjs/lib/reset-mfa-dialog.cjs.map +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.cjs +42 -10
- package/dist/cjs/lib/revoke-invite-dialog.cjs.map +1 -1
- package/dist/cjs/lib/save-button.cjs +9 -1
- package/dist/cjs/lib/save-button.cjs.map +1 -1
- package/dist/cjs/lib/set-password-dialog.cjs +101 -13
- package/dist/cjs/lib/set-password-dialog.cjs.map +1 -1
- package/dist/cjs/lib/user-actions-dropdown.cjs +54 -6
- package/dist/cjs/lib/user-actions-dropdown.cjs.map +1 -1
- package/dist/cjs/lib/user-profile.cjs +81 -10
- package/dist/cjs/lib/user-profile.cjs.map +1 -1
- package/dist/cjs/lib/user-security.cjs +127 -25
- package/dist/cjs/lib/user-security.cjs.map +1 -1
- package/dist/cjs/lib/user-sessions.cjs +74 -15
- package/dist/cjs/lib/user-sessions.cjs.map +1 -1
- package/dist/cjs/lib/users-management.cjs +265 -49
- package/dist/cjs/lib/users-management.cjs.map +1 -1
- package/dist/cjs/lib/users-search.cjs +18 -4
- package/dist/cjs/lib/users-search.cjs.map +1 -1
- package/dist/cjs/lib/utils.cjs +10 -7
- package/dist/cjs/lib/utils.cjs.map +1 -1
- package/dist/cjs/lib/utils.d.cts +2 -1
- package/dist/cjs/lib/view-dns-record-dialog.cjs +89 -18
- package/dist/cjs/lib/view-dns-record-dialog.cjs.map +1 -1
- package/dist/cjs/workos-widgets.client.cjs +2 -2
- package/dist/cjs/workos-widgets.client.cjs.map +1 -1
- package/dist/css/lib/provider-icon.css +93 -3
- package/dist/esm/api/endpoint.d.ts +1 -0
- package/dist/esm/api/endpoint.js +1 -0
- package/dist/esm/api/endpoint.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/add-mfa-dialog.js +133 -61
- package/dist/esm/lib/add-mfa-dialog.js.map +1 -1
- package/dist/esm/lib/admin-portal-domain-verification.js +41 -5
- package/dist/esm/lib/admin-portal-domain-verification.js.map +1 -1
- package/dist/esm/lib/admin-portal-sso-connection.js +121 -44
- package/dist/esm/lib/admin-portal-sso-connection.js.map +1 -1
- package/dist/esm/lib/api-keys/api-key-details-card.js +25 -3
- package/dist/esm/lib/api-keys/api-key-details-card.js.map +1 -1
- package/dist/esm/lib/api-keys/api-key-details-dialog.js +25 -3
- package/dist/esm/lib/api-keys/api-key-details-dialog.js.map +1 -1
- package/dist/esm/lib/api-keys/api-keys-search.js +13 -4
- package/dist/esm/lib/api-keys/api-keys-search.js.map +1 -1
- package/dist/esm/lib/api-keys/api-keys-table.js +94 -12
- package/dist/esm/lib/api-keys/api-keys-table.js.map +1 -1
- package/dist/esm/lib/api-keys/api-keys.js +16 -2
- package/dist/esm/lib/api-keys/api-keys.js.map +1 -1
- package/dist/esm/lib/api-keys/create-api-key.js +172 -20
- package/dist/esm/lib/api-keys/create-api-key.js.map +1 -1
- package/dist/esm/lib/api-keys/relative-time.js +12 -2
- package/dist/esm/lib/api-keys/relative-time.js.map +1 -1
- package/dist/esm/lib/api-keys/revoke-api-key-dialog.js +49 -7
- package/dist/esm/lib/api-keys/revoke-api-key-dialog.js.map +1 -1
- package/dist/esm/lib/change-password-dialog.js +122 -16
- package/dist/esm/lib/change-password-dialog.js.map +1 -1
- package/dist/esm/lib/copy-button.d.ts +2 -1
- package/dist/esm/lib/copy-button.js +14 -2
- package/dist/esm/lib/copy-button.js.map +1 -1
- package/dist/esm/lib/delete-domain-dialog.js +52 -19
- package/dist/esm/lib/delete-domain-dialog.js.map +1 -1
- package/dist/esm/lib/delete-user-dialog.d.ts +2 -2
- package/dist/esm/lib/delete-user-dialog.js +36 -11
- package/dist/esm/lib/delete-user-dialog.js.map +1 -1
- package/dist/esm/lib/domain-actions.js +41 -7
- package/dist/esm/lib/domain-actions.js.map +1 -1
- package/dist/esm/lib/domain-item.js +42 -8
- package/dist/esm/lib/domain-item.js.map +1 -1
- package/dist/esm/lib/edit-user-profile-dialog.js +62 -11
- package/dist/esm/lib/edit-user-profile-dialog.js.map +1 -1
- package/dist/esm/lib/edit-user-role-dialog.js +90 -17
- package/dist/esm/lib/edit-user-role-dialog.js.map +1 -1
- package/dist/esm/lib/elements.d.ts +5 -2
- package/dist/esm/lib/elements.js +14 -3
- package/dist/esm/lib/elements.js.map +1 -1
- package/dist/esm/lib/elevated-access.js +78 -18
- package/dist/esm/lib/elevated-access.js.map +1 -1
- package/dist/esm/lib/generic-error.d.ts +5 -1
- package/dist/esm/lib/generic-error.js +53 -11
- package/dist/esm/lib/generic-error.js.map +1 -1
- package/dist/esm/lib/i18n/intl-context.d.ts +29 -0
- package/dist/esm/lib/i18n/intl-context.js +12 -0
- package/dist/esm/lib/i18n/intl-context.js.map +1 -0
- package/dist/esm/lib/i18n/translation.d.ts +16 -0
- package/dist/esm/lib/i18n/translation.js +45 -0
- package/dist/esm/lib/i18n/translation.js.map +1 -0
- package/dist/esm/lib/i18n/use-locale.d.ts +7 -0
- package/dist/esm/lib/i18n/use-locale.js +9 -0
- package/dist/esm/lib/i18n/use-locale.js.map +1 -0
- package/dist/esm/lib/i18n/use-translation.d.ts +15 -0
- package/dist/esm/lib/i18n/use-translation.js +23 -0
- package/dist/esm/lib/i18n/use-translation.js.map +1 -0
- package/dist/esm/lib/identity-providers.d.ts +1 -1
- package/dist/esm/lib/invite-user-dialog.js +70 -15
- package/dist/esm/lib/invite-user-dialog.js.map +1 -1
- package/dist/esm/lib/logout-all-sessions-dialog.js +33 -4
- package/dist/esm/lib/logout-all-sessions-dialog.js.map +1 -1
- package/dist/esm/lib/logout-dialog.js +34 -10
- package/dist/esm/lib/logout-dialog.js.map +1 -1
- package/dist/esm/lib/organization-switcher.js +12 -2
- package/dist/esm/lib/organization-switcher.js.map +1 -1
- package/dist/esm/lib/pipes.js +175 -36
- package/dist/esm/lib/pipes.js.map +1 -1
- package/dist/esm/lib/resend-invite-dialog.js +67 -17
- package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
- package/dist/esm/lib/reset-mfa-dialog.js +50 -7
- package/dist/esm/lib/reset-mfa-dialog.js.map +1 -1
- package/dist/esm/lib/revoke-invite-dialog.js +42 -10
- package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
- package/dist/esm/lib/save-button.js +9 -1
- package/dist/esm/lib/save-button.js.map +1 -1
- package/dist/esm/lib/set-password-dialog.js +101 -13
- package/dist/esm/lib/set-password-dialog.js.map +1 -1
- package/dist/esm/lib/user-actions-dropdown.js +54 -6
- package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
- package/dist/esm/lib/user-profile.js +81 -10
- package/dist/esm/lib/user-profile.js.map +1 -1
- package/dist/esm/lib/user-security.js +127 -25
- package/dist/esm/lib/user-security.js.map +1 -1
- package/dist/esm/lib/user-sessions.js +74 -15
- package/dist/esm/lib/user-sessions.js.map +1 -1
- package/dist/esm/lib/users-management.js +266 -51
- package/dist/esm/lib/users-management.js.map +1 -1
- package/dist/esm/lib/users-search.js +18 -4
- package/dist/esm/lib/users-search.js.map +1 -1
- package/dist/esm/lib/utils.d.ts +2 -1
- package/dist/esm/lib/utils.js +10 -7
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/lib/view-dns-record-dialog.js +89 -18
- package/dist/esm/lib/view-dns-record-dialog.js.map +1 -1
- package/dist/esm/workos-widgets.client.js +2 -2
- package/dist/esm/workos-widgets.client.js.map +1 -1
- package/package.json +13 -4
|
@@ -37,6 +37,7 @@ var React = __toESM(require("react"), 1);
|
|
|
37
37
|
var import_elements = require("./elements.js");
|
|
38
38
|
var import_react_icons = require("@radix-ui/react-icons");
|
|
39
39
|
var import_themes = require("@radix-ui/themes");
|
|
40
|
+
var import_use_translation = require("./i18n/use-translation.js");
|
|
40
41
|
const CopyButton = React.forwardRef(
|
|
41
42
|
function CopyButton2({ value, asChild, children, style, withIcon = false, ...props }, ref) {
|
|
42
43
|
const Comp = asChild ? import_themes.Slot : import_elements.Button;
|
|
@@ -49,14 +50,25 @@ const CopyButton = React.forwardRef(
|
|
|
49
50
|
);
|
|
50
51
|
const CopyIconButton = React.forwardRef(function CopyIconButton2({ value, style, ...props }, ref) {
|
|
51
52
|
const [hasCopied, copy] = useCopy(value);
|
|
53
|
+
const translate = (0, import_use_translation.useTranslation)();
|
|
54
|
+
const copiedText = translate({
|
|
55
|
+
defaultMessage: "Copied",
|
|
56
|
+
id: "xgUx3Z",
|
|
57
|
+
description: "Text shown after content has been copied"
|
|
58
|
+
});
|
|
59
|
+
const copyToClipboardText = translate({
|
|
60
|
+
defaultMessage: "Copy to clipboard",
|
|
61
|
+
id: "h9d9dv",
|
|
62
|
+
description: "Button text to copy content to clipboard"
|
|
63
|
+
});
|
|
52
64
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
53
65
|
import_elements.IconButton,
|
|
54
66
|
{
|
|
55
67
|
type: "button",
|
|
56
68
|
onPointerUp: copy,
|
|
57
69
|
ref,
|
|
58
|
-
title: hasCopied ?
|
|
59
|
-
"aria-label":
|
|
70
|
+
title: hasCopied ? copiedText : copyToClipboardText,
|
|
71
|
+
"aria-label": copyToClipboardText,
|
|
60
72
|
...props,
|
|
61
73
|
children: hasCopied ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.CheckIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.CopyIcon, {})
|
|
62
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/copy-button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { IconButton, Button } from \"./elements.js\";\nimport { CheckIcon, CopyIcon } from \"@radix-ui/react-icons\";\nimport { Slot, Slottable } from \"@radix-ui/themes\";\n\ninterface CopyButtonOwnProps {\n value: string;\n withIcon?: boolean;\n}\n\ninterface CopyButtonProps\n extends CopyButtonOwnProps,\n Omit<React.ComponentProps<typeof Button>, keyof CopyButtonOwnProps> {}\n\nexport const CopyButton = React.forwardRef<HTMLButtonElement, CopyButtonProps>(\n function CopyButton(\n { value, asChild, children, style, withIcon = false, ...props },\n ref,\n ) {\n const Comp = asChild ? Slot : Button;\n const [hasCopied, copy] = useCopy(value);\n return (\n <Comp type=\"button\" onPointerUp={copy} ref={ref} {...props}>\n {withIcon &&\n (hasCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />)}\n <Slottable>{children}</Slottable>\n </Comp>\n );\n },\n);\n\ninterface CopyIconButtonOwnProps {\n value: string;\n}\n\ninterface CopyIconButtonProps\n extends CopyIconButtonOwnProps,\n Omit<\n React.ComponentProps<typeof IconButton>,\n \"asChild\" | \"children\" | keyof CopyIconButtonOwnProps\n > {}\n\nexport const CopyIconButton = React.forwardRef<\n HTMLButtonElement,\n CopyIconButtonProps\n>(function CopyIconButton({ value, style, ...props }, ref) {\n const [hasCopied, copy] = useCopy(value);\n return (\n <IconButton\n type=\"button\"\n onPointerUp={copy}\n ref={ref}\n title={hasCopied ?
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/copy-button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { IconButton, Button } from \"./elements.js\";\nimport { CheckIcon, CopyIcon } from \"@radix-ui/react-icons\";\nimport { Slot, Slottable } from \"@radix-ui/themes\";\nimport { useTranslation } from \"./i18n/use-translation.js\";\n\ninterface CopyButtonOwnProps {\n value: string;\n withIcon?: boolean;\n}\n\ninterface CopyButtonProps\n extends CopyButtonOwnProps,\n Omit<React.ComponentProps<typeof Button>, keyof CopyButtonOwnProps> {}\n\nexport const CopyButton = React.forwardRef<HTMLButtonElement, CopyButtonProps>(\n function CopyButton(\n { value, asChild, children, style, withIcon = false, ...props },\n ref,\n ) {\n const Comp = asChild ? Slot : Button;\n const [hasCopied, copy] = useCopy(value);\n return (\n <Comp type=\"button\" onPointerUp={copy} ref={ref} {...props}>\n {withIcon &&\n (hasCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />)}\n <Slottable>{children}</Slottable>\n </Comp>\n );\n },\n);\n\ninterface CopyIconButtonOwnProps {\n value: string;\n}\n\ninterface CopyIconButtonProps\n extends CopyIconButtonOwnProps,\n Omit<\n React.ComponentProps<typeof IconButton>,\n \"asChild\" | \"children\" | \"title\" | keyof CopyIconButtonOwnProps\n > {\n title?: string;\n}\n\nexport const CopyIconButton = React.forwardRef<\n HTMLButtonElement,\n CopyIconButtonProps\n>(function CopyIconButton({ value, style, ...props }, ref) {\n const [hasCopied, copy] = useCopy(value);\n const translate = useTranslation();\n const copiedText = translate({\n defaultMessage: \"Copied\",\n id: \"xgUx3Z\",\n description: \"Text shown after content has been copied\",\n });\n const copyToClipboardText = translate({\n defaultMessage: \"Copy to clipboard\",\n id: \"h9d9dv\",\n description: \"Button text to copy content to clipboard\",\n });\n return (\n <IconButton\n type=\"button\"\n onPointerUp={copy}\n ref={ref}\n title={hasCopied ? copiedText : copyToClipboardText}\n aria-label={copyToClipboardText}\n {...props}\n >\n {hasCopied ? <CheckIcon /> : <CopyIcon />}\n </IconButton>\n );\n});\n\nfunction useCopy(value: string) {\n const [hasCopied, setHasCopied] = React.useState(false);\n const timeoutRef = React.useRef<number | undefined>(undefined);\n\n const copy = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setHasCopied(true);\n\n // Clear any existing timeout\n if (timeoutRef.current) {\n window.clearTimeout(timeoutRef.current);\n }\n\n // Set new timeout\n timeoutRef.current = window.setTimeout(() => {\n setHasCopied(false);\n }, 3000);\n } catch (err) {\n console.error(\"Failed to copy text:\", err);\n }\n };\n\n // Cleanup timeout on unmount\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n window.clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return [hasCopied, copy] as const;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBM;AAvBN,YAAuB;AACvB,sBAAmC;AACnC,yBAAoC;AACpC,oBAAgC;AAChC,6BAA+B;AAWxB,MAAM,aAAa,MAAM;AAAA,EAC9B,SAASA,YACP,EAAE,OAAO,SAAS,UAAU,OAAO,WAAW,OAAO,GAAG,MAAM,GAC9D,KACA;AACA,UAAM,OAAO,UAAU,qBAAO;AAC9B,UAAM,CAAC,WAAW,IAAI,IAAI,QAAQ,KAAK;AACvC,WACE,6CAAC,QAAK,MAAK,UAAS,aAAa,MAAM,KAAW,GAAG,OAClD;AAAA,mBACE,YAAY,4CAAC,gCAAU,eAAW,MAAC,IAAK,4CAAC,+BAAS,eAAW,MAAC;AAAA,MACjE,4CAAC,2BAAW,UAAS;AAAA,OACvB;AAAA,EAEJ;AACF;AAeO,MAAM,iBAAiB,MAAM,WAGlC,SAASC,gBAAe,EAAE,OAAO,OAAO,GAAG,MAAM,GAAG,KAAK;AACzD,QAAM,CAAC,WAAW,IAAI,IAAI,QAAQ,KAAK;AACvC,QAAM,gBAAY,uCAAe;AACjC,QAAM,aAAa,UAAU;AAAA,IAC3B,gBAAgB;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,EACf,CAAC;AACD,QAAM,sBAAsB,UAAU;AAAA,IACpC,gBAAgB;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,EACf,CAAC;AACD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAa;AAAA,MACb;AAAA,MACA,OAAO,YAAY,aAAa;AAAA,MAChC,cAAY;AAAA,MACX,GAAG;AAAA,MAEH,sBAAY,4CAAC,gCAAU,IAAK,4CAAC,+BAAS;AAAA;AAAA,EACzC;AAEJ,CAAC;AAED,SAAS,QAAQ,OAAe;AAC9B,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,KAAK;AACtD,QAAM,aAAa,MAAM,OAA2B,MAAS;AAE7D,QAAM,OAAO,YAAY;AACvB,QAAI;AACF,YAAM,UAAU,UAAU,UAAU,KAAK;AACzC,mBAAa,IAAI;AAGjB,UAAI,WAAW,SAAS;AACtB,eAAO,aAAa,WAAW,OAAO;AAAA,MACxC;AAGA,iBAAW,UAAU,OAAO,WAAW,MAAM;AAC3C,qBAAa,KAAK;AAAA,MACpB,GAAG,GAAI;AAAA,IACT,SAAS,KAAK;AACZ,cAAQ,MAAM,wBAAwB,GAAG;AAAA,IAC3C;AAAA,EACF;AAGA,QAAM,UAAU,MAAM;AACpB,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,eAAO,aAAa,WAAW,OAAO;AAAA,MACxC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,WAAW,IAAI;AACzB;","names":["CopyButton","CopyIconButton"]}
|
|
@@ -21,7 +21,8 @@ declare const CopyButton: React.ForwardRefExoticComponent<Omit<CopyButtonProps,
|
|
|
21
21
|
interface CopyIconButtonOwnProps {
|
|
22
22
|
value: string;
|
|
23
23
|
}
|
|
24
|
-
interface CopyIconButtonProps extends CopyIconButtonOwnProps, Omit<React.ComponentProps<typeof IconButton>, "asChild" | "children" | keyof CopyIconButtonOwnProps> {
|
|
24
|
+
interface CopyIconButtonProps extends CopyIconButtonOwnProps, Omit<React.ComponentProps<typeof IconButton>, "asChild" | "children" | "title" | keyof CopyIconButtonOwnProps> {
|
|
25
|
+
title?: string;
|
|
25
26
|
}
|
|
26
27
|
declare const CopyIconButton: React.ForwardRefExoticComponent<Omit<CopyIconButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
27
28
|
|
|
@@ -25,29 +25,41 @@ module.exports = __toCommonJS(delete_domain_dialog_exports);
|
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
26
|
var import_themes = require("@radix-ui/themes");
|
|
27
27
|
var import_elements = require("./elements.js");
|
|
28
|
+
var import_translation = require("./i18n/translation.js");
|
|
28
29
|
const DeleteDomainDialog = (props) => {
|
|
29
30
|
const message = (() => {
|
|
30
31
|
switch (props.domain.state) {
|
|
31
32
|
case "Verified":
|
|
32
33
|
case "LegacyVerified":
|
|
33
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
35
|
+
import_translation.Translation,
|
|
36
|
+
{
|
|
37
|
+
defaultMessage: "Users with the email domain {domain} will no longer be considered verified. This action is immediate and cannot be undone.",
|
|
38
|
+
id: "HPEjJe",
|
|
39
|
+
description: "Warning message for removing a verified domain",
|
|
40
|
+
values: { domain: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("b", { children: props.domain.domain }) }
|
|
41
|
+
}
|
|
42
|
+
) }) });
|
|
38
43
|
case "Failed":
|
|
39
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
45
|
+
import_translation.Translation,
|
|
46
|
+
{
|
|
47
|
+
defaultMessage: "Are you sure you want to remove the domain {domain}? This action is immediate and cannot be undone.",
|
|
48
|
+
id: "ig3G/s",
|
|
49
|
+
description: "Warning message for removing a failed domain",
|
|
50
|
+
values: { domain: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("b", { children: props.domain.domain }) }
|
|
51
|
+
}
|
|
52
|
+
) }) });
|
|
45
53
|
default:
|
|
46
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
55
|
+
import_translation.Translation,
|
|
56
|
+
{
|
|
57
|
+
defaultMessage: "Removing {domain} will cancel the DNS record verification process. This action is immediate and cannot be undone.",
|
|
58
|
+
id: "zx2oPb",
|
|
59
|
+
description: "Warning message for removing a domain in verification",
|
|
60
|
+
values: { domain: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("b", { children: props.domain.domain }) }
|
|
61
|
+
}
|
|
62
|
+
) }) });
|
|
51
63
|
}
|
|
52
64
|
})();
|
|
53
65
|
const handleDeleteDomain = () => {
|
|
@@ -57,11 +69,32 @@ const DeleteDomainDialog = (props) => {
|
|
|
57
69
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Root, { open: props.open, onOpenChange: props.onOpenChange, children: [
|
|
58
70
|
props.children && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Trigger, { children: props.children }),
|
|
59
71
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.AlertDialog.Content, { style: { maxWidth: "488px" }, children: [
|
|
60
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { mb: "2", children:
|
|
72
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { mb: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
73
|
+
import_translation.Translation,
|
|
74
|
+
{
|
|
75
|
+
defaultMessage: "Remove domain",
|
|
76
|
+
id: "0stiTP",
|
|
77
|
+
description: "Dialog title for removing a domain"
|
|
78
|
+
}
|
|
79
|
+
) }),
|
|
61
80
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", highContrast: true, children: message }) }),
|
|
62
81
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { justify: "end", gap: "2", mt: "5", children: [
|
|
63
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", children:
|
|
64
|
-
|
|
82
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
83
|
+
import_translation.Translation,
|
|
84
|
+
{
|
|
85
|
+
defaultMessage: "Cancel",
|
|
86
|
+
id: "hHNj31",
|
|
87
|
+
description: "Cancel button text"
|
|
88
|
+
}
|
|
89
|
+
) }) }),
|
|
90
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "destructive", onClick: handleDeleteDomain, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
91
|
+
import_translation.Translation,
|
|
92
|
+
{
|
|
93
|
+
defaultMessage: "Remove domain",
|
|
94
|
+
id: "OkjVyP",
|
|
95
|
+
description: "Confirm button text to remove domain"
|
|
96
|
+
}
|
|
97
|
+
) })
|
|
65
98
|
] })
|
|
66
99
|
] })
|
|
67
100
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/delete-domain-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { AlertDialog, Button } from \"./elements.js\";\n\ninterface DeleteDomainDialogProps {\n children?: React.ReactNode;\n domain: OrganizationDomain;\n onDeleteDomain: (domainId: string) => void;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport const DeleteDomainDialog = (props: DeleteDomainDialogProps) => {\n const message = (() => {\n switch (props.domain.state) {\n case \"Verified\":\n case \"LegacyVerified\":\n return (\n <>\n <Text size=\"2\">\n Users with the email domain
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/delete-domain-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { AlertDialog, Button } from \"./elements.js\";\nimport { Translation } from \"./i18n/translation.js\";\n\ninterface DeleteDomainDialogProps {\n children?: React.ReactNode;\n domain: OrganizationDomain;\n onDeleteDomain: (domainId: string) => void;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport const DeleteDomainDialog = (props: DeleteDomainDialogProps) => {\n const message = (() => {\n switch (props.domain.state) {\n case \"Verified\":\n case \"LegacyVerified\":\n return (\n <>\n <Text size=\"2\">\n <Translation\n defaultMessage=\"Users with the email domain {domain} will no longer be considered verified. This action is immediate and cannot be undone.\"\n id=\"HPEjJe\"\n description=\"Warning message for removing a verified domain\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n </Text>\n </>\n );\n case \"Failed\":\n return (\n <>\n <Text>\n <Translation\n defaultMessage=\"Are you sure you want to remove the domain {domain}? This action is immediate and cannot be undone.\"\n id=\"ig3G/s\"\n description=\"Warning message for removing a failed domain\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n </Text>\n </>\n );\n default:\n return (\n <>\n <Text>\n <Translation\n defaultMessage=\"Removing {domain} will cancel the DNS record verification process. This action is immediate and cannot be undone.\"\n id=\"zx2oPb\"\n description=\"Warning message for removing a domain in verification\"\n values={{ domain: <b>{props.domain.domain}</b> }}\n />\n </Text>\n </>\n );\n }\n })();\n\n const handleDeleteDomain = () => {\n props.onDeleteDomain(props.domain.id);\n props.onOpenChange(false);\n };\n\n return (\n <AlertDialog.Root open={props.open} onOpenChange={props.onOpenChange}>\n {props.children && (\n <AlertDialog.Trigger>{props.children}</AlertDialog.Trigger>\n )}\n\n <AlertDialog.Content style={{ maxWidth: \"488px\" }}>\n <AlertDialog.Title mb=\"2\">\n <Translation\n defaultMessage=\"Remove domain\"\n id=\"0stiTP\"\n description=\"Dialog title for removing a domain\"\n />\n </AlertDialog.Title>\n <AlertDialog.Description>\n <Text size=\"2\" highContrast>\n {message}\n </Text>\n </AlertDialog.Description>\n <Flex justify=\"end\" gap=\"2\" mt=\"5\">\n <AlertDialog.Cancel>\n <Button variant=\"secondary\">\n <Translation\n defaultMessage=\"Cancel\"\n id=\"hHNj31\"\n description=\"Cancel button text\"\n />\n </Button>\n </AlertDialog.Cancel>\n <Button variant=\"destructive\" onClick={handleDeleteDomain}>\n <Translation\n defaultMessage=\"Remove domain\"\n id=\"OkjVyP\"\n description=\"Confirm button text to remove domain\"\n />\n </Button>\n </Flex>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBU;AAnBV,oBAA2B;AAE3B,sBAAoC;AACpC,yBAA4B;AAUrB,MAAM,qBAAqB,CAAC,UAAmC;AACpE,QAAM,WAAW,MAAM;AACrB,YAAQ,MAAM,OAAO,OAAO;AAAA,MAC1B,KAAK;AAAA,MACL,KAAK;AACH,eACE,2EACE,sDAAC,sBAAK,MAAK,KACT;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,MAEJ,KAAK;AACH,eACE,2EACE,sDAAC,sBACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,MAEJ;AACE,eACE,2EACE,sDAAC,sBACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,4CAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,IAEN;AAAA,EACF,GAAG;AAEH,QAAM,qBAAqB,MAAM;AAC/B,UAAM,eAAe,MAAM,OAAO,EAAE;AACpC,UAAM,aAAa,KAAK;AAAA,EAC1B;AAEA,SACE,6CAAC,4BAAY,MAAZ,EAAiB,MAAM,MAAM,MAAM,cAAc,MAAM,cACrD;AAAA,UAAM,YACL,4CAAC,4BAAY,SAAZ,EAAqB,gBAAM,UAAS;AAAA,IAGvC,6CAAC,4BAAY,SAAZ,EAAoB,OAAO,EAAE,UAAU,QAAQ,GAC9C;AAAA,kDAAC,4BAAY,OAAZ,EAAkB,IAAG,KACpB;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd,GACF;AAAA,MACA,4CAAC,4BAAY,aAAZ,EACC,sDAAC,sBAAK,MAAK,KAAI,cAAY,MACxB,mBACH,GACF;AAAA,MACA,6CAAC,sBAAK,SAAQ,OAAM,KAAI,KAAI,IAAG,KAC7B;AAAA,oDAAC,4BAAY,QAAZ,EACC,sDAAC,0BAAO,SAAQ,aACd;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF,GACF;AAAA,QACA,4CAAC,0BAAO,SAAQ,eAAc,SAAS,oBACrC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
9
|
var __export = (target, all) => {
|
|
8
10
|
for (var name in all)
|
|
@@ -16,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
18
|
}
|
|
17
19
|
return to;
|
|
18
20
|
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
19
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
30
|
var delete_user_dialog_exports = {};
|
|
21
31
|
__export(delete_user_dialog_exports, {
|
|
@@ -23,17 +33,18 @@ __export(delete_user_dialog_exports, {
|
|
|
23
33
|
});
|
|
24
34
|
module.exports = __toCommonJS(delete_user_dialog_exports);
|
|
25
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
+
var React = __toESM(require("react"), 1);
|
|
26
37
|
var import_themes = require("@radix-ui/themes");
|
|
27
|
-
var import_react = require("react");
|
|
28
38
|
var import_user = require("./api/user.js");
|
|
29
39
|
var import_elements = require("./elements.js");
|
|
40
|
+
var import_translation = require("./i18n/translation.js");
|
|
30
41
|
function DeleteUserDialog({
|
|
31
42
|
children,
|
|
32
43
|
user,
|
|
33
44
|
...props
|
|
34
45
|
}) {
|
|
35
46
|
const deleteUser = (0, import_user.useDeleteUser)();
|
|
36
|
-
const inputRef =
|
|
47
|
+
const inputRef = React.useRef(null);
|
|
37
48
|
const onSubmitForm = () => {
|
|
38
49
|
deleteUser.mutate(
|
|
39
50
|
{ userId: user.id },
|
|
@@ -56,13 +67,23 @@ function DeleteUserDialog({
|
|
|
56
67
|
});
|
|
57
68
|
},
|
|
58
69
|
children: [
|
|
59
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { children:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
70
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Title, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
71
|
+
import_translation.Translation,
|
|
72
|
+
{
|
|
73
|
+
defaultMessage: "Remove user",
|
|
74
|
+
id: "N8aD60",
|
|
75
|
+
description: "Dialog title for removing a user"
|
|
76
|
+
}
|
|
77
|
+
) }),
|
|
78
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { direction: "column", gap: "3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
79
|
+
import_translation.Translation,
|
|
80
|
+
{
|
|
81
|
+
defaultMessage: "Are you sure you want to remove {email}? This action is immediate and cannot be undone.",
|
|
82
|
+
id: "4zDwGl",
|
|
83
|
+
description: "Warning message for removing a user",
|
|
84
|
+
values: { email: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { weight: "bold", children: user.email }) }
|
|
85
|
+
}
|
|
86
|
+
) }) }),
|
|
66
87
|
deleteUser.error ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Callout.Root, { color: "red", mt: "4", mb: "-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Callout.Text, { children: getMutationErrorMessage(deleteUser.error) }) }) : null,
|
|
67
88
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { gap: "3", justify: "end", mt: "5", asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
68
89
|
"form",
|
|
@@ -72,14 +93,28 @@ function DeleteUserDialog({
|
|
|
72
93
|
onSubmitForm();
|
|
73
94
|
},
|
|
74
95
|
children: [
|
|
75
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", disabled: deleteUser.isPending, children:
|
|
96
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.AlertDialog.Cancel, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.Button, { variant: "secondary", disabled: deleteUser.isPending, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
97
|
+
import_translation.Translation,
|
|
98
|
+
{
|
|
99
|
+
defaultMessage: "Cancel",
|
|
100
|
+
id: "hHNj31",
|
|
101
|
+
description: "Cancel button text"
|
|
102
|
+
}
|
|
103
|
+
) }) }),
|
|
76
104
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
77
105
|
import_elements.Button,
|
|
78
106
|
{
|
|
79
107
|
variant: "destructive",
|
|
80
108
|
type: "submit",
|
|
81
109
|
loading: deleteUser.isPending,
|
|
82
|
-
children:
|
|
110
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
111
|
+
import_translation.Translation,
|
|
112
|
+
{
|
|
113
|
+
defaultMessage: "Remove",
|
|
114
|
+
id: "DJXWAJ",
|
|
115
|
+
description: "Confirm button text to remove user"
|
|
116
|
+
}
|
|
117
|
+
)
|
|
83
118
|
}
|
|
84
119
|
)
|
|
85
120
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/delete-user-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Callout, Flex, Text, VisuallyHidden } from \"@radix-ui/themes\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/delete-user-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Callout, Flex, Text, VisuallyHidden } from \"@radix-ui/themes\";\nimport { useDeleteUser } from \"./api/user.js\";\nimport { AlertDialog, Button } from \"./elements.js\";\nimport { Member } from \"../api/endpoint.js\";\nimport { Translation } from \"./i18n/translation.js\";\n\ninterface DeleteUserDialogProps extends AlertDialog.RootProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n user: Member;\n children?: React.ReactNode;\n}\n\nexport function DeleteUserDialog({\n children,\n user,\n ...props\n}: DeleteUserDialogProps) {\n const deleteUser = useDeleteUser();\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const onSubmitForm = () => {\n deleteUser.mutate(\n { userId: user.id },\n {\n onSuccess: () => {\n props.onOpenChange(false);\n },\n },\n );\n };\n\n return (\n <AlertDialog.Root {...props}>\n {children && <AlertDialog.Trigger>{children}</AlertDialog.Trigger>}\n\n <AlertDialog.Content\n maxWidth=\"480px\"\n onOpenAutoFocus={() => {\n requestAnimationFrame(() => {\n inputRef.current?.focus();\n });\n }}\n >\n <AlertDialog.Title>\n <Translation\n defaultMessage=\"Remove user\"\n id=\"N8aD60\"\n description=\"Dialog title for removing a user\"\n />\n </AlertDialog.Title>\n <Flex direction=\"column\" gap=\"3\">\n <AlertDialog.Description>\n <Translation\n defaultMessage=\"Are you sure you want to remove {email}? This action is immediate and cannot be undone.\"\n id=\"4zDwGl\"\n description=\"Warning message for removing a user\"\n values={{ email: <Text weight=\"bold\">{user.email}</Text> }}\n />\n </AlertDialog.Description>\n </Flex>\n\n {deleteUser.error ? (\n <Callout.Root color=\"red\" mt=\"4\" mb=\"-2\">\n <Callout.Text>\n {getMutationErrorMessage(deleteUser.error)}\n </Callout.Text>\n </Callout.Root>\n ) : null}\n\n <Flex gap=\"3\" justify=\"end\" mt=\"5\" asChild>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n onSubmitForm();\n }}\n >\n <AlertDialog.Cancel>\n <Button variant=\"secondary\" disabled={deleteUser.isPending}>\n <Translation\n defaultMessage=\"Cancel\"\n id=\"hHNj31\"\n description=\"Cancel button text\"\n />\n </Button>\n </AlertDialog.Cancel>\n\n <Button\n variant=\"destructive\"\n type=\"submit\"\n loading={deleteUser.isPending}\n >\n <Translation\n defaultMessage=\"Remove\"\n id=\"DJXWAJ\"\n description=\"Confirm button text to remove user\"\n />\n </Button>\n </form>\n </Flex>\n {/* mirror errors in a live region */}\n <VisuallyHidden asChild>\n <section aria-live=\"polite\">\n {getMutationErrorMessage(deleteUser.error)}\n </section>\n </VisuallyHidden>\n </AlertDialog.Content>\n </AlertDialog.Root>\n );\n}\n\nfunction getMutationErrorMessage(error: unknown) {\n if (!error) {\n return null;\n }\n // TODO Handle server errors\n return \"There was an error removing the user. Please try again.\";\n}\n\n// Note: Error messages in getMutationErrorMessage are kept as plain strings\n// since they are displayed dynamically\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCmB;AAnCnB,YAAuB;AACvB,oBAAoD;AACpD,kBAA8B;AAC9B,sBAAoC;AAEpC,yBAA4B;AASrB,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA0B;AACxB,QAAM,iBAAa,2BAAc;AACjC,QAAM,WAAW,MAAM,OAAyB,IAAI;AAEpD,QAAM,eAAe,MAAM;AACzB,eAAW;AAAA,MACT,EAAE,QAAQ,KAAK,GAAG;AAAA,MAClB;AAAA,QACE,WAAW,MAAM;AACf,gBAAM,aAAa,KAAK;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SACE,6CAAC,4BAAY,MAAZ,EAAkB,GAAG,OACnB;AAAA,gBAAY,4CAAC,4BAAY,SAAZ,EAAqB,UAAS;AAAA,IAE5C;AAAA,MAAC,4BAAY;AAAA,MAAZ;AAAA,QACC,UAAS;AAAA,QACT,iBAAiB,MAAM;AACrB,gCAAsB,MAAM;AAC1B,qBAAS,SAAS,MAAM;AAAA,UAC1B,CAAC;AAAA,QACH;AAAA,QAEA;AAAA,sDAAC,4BAAY,OAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,gBAAe;AAAA,cACf,IAAG;AAAA,cACH,aAAY;AAAA;AAAA,UACd,GACF;AAAA,UACA,4CAAC,sBAAK,WAAU,UAAS,KAAI,KAC3B,sDAAC,4BAAY,aAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,gBAAe;AAAA,cACf,IAAG;AAAA,cACH,aAAY;AAAA,cACZ,QAAQ,EAAE,OAAO,4CAAC,sBAAK,QAAO,QAAQ,eAAK,OAAM,EAAQ;AAAA;AAAA,UAC3D,GACF,GACF;AAAA,UAEC,WAAW,QACV,4CAAC,sBAAQ,MAAR,EAAa,OAAM,OAAM,IAAG,KAAI,IAAG,MAClC,sDAAC,sBAAQ,MAAR,EACE,kCAAwB,WAAW,KAAK,GAC3C,GACF,IACE;AAAA,UAEJ,4CAAC,sBAAK,KAAI,KAAI,SAAQ,OAAM,IAAG,KAAI,SAAO,MACxC;AAAA,YAAC;AAAA;AAAA,cACC,UAAU,CAAC,UAAU;AACnB,sBAAM,eAAe;AACrB,6BAAa;AAAA,cACf;AAAA,cAEA;AAAA,4DAAC,4BAAY,QAAZ,EACC,sDAAC,0BAAO,SAAQ,aAAY,UAAU,WAAW,WAC/C;AAAA,kBAAC;AAAA;AAAA,oBACC,gBAAe;AAAA,oBACf,IAAG;AAAA,oBACH,aAAY;AAAA;AAAA,gBACd,GACF,GACF;AAAA,gBAEA;AAAA,kBAAC;AAAA;AAAA,oBACC,SAAQ;AAAA,oBACR,MAAK;AAAA,oBACL,SAAS,WAAW;AAAA,oBAEpB;AAAA,sBAAC;AAAA;AAAA,wBACC,gBAAe;AAAA,wBACf,IAAG;AAAA,wBACH,aAAY;AAAA;AAAA,oBACd;AAAA;AAAA,gBACF;AAAA;AAAA;AAAA,UACF,GACF;AAAA,UAEA,4CAAC,gCAAe,SAAO,MACrB,sDAAC,aAAQ,aAAU,UAChB,kCAAwB,WAAW,KAAK,GAC3C,GACF;AAAA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,SAAS,wBAAwB,OAAgB;AAC/C,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
import { RootProps } from '@radix-ui/themes/components/alert-dialog';
|
|
4
4
|
import { Member } from '../api/endpoint.cjs';
|
|
5
5
|
import '@tanstack/react-query';
|
|
@@ -9,7 +9,7 @@ interface DeleteUserDialogProps extends RootProps {
|
|
|
9
9
|
open: boolean;
|
|
10
10
|
onOpenChange: (open: boolean) => void;
|
|
11
11
|
user: Member;
|
|
12
|
-
children?: ReactNode;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
13
|
}
|
|
14
14
|
declare function DeleteUserDialog({ children, user, ...props }: DeleteUserDialogProps): react_jsx_runtime.JSX.Element;
|
|
15
15
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
9
|
var __export = (target, all) => {
|
|
8
10
|
for (var name in all)
|
|
@@ -16,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
18
|
}
|
|
17
19
|
return to;
|
|
18
20
|
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
19
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
30
|
var domain_actions_exports = {};
|
|
21
31
|
__export(domain_actions_exports, {
|
|
@@ -23,18 +33,31 @@ __export(domain_actions_exports, {
|
|
|
23
33
|
});
|
|
24
34
|
module.exports = __toCommonJS(domain_actions_exports);
|
|
25
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
-
var
|
|
36
|
+
var React = __toESM(require("react"), 1);
|
|
27
37
|
var import_react_icons = require("@radix-ui/react-icons");
|
|
28
38
|
var import_view_dns_record_dialog = require("./view-dns-record-dialog.js");
|
|
29
39
|
var import_delete_domain_dialog = require("./delete-domain-dialog.js");
|
|
30
40
|
var import_elements = require("./elements.js");
|
|
41
|
+
var import_translation = require("./i18n/translation.js");
|
|
42
|
+
var import_use_translation = require("./i18n/use-translation.js");
|
|
31
43
|
const DomainActions = ({
|
|
32
44
|
domain,
|
|
33
45
|
onDeleteDomain,
|
|
34
46
|
onReverifyDomain
|
|
35
47
|
}) => {
|
|
36
|
-
const [viewDnsDialogOpen, setViewDnsDialogOpen] =
|
|
37
|
-
const [deleteDialogOpen, setDeleteDialogOpen] =
|
|
48
|
+
const [viewDnsDialogOpen, setViewDnsDialogOpen] = React.useState(false);
|
|
49
|
+
const [deleteDialogOpen, setDeleteDialogOpen] = React.useState(false);
|
|
50
|
+
const translate = (0, import_use_translation.useTranslation)();
|
|
51
|
+
const removeDomainTitle = translate({
|
|
52
|
+
defaultMessage: "Remove domain",
|
|
53
|
+
id: "Cf+uSR",
|
|
54
|
+
description: "Title for remove domain button"
|
|
55
|
+
});
|
|
56
|
+
const domainActionsTitle = translate({
|
|
57
|
+
defaultMessage: "Domain actions",
|
|
58
|
+
id: "l1mz5q",
|
|
59
|
+
description: "Title for domain actions dropdown button"
|
|
60
|
+
});
|
|
38
61
|
if (domain.state === "Verified") {
|
|
39
62
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
40
63
|
import_delete_domain_dialog.DeleteDomainDialog,
|
|
@@ -43,21 +66,42 @@ const DomainActions = ({
|
|
|
43
66
|
onDeleteDomain,
|
|
44
67
|
open: deleteDialogOpen,
|
|
45
68
|
onOpenChange: setDeleteDialogOpen,
|
|
46
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.IconButton, {
|
|
69
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.IconButton, { title: removeDomainTitle, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.TrashIcon, {}) })
|
|
47
70
|
}
|
|
48
71
|
) });
|
|
49
72
|
}
|
|
50
73
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
51
74
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.DropdownMenu.Root, { children: [
|
|
52
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DropdownMenu.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.IconButton, {
|
|
75
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DropdownMenu.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.IconButton, { title: domainActionsTitle, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_icons.DotsHorizontalIcon, {}) }) }),
|
|
53
76
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_elements.DropdownMenu.Content, { side: "bottom", align: "end", children: [
|
|
54
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DropdownMenu.Item, { onClick: () => setViewDnsDialogOpen(true), children: domain.state === "Failed" ?
|
|
77
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_elements.DropdownMenu.Item, { onClick: () => setViewDnsDialogOpen(true), children: domain.state === "Failed" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
|
+
import_translation.Translation,
|
|
79
|
+
{
|
|
80
|
+
defaultMessage: "Restart verification",
|
|
81
|
+
id: "ZJYAji",
|
|
82
|
+
description: "Menu option to restart domain verification"
|
|
83
|
+
}
|
|
84
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
85
|
+
import_translation.Translation,
|
|
86
|
+
{
|
|
87
|
+
defaultMessage: "View DNS record",
|
|
88
|
+
id: "74JScV",
|
|
89
|
+
description: "Menu option to view DNS record"
|
|
90
|
+
}
|
|
91
|
+
) }),
|
|
55
92
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
56
93
|
import_elements.DropdownMenu.Item,
|
|
57
94
|
{
|
|
58
95
|
variant: "destructive",
|
|
59
96
|
onClick: () => setDeleteDialogOpen(true),
|
|
60
|
-
children:
|
|
97
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
98
|
+
import_translation.Translation,
|
|
99
|
+
{
|
|
100
|
+
defaultMessage: "Remove domain",
|
|
101
|
+
id: "cO5+D2",
|
|
102
|
+
description: "Menu option to remove a domain"
|
|
103
|
+
}
|
|
104
|
+
)
|
|
61
105
|
}
|
|
62
106
|
)
|
|
63
107
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/domain-actions.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/domain-actions.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { DotsHorizontalIcon, TrashIcon } from \"@radix-ui/react-icons\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { ViewDnsRecordDialog } from \"./view-dns-record-dialog.js\";\nimport { DeleteDomainDialog } from \"./delete-domain-dialog.js\";\nimport { DropdownMenu, IconButton } from \"./elements.js\";\nimport { Translation } from \"./i18n/translation.js\";\nimport { useTranslation } from \"./i18n/use-translation.js\";\n\ninterface DomainActionsProps {\n domain: OrganizationDomain;\n onDeleteDomain: (domainId: string) => void;\n onReverifyDomain: (domainId: string) => void;\n}\n\nexport const DomainActions = ({\n domain,\n onDeleteDomain,\n onReverifyDomain,\n}: DomainActionsProps) => {\n const [viewDnsDialogOpen, setViewDnsDialogOpen] = React.useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = React.useState(false);\n const translate = useTranslation();\n\n const removeDomainTitle = translate({\n defaultMessage: \"Remove domain\",\n id: \"Cf+uSR\",\n description: \"Title for remove domain button\",\n });\n\n const domainActionsTitle = translate({\n defaultMessage: \"Domain actions\",\n id: \"l1mz5q\",\n description: \"Title for domain actions dropdown button\",\n });\n\n if (domain.state === \"Verified\") {\n return (\n <>\n <DeleteDomainDialog\n domain={domain}\n onDeleteDomain={onDeleteDomain}\n open={deleteDialogOpen}\n onOpenChange={setDeleteDialogOpen}\n >\n <IconButton title={removeDomainTitle}>\n <TrashIcon />\n </IconButton>\n </DeleteDomainDialog>\n </>\n );\n }\n\n return (\n <>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger>\n <IconButton title={domainActionsTitle}>\n <DotsHorizontalIcon />\n </IconButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content side=\"bottom\" align=\"end\">\n <DropdownMenu.Item onClick={() => setViewDnsDialogOpen(true)}>\n {domain.state === \"Failed\" ? (\n <Translation\n defaultMessage=\"Restart verification\"\n id=\"ZJYAji\"\n description=\"Menu option to restart domain verification\"\n />\n ) : (\n <Translation\n defaultMessage=\"View DNS record\"\n id=\"74JScV\"\n description=\"Menu option to view DNS record\"\n />\n )}\n </DropdownMenu.Item>\n <DropdownMenu.Item\n variant=\"destructive\"\n onClick={() => setDeleteDialogOpen(true)}\n >\n <Translation\n defaultMessage=\"Remove domain\"\n id=\"cO5+D2\"\n description=\"Menu option to remove a domain\"\n />\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n\n <ViewDnsRecordDialog\n domain={domain}\n onReverifyDomain={onReverifyDomain}\n open={viewDnsDialogOpen}\n onOpenChange={setViewDnsDialogOpen}\n />\n\n <DeleteDomainDialog\n domain={domain}\n onDeleteDomain={onDeleteDomain}\n open={deleteDialogOpen}\n onOpenChange={setDeleteDialogOpen}\n />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCM;AAtCN,YAAuB;AACvB,yBAA8C;AAE9C,oCAAoC;AACpC,kCAAmC;AACnC,sBAAyC;AACzC,yBAA4B;AAC5B,6BAA+B;AAQxB,MAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF,MAA0B;AACxB,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,MAAM,SAAS,KAAK;AACtE,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAS,KAAK;AACpE,QAAM,gBAAY,uCAAe;AAEjC,QAAM,oBAAoB,UAAU;AAAA,IAClC,gBAAgB;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,EACf,CAAC;AAED,QAAM,qBAAqB,UAAU;AAAA,IACnC,gBAAgB;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,EACf,CAAC;AAED,MAAI,OAAO,UAAU,YAAY;AAC/B,WACE,2EACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,cAAc;AAAA,QAEd,sDAAC,8BAAW,OAAO,mBACjB,sDAAC,gCAAU,GACb;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,4EACE;AAAA,iDAAC,6BAAa,MAAb,EACC;AAAA,kDAAC,6BAAa,SAAb,EACC,sDAAC,8BAAW,OAAO,oBACjB,sDAAC,yCAAmB,GACtB,GACF;AAAA,MACA,6CAAC,6BAAa,SAAb,EAAqB,MAAK,UAAS,OAAM,OACxC;AAAA,oDAAC,6BAAa,MAAb,EAAkB,SAAS,MAAM,qBAAqB,IAAI,GACxD,iBAAO,UAAU,WAChB;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,IAEA;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GAEJ;AAAA,QACA;AAAA,UAAC,6BAAa;AAAA,UAAb;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM,oBAAoB,IAAI;AAAA,YAEvC;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAe;AAAA,gBACf,IAAG;AAAA,gBACH,aAAY;AAAA;AAAA,YACd;AAAA;AAAA,QACF;AAAA,SACF;AAAA,OACF;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,cAAc;AAAA;AAAA,IAChB;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,cAAc;AAAA;AAAA,IAChB;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -29,20 +29,33 @@ var import_utils = require("./utils.js");
|
|
|
29
29
|
var import_status = require("./status.js");
|
|
30
30
|
var import_name_server_icon = require("./name-server-icon.js");
|
|
31
31
|
var import_domain_actions = require("./domain-actions.js");
|
|
32
|
+
var import_translation = require("./i18n/translation.js");
|
|
33
|
+
var import_use_locale = require("./i18n/use-locale.js");
|
|
32
34
|
const DomainItem = ({
|
|
33
35
|
domain,
|
|
34
36
|
onDeleteDomain,
|
|
35
37
|
onReverifyDomain
|
|
36
38
|
}) => {
|
|
39
|
+
const locale = (0, import_use_locale.useLocale)();
|
|
37
40
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { gap: "4", align: "center", children: [
|
|
38
41
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon_panel.IconPanel, { color: domain.nameServer === "Other" ? "gray" : "panel", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_name_server_icon.NameServerIcon, { provider: domain.nameServer }) }),
|
|
39
42
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { direction: "column", children: [
|
|
40
43
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", highContrast: true, weight: "bold", as: "p", children: domain.domain }),
|
|
41
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Text, { size: "2", color: "gray", as: "p", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
45
|
+
import_translation.Translation,
|
|
46
|
+
{
|
|
47
|
+
defaultMessage: "Added {timeAgo}",
|
|
48
|
+
id: "DtZ2fb",
|
|
49
|
+
description: "Label showing when the domain was added",
|
|
50
|
+
values: {
|
|
51
|
+
timeAgo: (0, import_utils.getComparativeReadableDate)(
|
|
52
|
+
/* @__PURE__ */ new Date(),
|
|
53
|
+
new Date(domain.createdAt),
|
|
54
|
+
{ locale }
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
) })
|
|
46
59
|
] }),
|
|
47
60
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_themes.Flex, { ml: "auto", mr: "2", gap: "4", align: "center", children: [
|
|
48
61
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes.Flex, { gap: "1", align: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_status.Status, { state: getDomainStatus(domain), children: domainStateToLabel(domain) }) }),
|
|
@@ -61,11 +74,32 @@ const domainStateToLabel = (domain) => {
|
|
|
61
74
|
switch (domain.state) {
|
|
62
75
|
case "Verified":
|
|
63
76
|
case "LegacyVerified":
|
|
64
|
-
return
|
|
77
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
|
+
import_translation.Translation,
|
|
79
|
+
{
|
|
80
|
+
defaultMessage: "Verified",
|
|
81
|
+
id: "T7rpHw",
|
|
82
|
+
description: "Domain verification status indicating the domain is verified"
|
|
83
|
+
}
|
|
84
|
+
);
|
|
65
85
|
case "Pending":
|
|
66
|
-
return
|
|
86
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
87
|
+
import_translation.Translation,
|
|
88
|
+
{
|
|
89
|
+
defaultMessage: "Verification pending",
|
|
90
|
+
id: "gc1yge",
|
|
91
|
+
description: "Domain verification status indicating verification is in progress"
|
|
92
|
+
}
|
|
93
|
+
);
|
|
67
94
|
case "Failed":
|
|
68
|
-
return
|
|
95
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
96
|
+
import_translation.Translation,
|
|
97
|
+
{
|
|
98
|
+
defaultMessage: "Verification failed",
|
|
99
|
+
id: "cbbwqK",
|
|
100
|
+
description: "Domain verification status indicating verification has failed"
|
|
101
|
+
}
|
|
102
|
+
);
|
|
69
103
|
}
|
|
70
104
|
};
|
|
71
105
|
const getDomainStatus = (domain) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/domain-item.tsx"],"sourcesContent":["\"use client\";\n\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { IconPanel } from \"./icon-panel.js\";\nimport { getComparativeReadableDate } from \"./utils.js\";\nimport { Status } from \"./status.js\";\nimport { NameServerIcon } from \"./name-server-icon.js\";\nimport { DomainActions } from \"./domain-actions.js\";\n\ninterface DomainItemProps {\n domain: OrganizationDomain;\n onDeleteDomain: (domainId: string) => void;\n onReverifyDomain: (domainId: string) => void;\n}\n\nexport const DomainItem = ({\n domain,\n onDeleteDomain,\n onReverifyDomain,\n}: DomainItemProps) => {\n return (\n <Flex gap=\"4\" align=\"center\">\n <IconPanel color={domain.nameServer === \"Other\" ? \"gray\" : \"panel\"}>\n <NameServerIcon provider={domain.nameServer} />\n </IconPanel>\n\n <Flex direction=\"column\">\n <Text size=\"2\" highContrast weight=\"bold\" as=\"p\">\n {domain.domain}\n </Text>\n\n <Text size=\"2\" color=\"gray\" as=\"p\">\n Added{\" \"
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/domain-item.tsx"],"sourcesContent":["\"use client\";\n\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { IconPanel } from \"./icon-panel.js\";\nimport { getComparativeReadableDate } from \"./utils.js\";\nimport { Status } from \"./status.js\";\nimport { NameServerIcon } from \"./name-server-icon.js\";\nimport { DomainActions } from \"./domain-actions.js\";\nimport { Translation } from \"./i18n/translation.js\";\nimport { useLocale } from \"./i18n/use-locale.js\";\n\ninterface DomainItemProps {\n domain: OrganizationDomain;\n onDeleteDomain: (domainId: string) => void;\n onReverifyDomain: (domainId: string) => void;\n}\n\nexport const DomainItem = ({\n domain,\n onDeleteDomain,\n onReverifyDomain,\n}: DomainItemProps) => {\n const locale = useLocale();\n\n return (\n <Flex gap=\"4\" align=\"center\">\n <IconPanel color={domain.nameServer === \"Other\" ? \"gray\" : \"panel\"}>\n <NameServerIcon provider={domain.nameServer} />\n </IconPanel>\n\n <Flex direction=\"column\">\n <Text size=\"2\" highContrast weight=\"bold\" as=\"p\">\n {domain.domain}\n </Text>\n\n <Text size=\"2\" color=\"gray\" as=\"p\">\n <Translation\n defaultMessage=\"Added {timeAgo}\"\n id=\"DtZ2fb\"\n description=\"Label showing when the domain was added\"\n values={{\n timeAgo: getComparativeReadableDate(\n new Date(),\n new Date(domain.createdAt),\n { locale },\n ),\n }}\n />\n </Text>\n </Flex>\n\n <Flex ml=\"auto\" mr=\"2\" gap=\"4\" align=\"center\">\n <Flex gap=\"1\" align=\"center\">\n <Status state={getDomainStatus(domain)}>\n {domainStateToLabel(domain)}\n </Status>\n </Flex>\n\n <DomainActions\n domain={domain}\n onDeleteDomain={onDeleteDomain}\n onReverifyDomain={onReverifyDomain}\n />\n </Flex>\n </Flex>\n );\n};\n\nconst domainStateToLabel = (domain: OrganizationDomain) => {\n switch (domain.state) {\n case \"Verified\":\n case \"LegacyVerified\":\n return (\n <Translation\n defaultMessage=\"Verified\"\n id=\"T7rpHw\"\n description=\"Domain verification status indicating the domain is verified\"\n />\n );\n case \"Pending\":\n return (\n <Translation\n defaultMessage=\"Verification pending\"\n id=\"gc1yge\"\n description=\"Domain verification status indicating verification is in progress\"\n />\n );\n case \"Failed\":\n return (\n <Translation\n defaultMessage=\"Verification failed\"\n id=\"cbbwqK\"\n description=\"Domain verification status indicating verification has failed\"\n />\n );\n }\n};\n\nconst getDomainStatus = (domain: OrganizationDomain) => {\n switch (domain.state) {\n case \"Verified\":\n case \"LegacyVerified\":\n return \"success\";\n case \"Pending\":\n return \"waiting\";\n case \"Failed\":\n return \"error\";\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BQ;AA1BR,oBAA2B;AAE3B,wBAA0B;AAC1B,mBAA2C;AAC3C,oBAAuB;AACvB,8BAA+B;AAC/B,4BAA8B;AAC9B,yBAA4B;AAC5B,wBAA0B;AAQnB,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AACrB,QAAM,aAAS,6BAAU;AAEzB,SACE,6CAAC,sBAAK,KAAI,KAAI,OAAM,UAClB;AAAA,gDAAC,+BAAU,OAAO,OAAO,eAAe,UAAU,SAAS,SACzD,sDAAC,0CAAe,UAAU,OAAO,YAAY,GAC/C;AAAA,IAEA,6CAAC,sBAAK,WAAU,UACd;AAAA,kDAAC,sBAAK,MAAK,KAAI,cAAY,MAAC,QAAO,QAAO,IAAG,KAC1C,iBAAO,QACV;AAAA,MAEA,4CAAC,sBAAK,MAAK,KAAI,OAAM,QAAO,IAAG,KAC7B;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA,UACZ,QAAQ;AAAA,YACN,aAAS;AAAA,cACP,oBAAI,KAAK;AAAA,cACT,IAAI,KAAK,OAAO,SAAS;AAAA,cACzB,EAAE,OAAO;AAAA,YACX;AAAA,UACF;AAAA;AAAA,MACF,GACF;AAAA,OACF;AAAA,IAEA,6CAAC,sBAAK,IAAG,QAAO,IAAG,KAAI,KAAI,KAAI,OAAM,UACnC;AAAA,kDAAC,sBAAK,KAAI,KAAI,OAAM,UAClB,sDAAC,wBAAO,OAAO,gBAAgB,MAAM,GAClC,6BAAmB,MAAM,GAC5B,GACF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,MAAM,qBAAqB,CAAC,WAA+B;AACzD,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd;AAAA,EAEN;AACF;AAEA,MAAM,kBAAkB,CAAC,WAA+B;AACtD,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,EACX;AACF;","names":[]}
|