import { Flex } from "reflexbox/styled-components"; import React, { FC, useState } from "react"; import styled from "styled-components"; import { useStoreState, useStoreActions } from "../../store"; import { useFormState } from "react-use-form-state"; import { Domain } from "../../store/settings"; import { useMessage } from "../../hooks"; import { Colors } from "../../consts"; import TextInput from "../TextInput"; import { Button } from "../Button"; import Table from "../Table"; import Modal from "../Modal"; import Icon from "../Icon"; import Text, { H2, Span } from "../Text"; import { Col } from "../Layout"; 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 [modal, setModal] = useState(false); const [loading, setLoading] = useState(false); const [deleteLoading, setDeleteLoading] = useState(false); const [domainToDelete, setDomainToDelete] = useState(null); const [message, setMessage] = useMessage(2000); const domains = useStoreState(s => s.settings.domains); const { saveDomain, deleteDomain } = useStoreActions(s => s.settings); const [formState, { label, text }] = useFormState<{ customDomain: 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); try { await deleteDomain(); setMessage("Domain has been deleted successfully.", "green"); } catch (err) { setMessage(err?.response?.data?.error || "Couldn't delete the domain."); } 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.customDomain} {d.homepage || "default"} { setDomainToDelete(d); setModal(true); }} />
) : ( Domain Homepage (optional) )} {message.text}

Delete domain?

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