From e526e81f58ff8b9bafbc3547a10b780c763dcdbc Mon Sep 17 00:00:00 2001 From: shanhexi Date: Tue, 9 Jan 2024 21:12:27 +0800 Subject: [PATCH 1/5] fix: windows Unable to hold down ctrl multiple selection --- .../src/components/SearchResult/hooks/useMultipleSelect.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chat2db-client/src/components/SearchResult/hooks/useMultipleSelect.ts b/chat2db-client/src/components/SearchResult/hooks/useMultipleSelect.ts index 4ba5ce021..8b2bca11f 100644 --- a/chat2db-client/src/components/SearchResult/hooks/useMultipleSelect.ts +++ b/chat2db-client/src/components/SearchResult/hooks/useMultipleSelect.ts @@ -32,7 +32,7 @@ const useMultipleSelect = (props: { if (event.keyCode === 16) { isShiftDownRef.current = true; } - if (event.keyCode === 91) { + if (event.keyCode === 91 || event.keyCode === 17) { isCmdDownRef.current = true; } }; From c3cf89b7f2af9baedea9f7cb25250ccb56e44107 Mon Sep 17 00:00:00 2001 From: shanhexi Date: Thu, 11 Jan 2024 20:48:32 +0800 Subject: [PATCH 2/5] feat:Open screen animation --- .../components/OpenScreenAnimation/index.less | 48 +++++++++++++++++++ .../components/OpenScreenAnimation/index.tsx | 20 ++++++++ .../src/hooks/usePollRequestService.ts | 6 ++- .../src/layouts/GlobalLayout/index.tsx | 18 +++---- chat2db-client/src/pages/demo/index.tsx | 19 ++++---- 5 files changed, 93 insertions(+), 18 deletions(-) create mode 100644 chat2db-client/src/components/OpenScreenAnimation/index.less create mode 100644 chat2db-client/src/components/OpenScreenAnimation/index.tsx diff --git a/chat2db-client/src/components/OpenScreenAnimation/index.less b/chat2db-client/src/components/OpenScreenAnimation/index.less new file mode 100644 index 000000000..f3ef71651 --- /dev/null +++ b/chat2db-client/src/components/OpenScreenAnimation/index.less @@ -0,0 +1,48 @@ +.openScreenAnimation { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + align-items: center; + justify-content: center; + // animation: disNone 0.666s 0.666s forwards; + background-color: var(--color-bg-base); + z-index: 100000; + + .textImg{ + line-height: 40px; + font-size: 45px; + font-weight: bold; + width: 200px; + height: 40px; + text-align: right; + } + + .brandName{ + width: 0; + display: flex; + justify-content: flex-end; + overflow: hidden; + animation: textAnimation 0.666s 0.333s ease-in-out forwards; + } +} + +@keyframes textAnimation { + 0% { + width: 0; + } + 100% { + width: 200px; + } +} + +@keyframes disNone { + 0% { + display: flex; + } + 100% { + display: none; + } +} diff --git a/chat2db-client/src/components/OpenScreenAnimation/index.tsx b/chat2db-client/src/components/OpenScreenAnimation/index.tsx new file mode 100644 index 000000000..854c30db3 --- /dev/null +++ b/chat2db-client/src/components/OpenScreenAnimation/index.tsx @@ -0,0 +1,20 @@ +import React, { memo } from 'react'; +import styles from './index.less'; +import classnames from 'classnames'; +import BrandLogo from '@/components/BrandLogo' + +interface IProps { + className?: string; +} + +export default memo((props) => { + const { className } = props; + return
+ +
+
+ Chat2DB +
+
+
+}); diff --git a/chat2db-client/src/hooks/usePollRequestService.ts b/chat2db-client/src/hooks/usePollRequestService.ts index a4cdb322f..ce4d3e475 100644 --- a/chat2db-client/src/hooks/usePollRequestService.ts +++ b/chat2db-client/src/hooks/usePollRequestService.ts @@ -22,6 +22,7 @@ const usePollRequestService = ({ maxAttempts = 200, interval = 200, loopService const [serviceStatus, setServiceStatus] = useState(ServiceStatus.PENDING); const [restart, setRestart] = useState(false); const attempts = useRef(0); + const startupDate = useRef(new Date().getTime()); const serviceFn = async () => { // The first request fails. Start the service @@ -35,7 +36,10 @@ const usePollRequestService = ({ maxAttempts = 200, interval = 200, loopService attempts.current = attempts.current + 1; loopService().then((res) => { if (res) { - setServiceStatus(ServiceStatus.SUCCESS); + const now = new Date().getTime(); + setTimeout(() => { + setServiceStatus(ServiceStatus.SUCCESS); + }, startupDate.current + 1000 - now); } }) .catch(() => { diff --git a/chat2db-client/src/layouts/GlobalLayout/index.tsx b/chat2db-client/src/layouts/GlobalLayout/index.tsx index 5b11e1904..0af5a9437 100644 --- a/chat2db-client/src/layouts/GlobalLayout/index.tsx +++ b/chat2db-client/src/layouts/GlobalLayout/index.tsx @@ -16,6 +16,7 @@ import GlobalComponent from '../init/GlobalComponent'; import styles from './index.less'; import { useUserStore, queryCurUser } from '@/store/user'; import AppTitleBar from '@/blocks/AppTitleBar'; +import OpenScreenAnimation from '@/components/OpenScreenAnimation'; const GlobalLayout = () => { const [appTheme, setAppTheme] = useTheme(); @@ -62,14 +63,14 @@ const GlobalLayout = () => { }; // 等待状态页面 - if (serviceStatus === ServiceStatus.PENDING || curUser === null) { - return ( -
- - ; -
- ); - } + // if (serviceStatus === ServiceStatus.PENDING || curUser === null) { + // return ( + //
+ // + // + //
+ // ); + // } // 错误状态页面 if (serviceStatus === ServiceStatus.FAILURE) { @@ -99,6 +100,7 @@ const GlobalLayout = () => { return (
+ {(serviceStatus === ServiceStatus.PENDING || curUser === null) && }
diff --git a/chat2db-client/src/pages/demo/index.tsx b/chat2db-client/src/pages/demo/index.tsx index 928444df6..aceb18934 100644 --- a/chat2db-client/src/pages/demo/index.tsx +++ b/chat2db-client/src/pages/demo/index.tsx @@ -1,15 +1,16 @@ import React, { useEffect } from 'react'; +import OpenScreenAnimation from '@/components/OpenScreenAnimation'; function Test() { - const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOjIsImRldmljZSI6ImRlZmF1bHQtZGV2aWNlIiwiZWZmIjoxNzA2ODU0NTMwMDI3LCJyblN0ciI6Ik1RcHRPOUVBVlJlbGRQa1RFN01MZUpLeG5KTGVwRFpaIn0.knOw08E6mwWF_GpkeQ8KflQlfQuNu4jd-_Bgh7EnCj4' - useEffect(() => { - const socket = new WebSocket(`ws://127.0.0.1:10821/api/ws/${token}`); - socket.onopen = () => { - console.log('open'); - socket.send('hello'); - }; - }, []); - return (false); + // const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOjIsImRldmljZSI6ImRlZmF1bHQtZGV2aWNlIiwiZWZmIjoxNzA2ODU0NTMwMDI3LCJyblN0ciI6Ik1RcHRPOUVBVlJlbGRQa1RFN01MZUpLeG5KTGVwRFpaIn0.knOw08E6mwWF_GpkeQ8KflQlfQuNu4jd-_Bgh7EnCj4' + // useEffect(() => { + // const socket = new WebSocket(`ws://127.0.0.1:10821/api/ws/${token}`); + // socket.onopen = () => { + // console.log('open'); + // socket.send('hello'); + // }; + // }, []); + return ; } export default Test; From 05f1d71765c13cd062e14ac95600d6bc9cb4afdd Mon Sep 17 00:00:00 2001 From: shanhexi Date: Thu, 11 Jan 2024 20:50:56 +0800 Subject: [PATCH 3/5] Open screen animation --- chat2db-client/src/layouts/GlobalLayout/index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chat2db-client/src/layouts/GlobalLayout/index.tsx b/chat2db-client/src/layouts/GlobalLayout/index.tsx index 0af5a9437..9ca5dd2eb 100644 --- a/chat2db-client/src/layouts/GlobalLayout/index.tsx +++ b/chat2db-client/src/layouts/GlobalLayout/index.tsx @@ -67,7 +67,7 @@ const GlobalLayout = () => { // return ( //
// - // + // //
// ); // } @@ -100,6 +100,7 @@ const GlobalLayout = () => { return (
+ {/* Open screen animation */} {(serviceStatus === ServiceStatus.PENDING || curUser === null) && }
From eb6c517faabbc7e1b9b0401f4c88407f8892574b Mon Sep 17 00:00:00 2001 From: shanhexi Date: Fri, 12 Jan 2024 16:43:38 +0800 Subject: [PATCH 4/5] HarmonyOS_Sans --- .../assets/font/HarmonyOS_Sans_Regular.woff2 | Bin 0 -> 41136 bytes chat2db-client/src/styles/global.less | 6 ++++++ 2 files changed, 6 insertions(+) create mode 100644 chat2db-client/src/assets/font/HarmonyOS_Sans_Regular.woff2 diff --git a/chat2db-client/src/assets/font/HarmonyOS_Sans_Regular.woff2 b/chat2db-client/src/assets/font/HarmonyOS_Sans_Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..633a70c07aee063d0f301b78cd2bf9d06d42d696 GIT binary patch literal 41136 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 z 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 YVt&OWics<*g5+)Doj?>c7l!}<0O=zUDF6Tf literal 0 HcmV?d00001 diff --git a/chat2db-client/src/styles/global.less b/chat2db-client/src/styles/global.less index 821ca6435..89e4969a6 100644 --- a/chat2db-client/src/styles/global.less +++ b/chat2db-client/src/styles/global.less @@ -2,12 +2,18 @@ @import '../theme/custom/light.less'; @import './antd.less'; +@font-face { + font-family: 'HarmonyOS_Sans'; + src: url('../assets/font/HarmonyOS_Sans_Regular.woff2') format('woff2'); +} + html, body { height: 100%; color: var(--color-text); font-size: var(--font-size); background-color: var(--color-bg-base); + font-family: 'HarmonyOS_Sans'; } // 修改账号密码自动回填后input背景变色问题 From 0a82c0794d9aa73ba7ef287e5acd96077d9dd470 Mon Sep 17 00:00:00 2001 From: shanhexi Date: Mon, 15 Jan 2024 12:45:45 +0800 Subject: [PATCH 5/5] build --- chat2db-client/src/styles/antd.less | 5 +++++ chat2db-client/src/styles/global.less | 11 ++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/chat2db-client/src/styles/antd.less b/chat2db-client/src/styles/antd.less index 0cf848600..dd102cb28 100644 --- a/chat2db-client/src/styles/antd.less +++ b/chat2db-client/src/styles/antd.less @@ -1,5 +1,10 @@ :root { :global { + // 覆盖antd 的一些样式 + button { + box-shadow: none !important; + } + // There is some animation when switching the theme color causing a delay in switching background .ant-input, .ant-input-password { diff --git a/chat2db-client/src/styles/global.less b/chat2db-client/src/styles/global.less index 89e4969a6..3b64740ce 100644 --- a/chat2db-client/src/styles/global.less +++ b/chat2db-client/src/styles/global.less @@ -13,7 +13,10 @@ body { color: var(--color-text); font-size: var(--font-size); background-color: var(--color-bg-base); - font-family: 'HarmonyOS_Sans'; + font-family: 'HarmonyOS_Sans', 'Segoe UI', 'SF Pro Display', -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, + Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, 'HarmonyOS Sans SC', 'PingFang SC', 'Hiragino Sans GB', + 'Microsoft Yahei UI', 'Microsoft Yahei', 'Source Han Sans CN', sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'Android Emoji'; } // 修改账号密码自动回填后input背景变色问题 @@ -145,9 +148,3 @@ ol, li { list-style: none; } - -// 覆盖antd 的一些样式 - -button { - box-shadow: none !important; -} \ No newline at end of file