diff --git a/inertia/components/dashboard/collection/list/collection_list.module.css b/inertia/components/dashboard/collection/list/collection_list.module.css index fb28f67..f8d9956 100644 --- a/inertia/components/dashboard/collection/list/collection_list.module.css +++ b/inertia/components/dashboard/collection/list/collection_list.module.css @@ -14,8 +14,6 @@ } .collectionList { - padding: 1px; - padding-right: 5px; display: flex; flex: 1; gap: 0.35em; diff --git a/inertia/components/dashboard/favorite/item/favorite_item.module.css b/inertia/components/dashboard/favorite/item/favorite_item.module.css index 77dacdd..6639ee6 100644 --- a/inertia/components/dashboard/favorite/item/favorite_item.module.css +++ b/inertia/components/dashboard/favorite/item/favorite_item.module.css @@ -2,43 +2,11 @@ user-select: none; cursor: pointer; width: 100%; - background-color: light-dark(var(--mantine-color-gray-1), rgb(50, 58, 71)); + background-color: light-dark(var(--mantine-color-white), rgb(50, 58, 71)); padding: 0.25em 0.5em !important; - border-radius: var(--border-radius); border: 1px solid transparent; } .linkWrapper:hover { border: 1px solid var(--mantine-color-blue-4); } - -.linkName { - width: 100%; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} - -.linkDescription { - margin-top: 0.5em; - font-size: 0.8em; - word-wrap: break-word; -} - -.linkUrl { - width: 100%; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - font-size: 0.8em; - transition: opacity 0.3s; -} - -.linkWrapper:hover .linkUrlPathname { - opacity: 1; -} - -.linkUrlPathname { - opacity: 0; - transition: opacity 0.3s; -} diff --git a/inertia/components/dashboard/favorite/item/favorite_item.tsx b/inertia/components/dashboard/favorite/item/favorite_item.tsx index 17e0aec..2d7e345 100644 --- a/inertia/components/dashboard/favorite/item/favorite_item.tsx +++ b/inertia/components/dashboard/favorite/item/favorite_item.tsx @@ -1,4 +1,4 @@ -import { Card, Group, Text } from '@mantine/core'; +import { Box, Card, Group, Text } from '@mantine/core'; 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'; @@ -6,18 +6,24 @@ import { LinkWithCollection } from '~/types/app'; import styles from './favorite_item.module.css'; export const FavoriteItem = ({ link }: { link: LinkWithCollection }) => ( - - - - -
- {link.name} -
- - {link.collection.name} - -
- -
-
+ + + + + + + {link.name} + + + {link.collection.name} + + + + + + ); diff --git a/inertia/components/dashboard/link/item/link.module.css b/inertia/components/dashboard/link/item/link.module.css index 2ff8e66..bd23de8 100644 --- a/inertia/components/dashboard/link/item/link.module.css +++ b/inertia/components/dashboard/link/item/link.module.css @@ -2,9 +2,8 @@ user-select: none; cursor: pointer; width: 100%; - background-color: light-dark(var(--mantine-color-gray-1), rgb(50, 58, 71)); - padding: 0.75em 1em; - border-radius: var(--border-radius); + background-color: light-dark(var(--mantine-color-white), rgb(50, 58, 71)); + padding: 0.5em 0.75em !important; border: 1px solid transparent; } @@ -12,32 +11,9 @@ border: 1px solid var(--mantine-color-blue-4); } -.linkHeader { - display: flex; - gap: 1em; - align-items: center; -} - -.linkName { - width: 100%; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} - -.linkDescription { - margin-top: 0.5em; - font-size: 0.8em; - word-wrap: break-word; -} - .linkUrl { - width: 100%; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - font-size: 0.8em; - transition: opacity 0.3s; + max-width: calc(100% - 50px); + transition: opacity 0.15s; } .linkWrapper:hover .linkUrlPathname { @@ -46,5 +22,5 @@ .linkUrlPathname { opacity: 0; - transition: opacity 0.3s; + transition: opacity 0.15s; } diff --git a/inertia/components/dashboard/link/item/link_controls.tsx b/inertia/components/dashboard/link/item/link_controls.tsx index 8a257ad..4678768 100644 --- a/inertia/components/dashboard/link/item/link_controls.tsx +++ b/inertia/components/dashboard/link/item/link_controls.tsx @@ -1,6 +1,7 @@ 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'; @@ -24,10 +25,17 @@ export default function LinkControls({ const { t } = useTranslation('common'); const onFavoriteCallback = () => toggleFavorite(link.id); + const handleStopPropagation = (event: MouseEvent) => + event.preventDefault(); + return ( - + diff --git a/inertia/components/dashboard/link/item/link_item.tsx b/inertia/components/dashboard/link/item/link_item.tsx index 8e51fa8..52e6800 100644 --- a/inertia/components/dashboard/link/item/link_item.tsx +++ b/inertia/components/dashboard/link/item/link_item.tsx @@ -1,4 +1,4 @@ -import { Card, Group, Text } from '@mantine/core'; +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'; @@ -15,48 +15,35 @@ 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} - - )} -
+ + + {!hideMenu && } + + {description && ( + + {description} + + )} + + ); } function LinkItemURL({ url }: { url: Link['url'] }) { try { - const { origin, pathname, search } = new URL(url); - let text = ''; - - if (pathname !== '/') { - text += pathname; - } - - if (search !== '') { - if (text === '') { - text += '/'; - } - text += search; - } - + const { origin, pathname } = new URL(url); return ( {origin} - {text} + {pathname} ); } catch (error) {