import { faCheck as checkIcon, faCircleNotch as loadingStatusIcon, faTimes as invalidIcon, } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import type { FC } from 'react'; import { useEffect, useState } from 'react'; import { ExternalLink } from 'react-external-link'; import { UncontrolledTooltip } from 'reactstrap'; import { useElementRef } from '../../utils/helpers/hooks'; import type { MediaMatcher } from '../../utils/types'; import type { DomainStatus } from '../data'; interface DomainStatusIconProps { status: DomainStatus; matchMedia?: MediaMatcher; } export const DomainStatusIcon: FC = ({ status, matchMedia = window.matchMedia }) => { const ref = useElementRef(); const matchesMobile = () => matchMedia('(max-width: 991px)').matches; const [isMobile, setIsMobile] = useState(matchesMobile()); useEffect(() => { const listener = () => setIsMobile(matchesMobile()); window.addEventListener('resize', listener); return () => window.removeEventListener('resize', listener); }, []); if (status === 'validating') { return ; } return ( <> {status === 'valid' ? : } {status === 'valid' ? 'Congratulations! This domain is properly configured.' : ( Oops! There is some missing configuration, and short URLs shared with this domain will not work.
Check the documentation in order to find out what is missing.
)}
); };