import React, { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useForm } from 'react-hook-form'; import { Radio, Typography, Button, Input, Alert, } from '@material-tailwind/react'; const SetupDomain = () => { const { register, handleSubmit, formState: { isValid }, watch, setValue, } = useForm({ defaultValues: { domainName: '', isWWW: 'false', }, }); const [domainStr, setDomainStr] = useState(''); const navigate = useNavigate(); useEffect(() => { const subscription = watch((value, { name }) => { if (name === 'domainName' && value.domainName) { const domainArr = value.domainName.split('www.'); setDomainStr(domainArr.length > 1 ? domainArr[1] : domainArr[0]); if (value.domainName.startsWith('www.')) { setValue('isWWW', 'true'); } else { setValue('isWWW', 'false'); } } }); return () => subscription.unsubscribe(); }, [watch]); return (
{ watch('isWWW') === 'true' ? navigate(`config?name=www.${domainStr}`) : navigate(`config?name=${domainStr}`); })} className="flex flex-col gap-6 w-full" >
Setup domain name Add your domain and setup redirects
Domain name
{isValid && (
Primary domain
^ For simplicity, we’ll redirect the{' '} {watch('isWWW') === 'true' ? `non-www variant to www.${domainStr}` : `www variant to ${domainStr}`} . Redirect preferences can be changed later
)}
); }; export default SetupDomain;