import { Card, Flex, Group, Text } from '@mantine/core'; import { AiFillStar } from 'react-icons/ai'; import { ExternalLinkStyled } from '~/components/common/external_link_styled'; import LinkFavicon from '~/components/dashboard/link/item/favicon/link_favicon'; import LinkControls from '~/components/dashboard/link/item/link_controls'; import type { LinkListProps } from '~/components/dashboard/link/list/link_list'; import { Link, PublicLink } from '~/types/app'; import styles from './link.module.css'; interface LinkItemProps extends LinkListProps { link: Link | PublicLink; } export function LinkItem({ link, hideMenu: hideMenu = false }: LinkItemProps) { const { name, url, description } = link; const showFavoriteIcon = !hideMenu && 'favorite' in link && link.favorite; return ( {name} {showFavoriteIcon && } {!hideMenu && } {description && ( {description} )} ); } function LinkItemURL({ url }: { url: Link['url'] }) { try { const { origin, pathname } = new URL(url); return ( {origin} {pathname !== '/' && pathname} ); } catch (error) { console.error('error', error); return ( {url} ); } }