perf: model test;perf: sidebar trigger (#4127)

* fix: import dataset step error;perf: ai proxy avatar (#4074)

* perf: pg config params

* perf: ai proxy avatar

* fix: import dataset step error

* feat: data input ux

* perf: app dataset rewite

* perf: model test

* perf: sidebar trigger

* lock

* update nanoid version

* fix: select component ux

* fix: ts

* fix: vitest

* remove test
This commit is contained in:
Archer
2025-03-12 21:11:43 +08:00
committed by archer
parent 8bc29e6527
commit 177d490639
64 changed files with 438 additions and 1356 deletions

View File

@@ -1,27 +1,35 @@
import React from 'react';
import React, { useState, useEffect, useRef } from 'react';
import { Box, Flex } from '@chakra-ui/react';
import type { BoxProps } from '@chakra-ui/react';
import MyIcon from '@fastgpt/web/components/common/Icon';
interface Props extends BoxProps {
isFolded?: boolean;
onFoldChange?: (isFolded: boolean) => void;
externalTrigger?: Boolean;
}
const SideBar = (e?: Props) => {
const {
w = ['100%', '0 0 250px', '0 0 250px', '0 0 270px', '0 0 290px'],
children,
isFolded = false,
onFoldChange,
externalTrigger,
...props
} = e || {};
const handleToggle = () => {
if (onFoldChange) {
onFoldChange(!isFolded);
const [isFolded, setIsFolded] = useState(false);
// 保存上一次折叠状态
const preFoledStatus = useRef<Boolean>(false);
useEffect(() => {
if (externalTrigger) {
setIsFolded(true);
preFoledStatus.current = isFolded;
} else {
// @ts-ignore
setIsFolded(preFoledStatus.current);
}
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [externalTrigger]);
return (
<Box
@@ -58,7 +66,7 @@ const SideBar = (e?: Props) => {
visibility: 'hidden',
opacity: 0
})}
onClick={handleToggle}
onClick={() => setIsFolded(!isFolded)}
>
<MyIcon
name={'common/backLight'}