import { Link as InertiaLink } from '@inertiajs/react'; import { route } from '@izzyjs/route/client'; import { ActionIcon, Menu } from '@mantine/core'; import { MouseEvent } from 'react'; import { useTranslation } from 'react-i18next'; import { BsThreeDotsVertical } from 'react-icons/bs'; import { FaRegEye } from 'react-icons/fa'; import { GoPencil } from 'react-icons/go'; import { IoTrashOutline } from 'react-icons/io5'; import { MdFavorite, MdFavoriteBorder } from 'react-icons/md'; import { onFavorite } from '~/lib/favorite'; import { appendCollectionId, appendLinkId } from '~/lib/navigation'; import { useFavorites } from '~/stores/collection_store'; import { Link, PublicLink } from '~/types/app'; interface LinksControlsProps { link: Link | PublicLink; showGoToCollection?: boolean; } export default function LinkControls({ link, showGoToCollection = false, }: LinksControlsProps) { const { toggleFavorite } = useFavorites(); const { t } = useTranslation('common'); const onFavoriteCallback = () => toggleFavorite(link.id); const handleStopPropagation = (event: MouseEvent) => event.preventDefault(); return ( {showGoToCollection && ( } color="blue" > {t('go-to-collection')} )} {'favorite' in link && ( onFavorite(link.id, !link.favorite, onFavoriteCallback) } leftSection={link.favorite ? : } color="var(--mantine-color-yellow-7)" > {link.favorite ? t('remove-favorite') : t('add-favorite')} )} } color="blue" > {t('link.edit')} } color="red" > {t('link.delete')} ); }