{"version":3,"sources":["../../../src/lib/view-dns-record-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Box, Card, Flex, Text, Grid, Link, Code } from \"@radix-ui/themes\";\nimport { OrganizationDomain } from \"../api/endpoint.js\";\nimport { NameServerIcon } from \"./name-server-icon.js\";\nimport { IconPanel } from \"./icon-panel.js\";\nimport { CopyIconButton } from \"./copy-button.js\";\nimport { Dialog, Button } from \"./elements.js\";\nimport { Translation } from \"./i18n/translation.js\";\n\ninterface ViewDnsRecordDialogProps {\n  children?: React.ReactNode;\n  domain: OrganizationDomain;\n  onReverifyDomain: (domainId: string) => void;\n  open: boolean;\n  onOpenChange: (open: boolean) => void;\n}\n\nexport const ViewDnsRecordDialog = (props: ViewDnsRecordDialogProps) => {\n  const isFailed = props.domain.state === \"Failed\";\n\n  const handleRestartVerification = () => {\n    props.onReverifyDomain(props.domain.id);\n    props.onOpenChange(false);\n  };\n\n  return (\n    <Dialog.Root open={props.open} onOpenChange={props.onOpenChange}>\n      {props.children && <Dialog.Trigger>{props.children}</Dialog.Trigger>}\n      <Dialog.Content style={{ maxWidth: \"530px\" }}>\n        <Box mb=\"5\">\n          <Dialog.Title size=\"5\" mb=\"2\">\n            {isFailed ? (\n              <Translation\n                defaultMessage=\"Restart verification\"\n                id=\"k9X2ru\"\n                description=\"Dialog title for restarting domain verification\"\n              />\n            ) : (\n              <Translation\n                defaultMessage=\"View DNS record\"\n                id=\"/aCgMQ\"\n                description=\"Dialog title for viewing DNS record\"\n              />\n            )}\n          </Dialog.Title>\n          <Text size=\"2\" highContrast>\n            {isFailed ? (\n              <Translation\n                defaultMessage=\"The domain {domain} will be automatically verified once the following DNS record is detected. Use a tool like {dnsChecker} to check the domain's record for any mistakes.\"\n                id=\"yk7ScH\"\n                description=\"Instructions for failed domain verification with DNS checker tool\"\n                values={{\n                  domain: <b>{props.domain.domain}</b>,\n                  dnsChecker: (\n                    // eslint-disable-next-line formatjs/no-literal-string-in-jsx\n                    <Link href=\"https://dnschecker.org/\">DNSChecker</Link>\n                  ),\n                }}\n              />\n            ) : (\n              <Translation\n                defaultMessage=\"The domain {domain} will be automatically verified once the following DNS record is detected.\"\n                id=\"7+lT5Q\"\n                description=\"Instructions for domain verification\"\n                values={{\n                  domain: <b>{props.domain.domain}</b>,\n                }}\n              />\n            )}\n          </Text>\n        </Box>\n\n        <DnsRecordCard domain={props.domain} />\n        <Flex justify=\"end\" gap=\"2\" mt=\"5\">\n          {isFailed ? (\n            <>\n              <Dialog.Close>\n                <Button variant=\"secondary\">\n                  <Translation\n                    defaultMessage=\"Close\"\n                    id=\"ESS/aT\"\n                    description=\"Button text to close dialog\"\n                  />\n                </Button>\n              </Dialog.Close>\n              <Button onClick={handleRestartVerification}>\n                <Translation\n                  defaultMessage=\"Restart verification\"\n                  id=\"eSQSjC\"\n                  description=\"Button text to restart domain verification\"\n                />\n              </Button>\n            </>\n          ) : (\n            <Dialog.Close>\n              <Button>\n                <Translation\n                  defaultMessage=\"Close\"\n                  id=\"ESS/aT\"\n                  description=\"Button text to close dialog\"\n                />\n              </Button>\n            </Dialog.Close>\n          )}\n        </Flex>\n      </Dialog.Content>\n    </Dialog.Root>\n  );\n};\n\nconst DnsRecordCard = (props: { domain: OrganizationDomain }) => {\n  const verificationContent = `${props.domain.verificationPrefix ?? \"verification_token\"}=${props.domain.verificationToken}`;\n  return (\n    <Card size=\"2\">\n      <Flex gap=\"2\" align=\"center\" mb=\"4\">\n        <IconPanel\n          color={props.domain.nameServer === \"Other\" ? \"gray\" : \"panel\"}\n        >\n          <NameServerIcon provider={props.domain.nameServer} />\n        </IconPanel>\n\n        <Text size=\"2\" highContrast weight=\"bold\" as=\"p\" mb=\"-2px\">\n          {props.domain.domain}\n        </Text>\n      </Flex>\n      <Grid\n        gap=\"4\"\n        style={{\n          alignItems: \"start\",\n          gridTemplateColumns: \"146px 1fr\",\n        }}\n      >\n        <Text color=\"gray\" weight=\"medium\" size=\"2\">\n          <Translation\n            defaultMessage=\"Type\"\n            id=\"/UCweF\"\n            description=\"Label for DNS record type field\"\n          />\n        </Text>\n        {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}\n        <Text size=\"2\">TXT</Text>\n\n        <Text color=\"gray\" weight=\"medium\" size=\"2\">\n          <Translation\n            defaultMessage=\"Host / Name\"\n            id=\"dx3Cso\"\n            description=\"Label for DNS host/name field\"\n          />\n        </Text>\n        {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}\n        <Text size=\"2\">{props.domain.subdomain || \"@\"}</Text>\n\n        <Text color=\"gray\" weight=\"medium\" size=\"2\">\n          <Translation\n            defaultMessage=\"Value\"\n            id=\"MaYH9g\"\n            description=\"Label for DNS record value field\"\n          />\n        </Text>\n        <Flex gap=\"2\" align=\"start\">\n          <Code size=\"2\" variant=\"ghost\">\n            {verificationContent}\n          </Code>\n          <CopyIconButton value={verificationContent} />\n        </Flex>\n      </Grid>\n    </Card>\n  );\n};\n"],"mappings":"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","names":[]}