diff --git a/package.json b/package.json index 00fd932e..4ad78d8d 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "lint:fix": "deno lint --fix src/", "format": "deno fmt src/", "dev": "deno task dev:ui", - "dev:ui": "deno run -A npm:vite dev", + "dev:ui": "VITE_APP_VERSION=development deno run -A npm:vite dev", "test": "deno run -A npm:vitest", "preview": "deno run -A npm:vite preview", "package": "gzipper c -i html,js,css,png,ico,svg,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ ." diff --git a/src/components/DeviceInfoPanel.tsx b/src/components/DeviceInfoPanel.tsx index b753aaff..0e332f03 100644 --- a/src/components/DeviceInfoPanel.tsx +++ b/src/components/DeviceInfoPanel.tsx @@ -2,7 +2,7 @@ import { cn } from "@core/utils/cn.ts"; import { CpuIcon, Languages, - LucideIcon, + type LucideIcon, Palette, PenLine, Search as SearchIcon, @@ -11,7 +11,7 @@ import { import BatteryStatus from "./BatteryStatus.tsx"; import { Subtle } from "./UI/Typography/Subtle.tsx"; import { Avatar } from "./UI/Avatar.tsx"; -import { DeviceMetrics } from "./types.ts"; +import type { DeviceMetrics } from "./types.ts"; import { Button } from "./UI/Button.tsx"; import React, { Fragment } from "react"; import { useTranslation } from "react-i18next"; @@ -110,131 +110,130 @@ export const DeviceInfoPanel = ({ ]; return ( -
-
-
- - {!isCollapsed && ( -

- {user.longName} -

- )} -
- + <> +
+ {!isCollapsed && ( -
+

+ {user.longName} +

)} +
-
- {deviceInfoItems.map((item) => { - const IconComponent = item.icon; - return ( -
- {IconComponent && ( - - )} - {item.customComponent} - {item.id !== "battery" && ( - - {item.label}: {item.value} - - )} -
- ); - })} + {!isCollapsed && ( +
+ )} - {!isCollapsed && ( -
+
+ {deviceInfoItems.map((item) => { + const IconComponent = item.icon; + return ( +
+ {IconComponent && ( + + )} + {item.customComponent} + {item.id !== "battery" && ( + + {item.label}: {item.value} + + )} +
+ ); + })} +
-
- {actionButtons.map((buttonItem) => { - const Icon = buttonItem.icon; - if (buttonItem.render) { - return ( - - {buttonItem.render()} - - ); - } + {!isCollapsed && ( +
+
+ )} + +
+ {actionButtons.map((buttonItem) => { + const Icon = buttonItem.icon; + if (buttonItem.render) { return ( - - ); - })} - {/* {import.meta.env.COMMIT_HASH} */} -
+ {buttonItem.label} + + + ); + })}
-
+ ); }; diff --git a/src/components/PageLayout.tsx b/src/components/PageLayout.tsx index 5d2d9167..a08a2afa 100644 --- a/src/components/PageLayout.tsx +++ b/src/components/PageLayout.tsx @@ -111,7 +111,7 @@ export const PageLayout = ({ {rightBar && (
-
+
{myNode === undefined ? (
diff --git a/src/components/UI/Footer.tsx b/src/components/UI/Footer.tsx index 7d762b21..1a9cf55d 100644 --- a/src/components/UI/Footer.tsx +++ b/src/components/UI/Footer.tsx @@ -1,11 +1,13 @@ import { cn } from "@core/utils/cn.ts"; -import { Trans } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; type FooterProps = { className?: string; }; const Footer = ({ className, ...props }: FooterProps) => { + const { t } = useTranslation(); + return (