import { useSubmit } from '@remix-run/react' import { useState } from 'react' import { Button } from 'react-aria-components' import Link from '~/components/Link' import Switch from '~/components/Switch' import TableList from '~/components/TableList' import { cn } from '~/utils/cn' import AddNameserver from './dialogs/nameserver' interface Props { nameservers: Record override: boolean isDisabled: boolean } export default function Nameservers({ nameservers, override, isDisabled }: Props) { return (

Nameservers

Set the nameservers used by devices on the Tailnet to resolve DNS queries. {' '} Learn more

{Object.keys(nameservers).map(key => ( ))} {isDisabled ? undefined : ( )}
) } interface ListProps { isGlobal: boolean isDisabled: boolean nameservers: string[] name: string override: boolean } function NameserverList({ isGlobal, isDisabled, nameservers, name, override }: ListProps) { const [localOverride, setLocalOverride] = useState(override) const submit = useSubmit() return (

{isGlobal ? 'Global Nameservers' : name}

{isGlobal ? (
Override local DNS { submit({ 'dns_config.override_local_dns': !localOverride, }, { method: 'PATCH', encType: 'application/json', }) setLocalOverride(!localOverride) }} />
) : undefined}
{nameservers.map((ns, index) => ( // eslint-disable-next-line react/no-array-index-key

{ns}

))}
) }