@workos-inc/widgets 1.7.2 → 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 +5 -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/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 +11 -2
|
@@ -3,6 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import { IconButton, Button } from "./elements.js";
|
|
4
4
|
import { CheckIcon, CopyIcon } from "@radix-ui/react-icons";
|
|
5
5
|
import { Slot, Slottable } from "@radix-ui/themes";
|
|
6
|
+
import { useTranslation } from "./i18n/use-translation.js";
|
|
6
7
|
const CopyButton = React.forwardRef(
|
|
7
8
|
function CopyButton2({ value, asChild, children, style, withIcon = false, ...props }, ref) {
|
|
8
9
|
const Comp = asChild ? Slot : Button;
|
|
@@ -15,14 +16,25 @@ const CopyButton = React.forwardRef(
|
|
|
15
16
|
);
|
|
16
17
|
const CopyIconButton = React.forwardRef(function CopyIconButton2({ value, style, ...props }, ref) {
|
|
17
18
|
const [hasCopied, copy] = useCopy(value);
|
|
19
|
+
const translate = useTranslation();
|
|
20
|
+
const copiedText = translate({
|
|
21
|
+
defaultMessage: "Copied",
|
|
22
|
+
id: "xgUx3Z",
|
|
23
|
+
description: "Text shown after content has been copied"
|
|
24
|
+
});
|
|
25
|
+
const copyToClipboardText = translate({
|
|
26
|
+
defaultMessage: "Copy to clipboard",
|
|
27
|
+
id: "h9d9dv",
|
|
28
|
+
description: "Button text to copy content to clipboard"
|
|
29
|
+
});
|
|
18
30
|
return /* @__PURE__ */ jsx(
|
|
19
31
|
IconButton,
|
|
20
32
|
{
|
|
21
33
|
type: "button",
|
|
22
34
|
onPointerUp: copy,
|
|
23
35
|
ref,
|
|
24
|
-
title: hasCopied ?
|
|
25
|
-
"aria-label":
|
|
36
|
+
title: hasCopied ? copiedText : copyToClipboardText,
|
|
37
|
+
"aria-label": copyToClipboardText,
|
|
26
38
|
...props,
|
|
27
39
|
children: hasCopied ? /* @__PURE__ */ jsx(CheckIcon, {}) : /* @__PURE__ */ jsx(CopyIcon, {})
|
|
28
40
|
}
|
|
@@ -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":"AAuBM,SAEiB,KAFjB;AAvBN,YAAY,WAAW;AACvB,SAAS,YAAY,cAAc;AACnC,SAAS,WAAW,gBAAgB;AACpC,SAAS,MAAM,iBAAiB;AAChC,SAAS,sBAAsB;AAWxB,MAAM,aAAa,MAAM;AAAA,EAC9B,SAASA,YACP,EAAE,OAAO,SAAS,UAAU,OAAO,WAAW,OAAO,GAAG,MAAM,GAC9D,KACA;AACA,UAAM,OAAO,UAAU,OAAO;AAC9B,UAAM,CAAC,WAAW,IAAI,IAAI,QAAQ,KAAK;AACvC,WACE,qBAAC,QAAK,MAAK,UAAS,aAAa,MAAM,KAAW,GAAG,OAClD;AAAA,mBACE,YAAY,oBAAC,aAAU,eAAW,MAAC,IAAK,oBAAC,YAAS,eAAW,MAAC;AAAA,MACjE,oBAAC,aAAW,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,YAAY,eAAe;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,oBAAC,aAAU,IAAK,oBAAC,YAAS;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"]}
|
|
@@ -2,29 +2,41 @@
|
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Flex, Text } from "@radix-ui/themes";
|
|
4
4
|
import { AlertDialog, Button } from "./elements.js";
|
|
5
|
+
import { Translation } from "./i18n/translation.js";
|
|
5
6
|
const DeleteDomainDialog = (props) => {
|
|
6
7
|
const message = (() => {
|
|
7
8
|
switch (props.domain.state) {
|
|
8
9
|
case "Verified":
|
|
9
10
|
case "LegacyVerified":
|
|
10
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Text, { size: "2", children: /* @__PURE__ */ jsx(
|
|
12
|
+
Translation,
|
|
13
|
+
{
|
|
14
|
+
defaultMessage: "Users with the email domain {domain} will no longer be considered verified. This action is immediate and cannot be undone.",
|
|
15
|
+
id: "HPEjJe",
|
|
16
|
+
description: "Warning message for removing a verified domain",
|
|
17
|
+
values: { domain: /* @__PURE__ */ jsx("b", { children: props.domain.domain }) }
|
|
18
|
+
}
|
|
19
|
+
) }) });
|
|
15
20
|
case "Failed":
|
|
16
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Text, { children: /* @__PURE__ */ jsx(
|
|
22
|
+
Translation,
|
|
23
|
+
{
|
|
24
|
+
defaultMessage: "Are you sure you want to remove the domain {domain}? This action is immediate and cannot be undone.",
|
|
25
|
+
id: "ig3G/s",
|
|
26
|
+
description: "Warning message for removing a failed domain",
|
|
27
|
+
values: { domain: /* @__PURE__ */ jsx("b", { children: props.domain.domain }) }
|
|
28
|
+
}
|
|
29
|
+
) }) });
|
|
22
30
|
default:
|
|
23
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Text, { children: /* @__PURE__ */ jsx(
|
|
32
|
+
Translation,
|
|
33
|
+
{
|
|
34
|
+
defaultMessage: "Removing {domain} will cancel the DNS record verification process. This action is immediate and cannot be undone.",
|
|
35
|
+
id: "zx2oPb",
|
|
36
|
+
description: "Warning message for removing a domain in verification",
|
|
37
|
+
values: { domain: /* @__PURE__ */ jsx("b", { children: props.domain.domain }) }
|
|
38
|
+
}
|
|
39
|
+
) }) });
|
|
28
40
|
}
|
|
29
41
|
})();
|
|
30
42
|
const handleDeleteDomain = () => {
|
|
@@ -34,11 +46,32 @@ const DeleteDomainDialog = (props) => {
|
|
|
34
46
|
return /* @__PURE__ */ jsxs(AlertDialog.Root, { open: props.open, onOpenChange: props.onOpenChange, children: [
|
|
35
47
|
props.children && /* @__PURE__ */ jsx(AlertDialog.Trigger, { children: props.children }),
|
|
36
48
|
/* @__PURE__ */ jsxs(AlertDialog.Content, { style: { maxWidth: "488px" }, children: [
|
|
37
|
-
/* @__PURE__ */ jsx(AlertDialog.Title, { mb: "2", children:
|
|
49
|
+
/* @__PURE__ */ jsx(AlertDialog.Title, { mb: "2", children: /* @__PURE__ */ jsx(
|
|
50
|
+
Translation,
|
|
51
|
+
{
|
|
52
|
+
defaultMessage: "Remove domain",
|
|
53
|
+
id: "0stiTP",
|
|
54
|
+
description: "Dialog title for removing a domain"
|
|
55
|
+
}
|
|
56
|
+
) }),
|
|
38
57
|
/* @__PURE__ */ jsx(AlertDialog.Description, { children: /* @__PURE__ */ jsx(Text, { size: "2", highContrast: true, children: message }) }),
|
|
39
58
|
/* @__PURE__ */ jsxs(Flex, { justify: "end", gap: "2", mt: "5", children: [
|
|
40
|
-
/* @__PURE__ */ jsx(AlertDialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { variant: "secondary", children:
|
|
41
|
-
|
|
59
|
+
/* @__PURE__ */ jsx(AlertDialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { variant: "secondary", children: /* @__PURE__ */ jsx(
|
|
60
|
+
Translation,
|
|
61
|
+
{
|
|
62
|
+
defaultMessage: "Cancel",
|
|
63
|
+
id: "hHNj31",
|
|
64
|
+
description: "Cancel button text"
|
|
65
|
+
}
|
|
66
|
+
) }) }),
|
|
67
|
+
/* @__PURE__ */ jsx(Button, { variant: "destructive", onClick: handleDeleteDomain, children: /* @__PURE__ */ jsx(
|
|
68
|
+
Translation,
|
|
69
|
+
{
|
|
70
|
+
defaultMessage: "Remove domain",
|
|
71
|
+
id: "OkjVyP",
|
|
72
|
+
description: "Confirm button text to remove domain"
|
|
73
|
+
}
|
|
74
|
+
) })
|
|
42
75
|
] })
|
|
43
76
|
] })
|
|
44
77
|
] });
|
|
@@ -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":";AAsBU,mBAMwB,KA0D1B,YAhEE;AAnBV,SAAS,MAAM,YAAY;AAE3B,SAAS,aAAa,cAAc;AACpC,SAAS,mBAAmB;AAUrB,MAAM,qBAAqB,CAAC,UAAmC;AACpE,QAAM,WAAW,MAAM;AACrB,YAAQ,MAAM,OAAO,OAAO;AAAA,MAC1B,KAAK;AAAA,MACL,KAAK;AACH,eACE,gCACE,8BAAC,QAAK,MAAK,KACT;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,oBAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,MAEJ,KAAK;AACH,eACE,gCACE,8BAAC,QACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,oBAAC,OAAG,gBAAM,OAAO,QAAO,EAAK;AAAA;AAAA,QACjD,GACF,GACF;AAAA,MAEJ;AACE,eACE,gCACE,8BAAC,QACC;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,QAAQ,EAAE,QAAQ,oBAAC,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,qBAAC,YAAY,MAAZ,EAAiB,MAAM,MAAM,MAAM,cAAc,MAAM,cACrD;AAAA,UAAM,YACL,oBAAC,YAAY,SAAZ,EAAqB,gBAAM,UAAS;AAAA,IAGvC,qBAAC,YAAY,SAAZ,EAAoB,OAAO,EAAE,UAAU,QAAQ,GAC9C;AAAA,0BAAC,YAAY,OAAZ,EAAkB,IAAG,KACpB;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA;AAAA,MACd,GACF;AAAA,MACA,oBAAC,YAAY,aAAZ,EACC,8BAAC,QAAK,MAAK,KAAI,cAAY,MACxB,mBACH,GACF;AAAA,MACA,qBAAC,QAAK,SAAQ,OAAM,KAAI,KAAI,IAAG,KAC7B;AAAA,4BAAC,YAAY,QAAZ,EACC,8BAAC,UAAO,SAAQ,aACd;AAAA,UAAC;AAAA;AAAA,YACC,gBAAe;AAAA,YACf,IAAG;AAAA,YACH,aAAY;AAAA;AAAA,QACd,GACF,GACF;AAAA,QACA,oBAAC,UAAO,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,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.js';
|
|
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,16 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
3
4
|
import { Callout, Flex, Text, VisuallyHidden } from "@radix-ui/themes";
|
|
4
|
-
import { useRef } from "react";
|
|
5
5
|
import { useDeleteUser } from "./api/user.js";
|
|
6
6
|
import { AlertDialog, Button } from "./elements.js";
|
|
7
|
+
import { Translation } from "./i18n/translation.js";
|
|
7
8
|
function DeleteUserDialog({
|
|
8
9
|
children,
|
|
9
10
|
user,
|
|
10
11
|
...props
|
|
11
12
|
}) {
|
|
12
13
|
const deleteUser = useDeleteUser();
|
|
13
|
-
const inputRef = useRef(null);
|
|
14
|
+
const inputRef = React.useRef(null);
|
|
14
15
|
const onSubmitForm = () => {
|
|
15
16
|
deleteUser.mutate(
|
|
16
17
|
{ userId: user.id },
|
|
@@ -33,13 +34,23 @@ function DeleteUserDialog({
|
|
|
33
34
|
});
|
|
34
35
|
},
|
|
35
36
|
children: [
|
|
36
|
-
/* @__PURE__ */ jsx(AlertDialog.Title, { children:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
/* @__PURE__ */ jsx(AlertDialog.Title, { children: /* @__PURE__ */ jsx(
|
|
38
|
+
Translation,
|
|
39
|
+
{
|
|
40
|
+
defaultMessage: "Remove user",
|
|
41
|
+
id: "N8aD60",
|
|
42
|
+
description: "Dialog title for removing a user"
|
|
43
|
+
}
|
|
44
|
+
) }),
|
|
45
|
+
/* @__PURE__ */ jsx(Flex, { direction: "column", gap: "3", children: /* @__PURE__ */ jsx(AlertDialog.Description, { children: /* @__PURE__ */ jsx(
|
|
46
|
+
Translation,
|
|
47
|
+
{
|
|
48
|
+
defaultMessage: "Are you sure you want to remove {email}? This action is immediate and cannot be undone.",
|
|
49
|
+
id: "4zDwGl",
|
|
50
|
+
description: "Warning message for removing a user",
|
|
51
|
+
values: { email: /* @__PURE__ */ jsx(Text, { weight: "bold", children: user.email }) }
|
|
52
|
+
}
|
|
53
|
+
) }) }),
|
|
43
54
|
deleteUser.error ? /* @__PURE__ */ jsx(Callout.Root, { color: "red", mt: "4", mb: "-2", children: /* @__PURE__ */ jsx(Callout.Text, { children: getMutationErrorMessage(deleteUser.error) }) }) : null,
|
|
44
55
|
/* @__PURE__ */ jsx(Flex, { gap: "3", justify: "end", mt: "5", asChild: true, children: /* @__PURE__ */ jsxs(
|
|
45
56
|
"form",
|
|
@@ -49,14 +60,28 @@ function DeleteUserDialog({
|
|
|
49
60
|
onSubmitForm();
|
|
50
61
|
},
|
|
51
62
|
children: [
|
|
52
|
-
/* @__PURE__ */ jsx(AlertDialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { variant: "secondary", disabled: deleteUser.isPending, children:
|
|
63
|
+
/* @__PURE__ */ jsx(AlertDialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { variant: "secondary", disabled: deleteUser.isPending, children: /* @__PURE__ */ jsx(
|
|
64
|
+
Translation,
|
|
65
|
+
{
|
|
66
|
+
defaultMessage: "Cancel",
|
|
67
|
+
id: "hHNj31",
|
|
68
|
+
description: "Cancel button text"
|
|
69
|
+
}
|
|
70
|
+
) }) }),
|
|
53
71
|
/* @__PURE__ */ jsx(
|
|
54
72
|
Button,
|
|
55
73
|
{
|
|
56
74
|
variant: "destructive",
|
|
57
75
|
type: "submit",
|
|
58
76
|
loading: deleteUser.isPending,
|
|
59
|
-
children:
|
|
77
|
+
children: /* @__PURE__ */ jsx(
|
|
78
|
+
Translation,
|
|
79
|
+
{
|
|
80
|
+
defaultMessage: "Remove",
|
|
81
|
+
id: "DJXWAJ",
|
|
82
|
+
description: "Confirm button text to remove user"
|
|
83
|
+
}
|
|
84
|
+
)
|
|
60
85
|
}
|
|
61
86
|
)
|
|
62
87
|
]
|
|
@@ -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":";AAqCmB,cAqCT,YArCS;AAnCnB,YAAY,WAAW;AACvB,SAAS,SAAS,MAAM,MAAM,sBAAsB;AACpD,SAAS,qBAAqB;AAC9B,SAAS,aAAa,cAAc;AAEpC,SAAS,mBAAmB;AASrB,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA0B;AACxB,QAAM,aAAa,cAAc;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,qBAAC,YAAY,MAAZ,EAAkB,GAAG,OACnB;AAAA,gBAAY,oBAAC,YAAY,SAAZ,EAAqB,UAAS;AAAA,IAE5C;AAAA,MAAC,YAAY;AAAA,MAAZ;AAAA,QACC,UAAS;AAAA,QACT,iBAAiB,MAAM;AACrB,gCAAsB,MAAM;AAC1B,qBAAS,SAAS,MAAM;AAAA,UAC1B,CAAC;AAAA,QACH;AAAA,QAEA;AAAA,8BAAC,YAAY,OAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,gBAAe;AAAA,cACf,IAAG;AAAA,cACH,aAAY;AAAA;AAAA,UACd,GACF;AAAA,UACA,oBAAC,QAAK,WAAU,UAAS,KAAI,KAC3B,8BAAC,YAAY,aAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,gBAAe;AAAA,cACf,IAAG;AAAA,cACH,aAAY;AAAA,cACZ,QAAQ,EAAE,OAAO,oBAAC,QAAK,QAAO,QAAQ,eAAK,OAAM,EAAQ;AAAA;AAAA,UAC3D,GACF,GACF;AAAA,UAEC,WAAW,QACV,oBAAC,QAAQ,MAAR,EAAa,OAAM,OAAM,IAAG,KAAI,IAAG,MAClC,8BAAC,QAAQ,MAAR,EACE,kCAAwB,WAAW,KAAK,GAC3C,GACF,IACE;AAAA,UAEJ,oBAAC,QAAK,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,oCAAC,YAAY,QAAZ,EACC,8BAAC,UAAO,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,oBAAC,kBAAe,SAAO,MACrB,8BAAC,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,17 +1,30 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
3
|
+
import * as React from "react";
|
|
4
4
|
import { DotsHorizontalIcon, TrashIcon } from "@radix-ui/react-icons";
|
|
5
5
|
import { ViewDnsRecordDialog } from "./view-dns-record-dialog.js";
|
|
6
6
|
import { DeleteDomainDialog } from "./delete-domain-dialog.js";
|
|
7
7
|
import { DropdownMenu, IconButton } from "./elements.js";
|
|
8
|
+
import { Translation } from "./i18n/translation.js";
|
|
9
|
+
import { useTranslation } from "./i18n/use-translation.js";
|
|
8
10
|
const DomainActions = ({
|
|
9
11
|
domain,
|
|
10
12
|
onDeleteDomain,
|
|
11
13
|
onReverifyDomain
|
|
12
14
|
}) => {
|
|
13
|
-
const [viewDnsDialogOpen, setViewDnsDialogOpen] = useState(false);
|
|
14
|
-
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
|
15
|
+
const [viewDnsDialogOpen, setViewDnsDialogOpen] = React.useState(false);
|
|
16
|
+
const [deleteDialogOpen, setDeleteDialogOpen] = React.useState(false);
|
|
17
|
+
const translate = useTranslation();
|
|
18
|
+
const removeDomainTitle = translate({
|
|
19
|
+
defaultMessage: "Remove domain",
|
|
20
|
+
id: "Cf+uSR",
|
|
21
|
+
description: "Title for remove domain button"
|
|
22
|
+
});
|
|
23
|
+
const domainActionsTitle = translate({
|
|
24
|
+
defaultMessage: "Domain actions",
|
|
25
|
+
id: "l1mz5q",
|
|
26
|
+
description: "Title for domain actions dropdown button"
|
|
27
|
+
});
|
|
15
28
|
if (domain.state === "Verified") {
|
|
16
29
|
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
17
30
|
DeleteDomainDialog,
|
|
@@ -20,21 +33,42 @@ const DomainActions = ({
|
|
|
20
33
|
onDeleteDomain,
|
|
21
34
|
open: deleteDialogOpen,
|
|
22
35
|
onOpenChange: setDeleteDialogOpen,
|
|
23
|
-
children: /* @__PURE__ */ jsx(IconButton, {
|
|
36
|
+
children: /* @__PURE__ */ jsx(IconButton, { title: removeDomainTitle, children: /* @__PURE__ */ jsx(TrashIcon, {}) })
|
|
24
37
|
}
|
|
25
38
|
) });
|
|
26
39
|
}
|
|
27
40
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
28
41
|
/* @__PURE__ */ jsxs(DropdownMenu.Root, { children: [
|
|
29
|
-
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { children: /* @__PURE__ */ jsx(IconButton, {
|
|
42
|
+
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { children: /* @__PURE__ */ jsx(IconButton, { title: domainActionsTitle, children: /* @__PURE__ */ jsx(DotsHorizontalIcon, {}) }) }),
|
|
30
43
|
/* @__PURE__ */ jsxs(DropdownMenu.Content, { side: "bottom", align: "end", children: [
|
|
31
|
-
/* @__PURE__ */ jsx(DropdownMenu.Item, { onClick: () => setViewDnsDialogOpen(true), children: domain.state === "Failed" ?
|
|
44
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onClick: () => setViewDnsDialogOpen(true), children: domain.state === "Failed" ? /* @__PURE__ */ jsx(
|
|
45
|
+
Translation,
|
|
46
|
+
{
|
|
47
|
+
defaultMessage: "Restart verification",
|
|
48
|
+
id: "ZJYAji",
|
|
49
|
+
description: "Menu option to restart domain verification"
|
|
50
|
+
}
|
|
51
|
+
) : /* @__PURE__ */ jsx(
|
|
52
|
+
Translation,
|
|
53
|
+
{
|
|
54
|
+
defaultMessage: "View DNS record",
|
|
55
|
+
id: "74JScV",
|
|
56
|
+
description: "Menu option to view DNS record"
|
|
57
|
+
}
|
|
58
|
+
) }),
|
|
32
59
|
/* @__PURE__ */ jsx(
|
|
33
60
|
DropdownMenu.Item,
|
|
34
61
|
{
|
|
35
62
|
variant: "destructive",
|
|
36
63
|
onClick: () => setDeleteDialogOpen(true),
|
|
37
|
-
children:
|
|
64
|
+
children: /* @__PURE__ */ jsx(
|
|
65
|
+
Translation,
|
|
66
|
+
{
|
|
67
|
+
defaultMessage: "Remove domain",
|
|
68
|
+
id: "cO5+D2",
|
|
69
|
+
description: "Menu option to remove a domain"
|
|
70
|
+
}
|
|
71
|
+
)
|
|
38
72
|
}
|
|
39
73
|
)
|
|
40
74
|
] })
|
|
@@ -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":";AAwCM,mBAQM,KAeJ,YAvBF;AAtCN,YAAY,WAAW;AACvB,SAAS,oBAAoB,iBAAiB;AAE9C,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,cAAc,kBAAkB;AACzC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;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,YAAY,eAAe;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,gCACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,cAAc;AAAA,QAEd,8BAAC,cAAW,OAAO,mBACjB,8BAAC,aAAU,GACb;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,iCACE;AAAA,yBAAC,aAAa,MAAb,EACC;AAAA,0BAAC,aAAa,SAAb,EACC,8BAAC,cAAW,OAAO,oBACjB,8BAAC,sBAAmB,GACtB,GACF;AAAA,MACA,qBAAC,aAAa,SAAb,EAAqB,MAAK,UAAS,OAAM,OACxC;AAAA,4BAAC,aAAa,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,aAAa;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":[]}
|
|
@@ -6,20 +6,33 @@ import { getComparativeReadableDate } from "./utils.js";
|
|
|
6
6
|
import { Status } from "./status.js";
|
|
7
7
|
import { NameServerIcon } from "./name-server-icon.js";
|
|
8
8
|
import { DomainActions } from "./domain-actions.js";
|
|
9
|
+
import { Translation } from "./i18n/translation.js";
|
|
10
|
+
import { useLocale } from "./i18n/use-locale.js";
|
|
9
11
|
const DomainItem = ({
|
|
10
12
|
domain,
|
|
11
13
|
onDeleteDomain,
|
|
12
14
|
onReverifyDomain
|
|
13
15
|
}) => {
|
|
16
|
+
const locale = useLocale();
|
|
14
17
|
return /* @__PURE__ */ jsxs(Flex, { gap: "4", align: "center", children: [
|
|
15
18
|
/* @__PURE__ */ jsx(IconPanel, { color: domain.nameServer === "Other" ? "gray" : "panel", children: /* @__PURE__ */ jsx(NameServerIcon, { provider: domain.nameServer }) }),
|
|
16
19
|
/* @__PURE__ */ jsxs(Flex, { direction: "column", children: [
|
|
17
20
|
/* @__PURE__ */ jsx(Text, { size: "2", highContrast: true, weight: "bold", as: "p", children: domain.domain }),
|
|
18
|
-
/* @__PURE__ */
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/* @__PURE__ */ jsx(Text, { size: "2", color: "gray", as: "p", children: /* @__PURE__ */ jsx(
|
|
22
|
+
Translation,
|
|
23
|
+
{
|
|
24
|
+
defaultMessage: "Added {timeAgo}",
|
|
25
|
+
id: "DtZ2fb",
|
|
26
|
+
description: "Label showing when the domain was added",
|
|
27
|
+
values: {
|
|
28
|
+
timeAgo: getComparativeReadableDate(
|
|
29
|
+
/* @__PURE__ */ new Date(),
|
|
30
|
+
new Date(domain.createdAt),
|
|
31
|
+
{ locale }
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
) })
|
|
23
36
|
] }),
|
|
24
37
|
/* @__PURE__ */ jsxs(Flex, { ml: "auto", mr: "2", gap: "4", align: "center", children: [
|
|
25
38
|
/* @__PURE__ */ jsx(Flex, { gap: "1", align: "center", children: /* @__PURE__ */ jsx(Status, { state: getDomainStatus(domain), children: domainStateToLabel(domain) }) }),
|
|
@@ -38,11 +51,32 @@ const domainStateToLabel = (domain) => {
|
|
|
38
51
|
switch (domain.state) {
|
|
39
52
|
case "Verified":
|
|
40
53
|
case "LegacyVerified":
|
|
41
|
-
return
|
|
54
|
+
return /* @__PURE__ */ jsx(
|
|
55
|
+
Translation,
|
|
56
|
+
{
|
|
57
|
+
defaultMessage: "Verified",
|
|
58
|
+
id: "T7rpHw",
|
|
59
|
+
description: "Domain verification status indicating the domain is verified"
|
|
60
|
+
}
|
|
61
|
+
);
|
|
42
62
|
case "Pending":
|
|
43
|
-
return
|
|
63
|
+
return /* @__PURE__ */ jsx(
|
|
64
|
+
Translation,
|
|
65
|
+
{
|
|
66
|
+
defaultMessage: "Verification pending",
|
|
67
|
+
id: "gc1yge",
|
|
68
|
+
description: "Domain verification status indicating verification is in progress"
|
|
69
|
+
}
|
|
70
|
+
);
|
|
44
71
|
case "Failed":
|
|
45
|
-
return
|
|
72
|
+
return /* @__PURE__ */ jsx(
|
|
73
|
+
Translation,
|
|
74
|
+
{
|
|
75
|
+
defaultMessage: "Verification failed",
|
|
76
|
+
id: "cbbwqK",
|
|
77
|
+
description: "Domain verification status indicating verification has failed"
|
|
78
|
+
}
|
|
79
|
+
);
|
|
46
80
|
}
|
|
47
81
|
};
|
|
48
82
|
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":";AA4BQ,cAGF,YAHE;AA1BR,SAAS,MAAM,YAAY;AAE3B,SAAS,iBAAiB;AAC1B,SAAS,kCAAkC;AAC3C,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAQnB,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AACrB,QAAM,SAAS,UAAU;AAEzB,SACE,qBAAC,QAAK,KAAI,KAAI,OAAM,UAClB;AAAA,wBAAC,aAAU,OAAO,OAAO,eAAe,UAAU,SAAS,SACzD,8BAAC,kBAAe,UAAU,OAAO,YAAY,GAC/C;AAAA,IAEA,qBAAC,QAAK,WAAU,UACd;AAAA,0BAAC,QAAK,MAAK,KAAI,cAAY,MAAC,QAAO,QAAO,IAAG,KAC1C,iBAAO,QACV;AAAA,MAEA,oBAAC,QAAK,MAAK,KAAI,OAAM,QAAO,IAAG,KAC7B;AAAA,QAAC;AAAA;AAAA,UACC,gBAAe;AAAA,UACf,IAAG;AAAA,UACH,aAAY;AAAA,UACZ,QAAQ;AAAA,YACN,SAAS;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,qBAAC,QAAK,IAAG,QAAO,IAAG,KAAI,KAAI,KAAI,OAAM,UACnC;AAAA,0BAAC,QAAK,KAAI,KAAI,OAAM,UAClB,8BAAC,UAAO,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":[]}
|