import { useFormState } from "react-use-form-state"; import { Flex } from "reflexbox/styled-components"; import React, { FC, useState } from "react"; import styled from "styled-components"; import { useStoreState, useStoreActions } from "../../store"; import { Domain } from "../../store/settings"; import { errorMessage } from "../../utils"; import { useMessage } from "../../hooks"; import Text, { H2, Span } from "../Text"; import { Colors } from "../../consts"; import { TextInput } from "../Input"; import { Button } from "../Button"; import { Col } from "../Layout"; import Table from "../Table"; import Modal from "../Modal"; import Icon from "../Icon"; const Th = styled(Flex).attrs({ as: "th", py: 3, px: 3 })` font-size: 15px; `; const Td = styled(Flex).attrs({ as: "td", py: 12, px: 3 })` font-size: 15px; `; const SettingsDomain: FC = () => { const { saveDomain, deleteDomain } = useStoreActions(s => s.settings); const [domainToDelete, setDomainToDelete] = useState(null); const [deleteLoading, setDeleteLoading] = useState(false); const domains = useStoreState(s => s.settings.domains); const [message, setMessage] = useMessage(2000); const [loading, setLoading] = useState(false); const [modal, setModal] = useState(false); const [formState, { label, text }] = useFormState<{ address: string; homepage: string; }>(null, { withIds: true }); const onSubmit = async e => { e.preventDefault(); setLoading(true); try { await saveDomain(formState.values); } catch (err) { setMessage(err?.response?.data?.error || "Couldn't add domain."); } formState.clear(); setLoading(false); }; const closeModal = () => { setDomainToDelete(null); setModal(false); }; const onDelete = async () => { setDeleteLoading(true); await deleteDomain(domainToDelete.id).catch(err => setMessage(errorMessage(err, "Couldn't delete the domain.")) ); setMessage("Domain has been deleted successfully.", "green"); closeModal(); setDeleteLoading(false); }; return (

Custom domain

You can set a custom domain for your short URLs, so instead of{" "} kutt.it/shorturl you can have example.com/shorturl. Point your domain A record to 192.64.116.170 then add the domain via form below: {domains.length ? ( {domains.map(d => ( ))}
Domain Homepage
{d.address} {d.homepage || process.env.DEFAULT_DOMAIN} { setDomainToDelete(d); setModal(true); }} />
) : ( Domain Homepage (optional) )} {message.text}

Delete domain?

Are you sure do you want to delete the domain{" "} "{domainToDelete && domainToDelete.address}"? {deleteLoading ? ( <> ) : ( <> )}
); }; export default SettingsDomain;