"use client"; import { Domain, DomainStatus } from "@prisma/client"; import { formatDistanceToNow } from "date-fns"; import Link from "next/link"; import { Switch } from "@unsend/ui/src/switch"; import { api } from "~/trpc/react"; import React from "react"; import { StatusIndicator } from "./status-indicator"; import { DomainStatusBadge } from "./domain-badge"; export default function DomainsList() { const domainsQuery = api.domain.domains.useQuery(); return (
{!domainsQuery.isLoading && domainsQuery.data?.length ? ( domainsQuery.data?.map((domain) => ( )) ) : (
No domains Added
)}
); } const DomainItem: React.FC<{ domain: Domain }> = ({ domain }) => { const updateDomain = api.domain.updateDomain.useMutation(); const utils = api.useUtils(); const [clickTracking, setClickTracking] = React.useState( domain.clickTracking ); const [openTracking, setOpenTracking] = React.useState(domain.openTracking); function handleClickTrackingChange() { setClickTracking(!clickTracking); updateDomain.mutate( { id: domain.id, clickTracking: !clickTracking }, { onSuccess: () => { utils.domain.domains.invalidate(); }, } ); } function handleOpenTrackingChange() { setOpenTracking(!openTracking); updateDomain.mutate( { id: domain.id, openTracking: !openTracking }, { onSuccess: () => { utils.domain.domains.invalidate(); }, } ); } return (
{domain.name}

Created at

{formatDistanceToNow(new Date(domain.createdAt), { addSuffix: true, })}

Region

🇺🇸 {domain.region}

Click tracking

Open tracking

); };