| import React from "react"; | |
| import { useRouter } from "next/router"; | |
| import { | |
| TextInput, | |
| Stack, | |
| Modal, | |
| Button, | |
| CopyButton, | |
| Tooltip, | |
| ActionIcon, | |
| Text, | |
| ModalProps, | |
| } from "@mantine/core"; | |
| import { FiExternalLink } from "react-icons/fi"; | |
| import { MdCheck, MdCopyAll } from "react-icons/md"; | |
| export const ShareModal: React.FC<ModalProps> = ({ opened, onClose }) => { | |
| const { query } = useRouter(); | |
| const shareURL = `https://jsoncrack.com/editor?json=${query.json}`; | |
| return ( | |
| <Modal title="Create a Share Link" opened={opened} onClose={onClose} centered> | |
| <Stack py="sm"> | |
| <Text fz="sm" fw={700}> | |
| Share Link | |
| </Text> | |
| <TextInput | |
| value={shareURL} | |
| type="url" | |
| readOnly | |
| rightSection={ | |
| <CopyButton value={shareURL} timeout={2000}> | |
| {({ copied, copy }) => ( | |
| <Tooltip label={copied ? "Copied" : "Copy"} withArrow position="right"> | |
| <ActionIcon color={copied ? "teal" : "gray"} onClick={copy}> | |
| {copied ? <MdCheck size="1rem" /> : <MdCopyAll size="1rem" />} | |
| </ActionIcon> | |
| </Tooltip> | |
| )} | |
| </CopyButton> | |
| } | |
| /> | |
| <Text fz="sm" fw={700}> | |
| Embed into your website | |
| </Text> | |
| <Button | |
| component="a" | |
| color="green" | |
| target="_blank" | |
| href="/docs" | |
| leftSection={<FiExternalLink />} | |
| fullWidth | |
| > | |
| Learn How to Embed | |
| </Button> | |
| </Stack> | |
| </Modal> | |
| ); | |
| }; | |