Files
mtdb_movie/resources/client/sharing/share-menu-trigger.tsx
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

66 lines
1.9 KiB
TypeScript
Executable File

import {Menu, MenuTrigger} from '@common/ui/navigation/menu/menu-trigger';
import {Item} from '@common/ui/forms/listbox/item';
import {Trans} from '@common/i18n/trans';
import {FacebookIcon} from '@common/icons/social/facebook';
import {TwitterIcon} from '@common/icons/social/twitter';
import useClipboard from 'react-use-clipboard';
import {toast} from '@common/ui/toast/toast';
import {message} from '@common/i18n/message';
import {shareLinkSocially} from '@common/utils/urls/share-link-socially';
import {useTrans} from '@common/i18n/use-trans';
import {ReactElement} from 'react';
import {CopyLinkIcon} from '@app/sharing/copy-link-icon';
interface Props {
link: string;
children: ReactElement;
}
export function ShareMenuTrigger({link, children}: Props) {
const {trans} = useTrans();
const [, setUrlCopied] = useClipboard(link);
return (
<MenuTrigger>
{children}
<Menu>
<Item
value="clipboard"
startIcon={<CopyLinkIcon />}
onSelected={() => {
setUrlCopied();
toast.positive(message('Copied link to clipboard'));
}}
>
<Trans message="Copy to clipboard" />
</Item>
<Item
value="facebook"
startIcon={<FacebookIcon />}
onClick={() => {
shareLinkSocially(
'facebook',
link,
trans(message('Check out this link')),
);
}}
>
<Trans message="Share to facebook" />
</Item>
<Item
value="twitter"
startIcon={<TwitterIcon />}
onClick={() => {
shareLinkSocially(
'twitter',
link,
trans(message('Check out this link')),
);
}}
>
<Trans message="Share to twitter" />
</Item>
</Menu>
</MenuTrigger>
);
}