diff --git a/apps/client/src/widgets/dialogs/about.tsx b/apps/client/src/widgets/dialogs/about.tsx index 056426eaa9..0468f2ca44 100644 --- a/apps/client/src/widgets/dialogs/about.tsx +++ b/apps/client/src/widgets/dialogs/about.tsx @@ -1,21 +1,23 @@ -import Modal from "../react/Modal.js"; +import "./about.css"; + +import type { AppInfo, Contributor, ContributorList } from "@triliumnext/commons"; +import clsx from "clsx"; +import type { ComponentChildren } from "preact"; +import { memo,useMemo } from "preact/compat"; +import { useCallback, useRef,useState } from "preact/hooks"; +import { Fragment } from "preact/jsx-runtime"; +import type React from "react"; +import { Trans } from "react-i18next"; + +import contributors from "../../../../../contributors.json"; import { t } from "../../services/i18n.js"; -import { formatDateTime } from "../../utils/formatters.js"; +import openService from "../../services/open.js"; import server from "../../services/server.js"; import utils from "../../services/utils.js"; -import openService from "../../services/open.js"; -import { useState, useCallback, useRef } from "preact/hooks"; -import type { AppInfo, Contributor, ContributorList } from "@triliumnext/commons"; +import { formatDateTime } from "../../utils/formatters.js"; import { useTooltip, useTriliumEvent } from "../react/hooks.jsx"; +import Modal from "../react/Modal.js"; import { PropertySheet, PropertySheetItem } from "../react/PropertySheet.js"; -import "./about.css"; -import { Trans } from "react-i18next"; -import type React from "react"; -import contributors from "../../../../../contributors.json"; -import { Fragment } from "preact/jsx-runtime"; -import type { ComponentChildren } from "preact"; -import { useMemo, memo } from "preact/compat"; -import clsx from "clsx"; export default function AboutDialog() { const [appInfo, setAppInfo] = useState(null); @@ -55,17 +57,17 @@ export default function AboutDialog() { setAltIcon(null); } } - } + }; }; /* Cache the contributor list to prevent its rerendering. * When the icon changes, it triggers a rerender of the dialog. If this happens while an * element with a tooltip is hovered, its tooltip will break. */ - const CachedContributors = useMemo(() => memo(function CachedContributors() { - return memo(() => { + return + />; }), []); return ( @@ -76,8 +78,8 @@ export default function AboutDialog() { show={isShown} onHidden={() => setIsShown(false)} > -
- +
+

Trilium Notes {isNightly && Nightly}

@@ -112,23 +114,25 @@ export default function AboutDialog() { - -
- {appInfo?.dataDirectory && ()} -
-
+ {appInfo?.dataDirectory && ( + +
+ +
+
+ )} -
+
-
- + - + - + - + -
+ ); } @@ -160,19 +164,18 @@ function RevisionLink({appInfo}: {appInfo: AppInfo | null}) { } function FooterLink(props: {children: ComponentChildren, text: string, url: string, tooltip: string, className?: string}) { - const linkRef = useRef(null); useTooltip(linkRef, { title: props.tooltip, delay: 250, placement: "bottom" - }) - + }); + return {props.children} {props.text} - + ; } type HoverCallback = (contributor: Contributor, isHovering: boolean, part: "name" | "role") => void; @@ -181,10 +184,10 @@ function Contributors({data, onHover}: {data: ContributorList, onHover?: HoverCa return data.contributors.map((c, index, array) => { return - + {/* Add a comma between items */} {(index < array.length - 1) ? ", " : ". "} - + ; }); } @@ -208,7 +211,7 @@ function ContributorListItem({data, onHover}: {data: Contributor, onHover?: Hove rel="noopener noreferrer" onMouseEnter={() => onHover?.(data, true, "name")} onMouseLeave={() => onHover?.(data, false, "name")}> - + {data.fullName ?? data.name} @@ -216,10 +219,10 @@ function ContributorListItem({data, onHover}: {data: Contributor, onHover?: Hove ref={roleRef} onMouseEnter={() => onHover?.(data, true, "role")} onMouseLeave={() => onHover?.(data, false, "role")}> - + ({roleString}) - } - + } + ; } function DirectoryLink({ directory }: { directory: string}) { @@ -229,8 +232,7 @@ function DirectoryLink({ directory }: { directory: string}) { openService.openDirectory(directory); }; - return {directory} - } else { - return {directory}; + return {directory}; } -} \ No newline at end of file + return {directory}; +}