Explorar o código

feat: add font size setting

伏晓 hai 1 ano
pai
achega
f979822508
Modificáronse 6 ficheiros con 36 adicións e 1 borrados
  1. 2 0
      app/components/home.tsx
  2. 20 0
      app/components/settings.tsx
  3. 4 0
      app/locales/cn.ts
  4. 4 0
      app/locales/en.ts
  5. 4 0
      app/locales/tw.ts
  6. 2 1
      app/store/app.ts

+ 2 - 0
app/components/home.tsx

@@ -178,6 +178,7 @@ export function Chat(props: { showSideBar?: () => void }) {
     state.currentSession(),
     state.currentSessionIndex,
   ]);
+  const fontSize = useChatStore((state) => state.config.fontSize);
 
   const inputRef = useRef<HTMLTextAreaElement>(null);
   const [userInput, setUserInput] = useState("");
@@ -406,6 +407,7 @@ export function Chat(props: { showSideBar?: () => void }) {
                   ) : (
                     <div
                       className="markdown-body"
+                      style={{ fontSize: `${fontSize}px` }}
                       onContextMenu={(e) => onRightClick(e, message)}
                     >
                       <Markdown content={message.content} />

+ 20 - 0
app/components/settings.tsx

@@ -226,6 +226,26 @@ export function Settings(props: { closeSettings: () => void }) {
             </select>
           </SettingItem>
 
+          <SettingItem
+            title={Locale.Settings.FontSize.Title}
+            subTitle={Locale.Settings.FontSize.SubTitle}
+          >
+            <input
+              type="range"
+              title={config.fontSize.toString() + 'px'}
+              value={config.fontSize}
+              min="12"
+              max="18"
+              step="1"
+              onChange={(e) =>
+                updateConfig(
+                  (config) =>
+                    (config.fontSize = Number.parseInt(e.currentTarget.value))
+                )
+              }
+            ></input>
+          </SettingItem>
+
           <div className="no-mobile">
             <SettingItem title={Locale.Settings.TightBorder}>
               <input

+ 4 - 0
app/locales/cn.ts

@@ -51,6 +51,10 @@ const cn = {
       },
     },
     Avatar: "头像",
+    FontSize: {
+      Title: "字体大小",
+      SubTitle: "聊天内容的字体大小",
+    },
     Update: {
       Version: (x: string) => `当前版本:${x}`,
       IsLatest: "已是最新版本",

+ 4 - 0
app/locales/en.ts

@@ -55,6 +55,10 @@ const en: LocaleType = {
       },
     },
     Avatar: "Avatar",
+    FontSize: {
+      Title: "Font Size",
+      SubTitle: "Adjust font size of chat content",
+    },
     Update: {
       Version: (x: string) => `Version: ${x}`,
       IsLatest: "Latest version",

+ 4 - 0
app/locales/tw.ts

@@ -53,6 +53,10 @@ const tw: LocaleType = {
       },
     },
     Avatar: "大頭貼",
+    FontSize: {
+      Title: "字型大小",
+      SubTitle: "聊天內容的字型大小",
+    },
     Update: {
       Version: (x: string) => `當前版本:${x}`,
       IsLatest: "已是最新版本",

+ 2 - 1
app/store/app.ts

@@ -31,12 +31,12 @@ export enum Theme {
 }
 
 export interface ChatConfig {
-  maxToken?: number;
   historyMessageCount: number; // -1 means all
   compressMessageLengthThreshold: number;
   sendBotMessages: boolean; // send bot's message or not
   submitKey: SubmitKey;
   avatar: string;
+  fontSize: number;
   theme: Theme;
   tightBorder: boolean;
 
@@ -123,6 +123,7 @@ const DEFAULT_CONFIG: ChatConfig = {
   sendBotMessages: true as boolean,
   submitKey: SubmitKey.CtrlEnter as SubmitKey,
   avatar: "1f603",
+  fontSize: 14,
   theme: Theme.Auto as Theme,
   tightBorder: false,