From d774630aeaf2e869223ea8bfb47a5ddcf3f04c12 Mon Sep 17 00:00:00 2001 From: xjs Date: Wed, 11 Jun 2025 17:13:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/icons/logo.png | Bin 0 -> 10366 bytes src/app/App.tsx | 7 ++- src/components/Loading/index.css | 26 +++++++++++ src/components/Loading/index.tsx | 15 +++++++ src/hooks/useAudioTest.ts | 75 ------------------------------- 5 files changed, 46 insertions(+), 77 deletions(-) create mode 100644 public/icons/logo.png create mode 100644 src/components/Loading/index.css create mode 100644 src/components/Loading/index.tsx delete mode 100644 src/hooks/useAudioTest.ts diff --git a/public/icons/logo.png b/public/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..952440b406ac915a10ebd0c286f7bb4f02121396 GIT binary patch literal 10366 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 import("@/app/MainArea/index")); function App() { return (
- + }> + +
); } diff --git a/src/components/Loading/index.css b/src/components/Loading/index.css new file mode 100644 index 0000000..d822f57 --- /dev/null +++ b/src/components/Loading/index.css @@ -0,0 +1,26 @@ +.custom-animation { + height: calc(100% - 12px); + will-change: width; + animation: moveBackAndForth 2s infinite linear; +} + +@keyframes moveBackAndForth { + 0% { + transform: translateX(0); + } + 25% { + width: calc(40%); + transform: translateX(calc(50% - 12px)); + } + 50% { + width: calc(20%); + transform: translateX(calc(400% - 12px)); + } + 75% { + width: calc(40%); + transform: translateX(calc(50% - 12px)); + } + 100% { + transform: translateX(0); + } +} \ No newline at end of file diff --git a/src/components/Loading/index.tsx b/src/components/Loading/index.tsx new file mode 100644 index 0000000..dfd9df1 --- /dev/null +++ b/src/components/Loading/index.tsx @@ -0,0 +1,15 @@ +import "./index.css"; +import LogoSvg from "/icons/logo.png"; + +export const Loading = () => { + return ( +
+
+
+
+ +
+
+
+ ); +}; diff --git a/src/hooks/useAudioTest.ts b/src/hooks/useAudioTest.ts deleted file mode 100644 index adda35b..0000000 --- a/src/hooks/useAudioTest.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { useEffect, useRef } from 'react'; - -export function useTtsPlayer() { - const audioRef = useRef(null); - - // 第一次挂载时,创建一个隐藏的