import { CopyAll } from '@mui/icons-material'; import { Checkbox, FormControlLabel, IconButton, List, ListItem, ListItemText, Switch, TextField } from '@mui/material'; import get from 'lodash/get'; import { useTranslation } from 'next-i18next'; import { useMemo, useState } from 'react'; import toast from 'react-hot-toast'; import Heading from '@/components/shared/Heading'; import { useAppDispatch, useAppSelector } from '@/store/hooks'; import { setResumeState } from '@/store/resume/resumeSlice'; import getResumeUrl from '@/utils/getResumeUrl'; const Sharing = () => { const { t } = useTranslation(); const dispatch = useAppDispatch(); const [showShortUrl, setShowShortUrl] = useState(false); const resume = useAppSelector((state) => state.resume); const isPublic = useMemo(() => get(resume, 'public'), [resume]); const url = useMemo(() => getResumeUrl(resume, { withHost: true }), [resume]); const shortUrl = useMemo(() => getResumeUrl(resume, { withHost: true, shortUrl: true }), [resume]); const handleSetVisibility = (value: boolean) => dispatch(setResumeState({ path: 'public', value })); const handleCopyToClipboard = async () => { const text = showShortUrl ? shortUrl : url; await navigator.clipboard.writeText(text); toast.success(t('common.toast.success.resume-link-copied')); }; return ( <>
handleSetVisibility(value)} />
), }} />
('builder.rightSidebar.sections.sharing.short-url.label')} control={ setShowShortUrl(value)} /> } />
); }; export default Sharing;