From db03f198818bcebdcdcf49290502aef8a257f73a Mon Sep 17 00:00:00 2001 From: lisicheng Date: Wed, 29 Jan 2025 19:19:14 +0800 Subject: [PATCH] general ui tweaks for settings --- src/components/Settings/Appearance.jsx | 63 ++++++++++++++----- src/components/Settings/General.jsx | 39 +++++++++--- src/components/Settings/Readability.jsx | 45 ++++++++++--- .../Settings/components/Language.jsx | 9 ++- src/components/Settings/components/Theme.jsx | 19 ++++-- src/components/ui/SettingIcon.jsx | 29 +++++++++ src/components/ui/settingItem.jsx | 10 ++- src/i18n/locales/zh-CN.js | 6 +- 8 files changed, 173 insertions(+), 47 deletions(-) create mode 100644 src/components/ui/SettingIcon.jsx diff --git a/src/components/Settings/Appearance.jsx b/src/components/Settings/Appearance.jsx index 77c7088..982afe8 100644 --- a/src/components/Settings/Appearance.jsx +++ b/src/components/Settings/Appearance.jsx @@ -21,6 +21,7 @@ import { } from "lucide-react"; import Theme from "./components/Theme"; import { useTranslation } from "react-i18next"; +import SettingIcon from "@/components/ui/SettingIcon"; export default function Appearance() { const { @@ -43,11 +44,9 @@ export default function Appearance() { - ) : ( - - ) + + {feedIconShape === "circle" ? : } + } settingName="feedIconShape" settingValue={feedIconShape} @@ -59,7 +58,11 @@ export default function Appearance() { } + icon={ + + + + } settingName="useGrayIcon" settingValue={useGrayIcon} /> @@ -67,7 +70,11 @@ export default function Appearance() { } + icon={ + + + + } settingName="cardImageSize" settingValue={cardImageSize} options={[ @@ -79,21 +86,33 @@ export default function Appearance() { } + icon={ + + + + } settingName="showFavicon" settingValue={showFavicon} /> } + icon={ + + + + } settingName="showTextPreview" settingValue={showTextPreview} /> } + icon={ + + + + } settingName="showReadingTime" settingValue={showReadingTime} /> @@ -101,7 +120,11 @@ export default function Appearance() { } + icon={ + + + + } settingName="useNativeVideoPlayer" settingValue={useNativeVideoPlayer} /> @@ -109,14 +132,22 @@ export default function Appearance() { } + icon={ + + + + } settingName="showLineNumbers" settingValue={showLineNumbers} /> } + icon={ + + + + } settingName="forceDarkCodeTheme" settingValue={forceDarkCodeTheme} /> @@ -124,7 +155,11 @@ export default function Appearance() { } + icon={ + + + + } settingName="reduceMotion" settingValue={reduceMotion} /> diff --git a/src/components/Settings/General.jsx b/src/components/Settings/General.jsx index 90a969f..7566e8b 100644 --- a/src/components/Settings/General.jsx +++ b/src/components/Settings/General.jsx @@ -17,6 +17,7 @@ import { import { Divider } from "@heroui/react"; import Language from "@/components/Settings/components/Language.jsx"; import { useTranslation } from "react-i18next"; +import SettingIcon from "@/components/ui/SettingIcon"; export default function General() { const { @@ -34,7 +35,11 @@ export default function General() { } + icon={ + + + + } settingName="syncInterval" settingValue={syncInterval} options={[ @@ -49,14 +54,22 @@ export default function General() { } + icon={ + + + + } settingName="showHiddenFeeds" settingValue={showHiddenFeeds} /> } + icon={ + + + + } settingName="defaultExpandCategory" settingValue={defaultExpandCategory} /> @@ -65,11 +78,9 @@ export default function General() { - ) : ( - - ) + + {sortDirection === "desc" ? : } + } settingName="sortDirection" settingValue={sortDirection} @@ -81,14 +92,22 @@ export default function General() { } + icon={ + + + + } settingName="showUnreadByDefault" settingValue={showUnreadByDefault} /> } + icon={ + + + + } settingName="markAsReadOnScroll" settingValue={markAsReadOnScroll} /> diff --git a/src/components/Settings/Readability.jsx b/src/components/Settings/Readability.jsx index 34b0de8..5575924 100644 --- a/src/components/Settings/Readability.jsx +++ b/src/components/Settings/Readability.jsx @@ -21,6 +21,7 @@ import { import { Button, Divider } from "@heroui/react"; import { resetSettings } from "@/stores/settingsStore.js"; import { useTranslation } from "react-i18next"; +import SettingIcon from "@/components/ui/SettingIcon"; export default function Readability() { const { @@ -71,14 +72,22 @@ export default function Readability() { } + icon={ + + + + } settingName="autoHideToolbar" settingValue={autoHideToolbar} /> } + icon={ + + + + } settingName="fontFamily" settingValue={fontFamily} options={fontOptions} @@ -86,14 +95,22 @@ export default function Readability() { } + icon={ + + + + } settingName="alignJustify" settingValue={alignJustify} /> } + icon={ + + + + } settingName="lineHeight" settingValue={lineHeight} max={2.5} @@ -103,7 +120,11 @@ export default function Readability() { } + icon={ + + + + } settingName="fontSize" settingValue={fontSize} max={24} @@ -114,7 +135,9 @@ export default function Readability() { + + + } settingName="maxWidth" settingValue={maxWidth} @@ -127,7 +150,9 @@ export default function Readability() { + + + } settingName="titleAlignType" settingValue={titleAlignType} @@ -139,7 +164,11 @@ export default function Readability() { } + icon={ + + + + } settingName="titleFontSize" settingValue={titleFontSize} max={3.0} diff --git a/src/components/Settings/components/Language.jsx b/src/components/Settings/components/Language.jsx index 1f9b425..ba01849 100644 --- a/src/components/Settings/components/Language.jsx +++ b/src/components/Settings/components/Language.jsx @@ -1,6 +1,6 @@ import { useTranslation } from "react-i18next"; import { ItemWrapper } from "@/components/ui/settingItem.jsx"; -import { ChevronsUpDown, Earth } from "lucide-react"; +import { ChevronsUpDown, Globe } from "lucide-react"; import { Button, Dropdown, @@ -8,6 +8,7 @@ import { DropdownMenu, DropdownTrigger, } from "@heroui/react"; +import SettingIcon from "@/components/ui/SettingIcon"; const languages = [ { id: "zh-CN", name: "简体中文" }, @@ -21,7 +22,9 @@ export default function Language() {
- + + +
{t("settings.general.interfaceLanguage")}
@@ -29,7 +32,7 @@ export default function Language() {