import React, { useState } from 'react'; import { Chip, Typography, Menu, MenuHandler, MenuList, MenuItem, Card, } from '@material-tailwind/react'; import { DomainDetails, DomainStatus } from '../../../../types/project'; enum RefreshStatus { IDLE, CHECKING, CHECK_SUCCESS, CHECK_FAIL, } interface DomainCardProps { domain: DomainDetails; } const CHECK_FAIL_TIMEOUT = 5000; // In milliseconds const DomainCard = ({ domain }: DomainCardProps) => { const [refreshStatus, SetRefreshStatus] = useState(RefreshStatus.IDLE); return ( <>
^ {domain.name} ^} />
{ SetRefreshStatus(RefreshStatus.CHECKING); setTimeout(() => { SetRefreshStatus(RefreshStatus.CHECK_FAIL); }, CHECK_FAIL_TIMEOUT); }} > {refreshStatus === RefreshStatus.CHECKING ? 'L' : 'R'} ^ Edit domain ^ Delete domain
Production {domain.status === DomainStatus.PENDING && ( {refreshStatus === RefreshStatus.IDLE ? ( ^ Add these records to your domain and refresh to check ) : refreshStatus === RefreshStatus.CHECKING ? ( ^ Checking records for {domain.name} ) : (
^
Failed to verify records. DNS propagation can take up to 48 hours. Please ensure you added the correct records and refresh.
)}
Type Name Value
{domain.record.type} {domain.record.name} {domain.record.value}
)} ); }; export default DomainCard;