diff --git a/apps/client/src/widgets/dialogs/about.tsx b/apps/client/src/widgets/dialogs/about.tsx index b45cd19905..f2df3dad83 100644 --- a/apps/client/src/widgets/dialogs/about.tsx +++ b/apps/client/src/widgets/dialogs/about.tsx @@ -10,8 +10,6 @@ import { useTriliumEvent } from "../react/hooks.jsx"; import "./about.css"; import { Trans } from "react-i18next"; import type React from "react"; -import icon from "../../assets/icon.svg"; -import iconAlt from "../../assets/icon-alt.svg"; import { useCallback, useEffect } from "react"; import contributors from "../../../../../contributors.json"; import { Fragment } from "preact/jsx-runtime"; @@ -23,6 +21,8 @@ export default function AboutDialog() { const [shown, setShown] = useState(false); const [isNightly, setNightly] = useState(false); const [iconClassName, setIconClassName] = useState("icon-default"); + const [altIconClassName, setAltIconClassName] = useState(null); + const onLoad = useCallback(async () => { if (!appInfo) { @@ -49,7 +49,7 @@ export default function AboutDialog() { >
-
+

Trilium Notes {isNightly && Nightly}

triliumnotes.org @@ -81,7 +81,11 @@ export default function AboutDialog() { {t("about.contributors_label")} - + {setAltIconClassName((isHovering && contributor.role === "original-dev") ? "icon-classic" : null)}} + /> + {t("about.contributor_full_list")} @@ -143,10 +147,12 @@ function FooterLink(props: {children: ComponentChildren, text: string, url: stri } -function Contributors({data}: {data: ContributorList}) { +type HoverCallback = (contributor: Contributor, isHovering: boolean) => void; + +function Contributors({data, onHover}: {data: ContributorList, onHover?: HoverCallback}) { return data.contributors.slice(0, 10).map((c, index, array) => { return - + {/* Add a comma between items */} {(index < array.length - 1) ? ", " : ". "} @@ -154,14 +160,22 @@ function Contributors({data}: {data: ContributorList}) { }); } -function ContributorListItem({data}: {data: Contributor}) { + +function ContributorListItem({data, onHover}: {data: Contributor, onHover?: HoverCallback}) { let roleString = ""; if (data.role) { roleString = t(`about.contributor_roles.${data.role}`); } return <> - {data.fullName ?? data.name} + onHover?.(data, true)} + onMouseLeave={(e) => onHover?.(data, false)}> + + {data.fullName ?? data.name} + {roleString &&  ({roleString})}