From 94f714e25e18fdae9e1f720984b90c7ffcdbd53d Mon Sep 17 00:00:00 2001 From: Zhang Minghan Date: Mon, 27 Nov 2023 18:20:49 +0800 Subject: [PATCH] update pwa icons --- app/index.html | 1 + app/public/service/android-chrome-192x192.png | Bin 0 -> 9476 bytes app/public/service/android-chrome-512x512.png | Bin 0 -> 38312 bytes app/public/service/favicon-64x64.png | Bin 0 -> 2556 bytes app/public/site.webmanifest | 20 ++++++++++ app/src/components/FileProvider.tsx | 5 ++- app/src/components/Markdown.tsx | 36 +++++++++--------- app/src/components/home/ChatInterface.tsx | 3 +- app/src/components/home/ModelFinder.tsx | 19 ++------- app/src/components/home/ModelMarket.tsx | 7 +--- .../home/assemblies/ScrollAction.tsx | 6 +-- app/src/conf.ts | 2 - 12 files changed, 52 insertions(+), 47 deletions(-) create mode 100644 app/public/service/android-chrome-192x192.png create mode 100644 app/public/service/android-chrome-512x512.png create mode 100644 app/public/service/favicon-64x64.png create mode 100644 app/public/site.webmanifest diff --git a/app/index.html b/app/index.html index 69d20fc..5d5e4e9 100644 --- a/app/index.html +++ b/app/index.html @@ -14,6 +14,7 @@ + diff --git a/app/public/service/android-chrome-192x192.png b/app/public/service/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..93b4b14e0e0fa44473cf488005c150442cf18497 GIT binary patch literal 9476 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 YH_rOsVUA3gn@a#?d3CvJ8H>>W0a@iwf&c&j literal 0 HcmV?d00001 diff --git a/app/public/service/android-chrome-512x512.png b/app/public/service/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..82a3f92710b0b737e17a846db367c596bc4202b0 GIT binary patch literal 38312 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 literal 0 HcmV?d00001 diff --git a/app/public/service/favicon-64x64.png b/app/public/service/favicon-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..09e50c8896896a6437066948d4deead84c6bf4bc GIT binary patch literal 2556 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 S$?tIh0000 - 0 ? "active" : ""}> + 0 ? "active" : ""} + > diff --git a/app/src/components/Markdown.tsx b/app/src/components/Markdown.tsx index c77b8e1..d2377e2 100644 --- a/app/src/components/Markdown.tsx +++ b/app/src/components/Markdown.tsx @@ -1,22 +1,22 @@ -import {LightAsync as SyntaxHighlighter} from "react-syntax-highlighter"; -import {atomOneDark as style} from "react-syntax-highlighter/dist/esm/styles/hljs"; +import { LightAsync as SyntaxHighlighter } from "react-syntax-highlighter"; +import { atomOneDark as style } from "react-syntax-highlighter/dist/esm/styles/hljs"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import remarkMath from "remark-math"; import remarkBreaks from "remark-breaks"; import rehypeKatex from "rehype-katex"; -import {parseFile} from "./plugins/file.tsx"; +import { parseFile } from "./plugins/file.tsx"; import "@/assets/markdown/all.less"; -import {useEffect, useMemo} from "react"; -import {useDispatch} from "react-redux"; -import {openDialog as openQuotaDialog} from "@/store/quota.ts"; -import {openDialog as openSubscriptionDialog} from "@/store/subscription.ts"; -import {AppDispatch} from "@/store"; -import {Copy} from "lucide-react"; -import {copyClipboard} from "@/utils/dom.ts"; -import {useToast} from "./ui/use-toast.ts"; -import {useTranslation} from "react-i18next"; -import {parseProgressbar} from "@/components/plugins/progress.tsx"; +import { useEffect, useMemo } from "react"; +import { useDispatch } from "react-redux"; +import { openDialog as openQuotaDialog } from "@/store/quota.ts"; +import { openDialog as openSubscriptionDialog } from "@/store/subscription.ts"; +import { AppDispatch } from "@/store"; +import { Copy } from "lucide-react"; +import { copyClipboard } from "@/utils/dom.ts"; +import { useToast } from "./ui/use-toast.ts"; +import { useTranslation } from "react-i18next"; +import { parseProgressbar } from "@/components/plugins/progress.tsx"; type MarkdownProps = { children: string; @@ -125,12 +125,10 @@ function MarkdownContent({ children, className }: MarkdownProps) { function Markdown(props: MarkdownProps) { // memoize the component const { children, className } = props; - return useMemo(() => ( - {children} - ), [ - props.children, - props.className, - ]); + return useMemo( + () => {children}, + [props.children, props.className], + ); } export default Markdown; diff --git a/app/src/components/home/ChatInterface.tsx b/app/src/components/home/ChatInterface.tsx index 5b16098..b3c419c 100644 --- a/app/src/components/home/ChatInterface.tsx +++ b/app/src/components/home/ChatInterface.tsx @@ -43,7 +43,8 @@ function ChatInterface({ setTarget, setWorking }: ChatInterfaceProps) { const offset = el.scrollTop - position; setPosition(el.scrollTop); if (offset < 0) setScrollable(false); - else setScrollable(el.scrollTop + el.clientHeight + 20 >= el.scrollHeight); + else + setScrollable(el.scrollTop + el.clientHeight + 20 >= el.scrollHeight); }; return addEventListeners( el, diff --git a/app/src/components/home/ModelFinder.tsx b/app/src/components/home/ModelFinder.tsx index 6265d55..6e9c8c8 100644 --- a/app/src/components/home/ModelFinder.tsx +++ b/app/src/components/home/ModelFinder.tsx @@ -1,10 +1,5 @@ import SelectGroup, { SelectItemProps } from "@/components/SelectGroup.tsx"; -import { - expensiveModels, - login, - studentModels, - supportModels, -} from "@/conf.ts"; +import { expensiveModels, login, supportModels } from "@/conf.ts"; import { getPlanModels, openMarket, @@ -32,19 +27,13 @@ type ModelSelectorProps = { side?: "left" | "right" | "top" | "bottom"; }; -function filterModel(model: Model, level: number, student: boolean) { +function filterModel(model: Model, level: number) { if (getPlanModels(level).includes(model.id)) { return { name: model.id, value: model.name, badge: { variant: "gold", name: "plus" }, } as SelectItemProps; - } else if (student && studentModels.includes(model.id)) { - return { - name: model.id, - value: model.name, - badge: { variant: "gold", name: "student" }, - } as SelectItemProps; } else if (expensiveModels.includes(model.id)) { return { name: model.id, @@ -82,9 +71,7 @@ function ModelFinder(props: ModelSelectorProps) { const models = useMemo(() => { const raw = supportModels.filter((model) => list.includes(model.id)); return [ - ...raw.map( - (model: Model): SelectItemProps => filterModel(model, level, student), - ), + ...raw.map((model: Model): SelectItemProps => filterModel(model, level)), { icon: , name: "market", diff --git a/app/src/components/home/ModelMarket.tsx b/app/src/components/home/ModelMarket.tsx index c44a59c..9a7a7e9 100644 --- a/app/src/components/home/ModelMarket.tsx +++ b/app/src/components/home/ModelMarket.tsx @@ -10,7 +10,7 @@ import { X, } from "lucide-react"; import React, { useMemo, useState } from "react"; -import { login, modelAvatars, studentModels, supportModels } from "@/conf.ts"; +import { login, modelAvatars, supportModels } from "@/conf.ts"; import { splitList } from "@/utils/base.ts"; import { Model } from "@/api/types.ts"; import { useDispatch, useSelector } from "react-redux"; @@ -81,10 +81,7 @@ function ModelItem({ model, className, style }: ModelProps) { }, [model, current, list]); const pro = useMemo(() => { - return ( - getPlanModels(level).includes(model.id) || - (student && studentModels.includes(model.id)) - ); + return getPlanModels(level).includes(model.id); }, [model, level, student]); const avatar = useMemo(() => { diff --git a/app/src/components/home/assemblies/ScrollAction.tsx b/app/src/components/home/assemblies/ScrollAction.tsx index 4667e48..1ea6c5e 100644 --- a/app/src/components/home/assemblies/ScrollAction.tsx +++ b/app/src/components/home/assemblies/ScrollAction.tsx @@ -4,9 +4,9 @@ import { chatEvent } from "@/events/chat.ts"; import { addEventListeners, scrollDown } from "@/utils/dom.ts"; import { ChatAction } from "@/components/home/assemblies/ChatAction.tsx"; import { useTranslation } from "react-i18next"; -import {Message} from "@/api/types.ts"; -import {useSelector} from "react-redux"; -import {selectMessages} from "@/store/chat.ts"; +import { Message } from "@/api/types.ts"; +import { useSelector } from "react-redux"; +import { selectMessages } from "@/store/chat.ts"; type ScrollActionProps = { visible: boolean; diff --git a/app/src/conf.ts b/app/src/conf.ts index a4bd5cc..8301f4b 100644 --- a/app/src/conf.ts +++ b/app/src/conf.ts @@ -338,8 +338,6 @@ export const largeContextModels = [ "zhipu-chatglm-turbo", ]; -export const studentModels = ["claude-2-100k", "claude-2"]; - export const planModels: PlanModel[] = [ { id: "gpt-4-0613", level: 1 }, { id: "gpt-4-1106-preview", level: 1 },