perf: app list (#2747)

This commit is contained in:
Finley Ge
2024-09-20 10:16:27 +08:00
committed by GitHub
parent ca9f36ef9f
commit 6c2a7574c3
5 changed files with 30 additions and 10 deletions

View File

@@ -31,6 +31,7 @@ import SaveAndPublishModal from '../WorkflowComponents/Flow/components/SaveAndPu
import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time'; import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time';
import { useToast } from '@fastgpt/web/hooks/useToast'; import { useToast } from '@fastgpt/web/hooks/useToast';
import { useDebounceEffect } from 'ahooks'; import { useDebounceEffect } from 'ahooks';
import { useSystemStore } from '@/web/common/system/useSystemStore';
const PublishHistories = dynamic(() => import('../WorkflowPublishHistoriesSlider')); const PublishHistories = dynamic(() => import('../WorkflowPublishHistoriesSlider'));
@@ -66,6 +67,7 @@ const Header = () => {
future, future,
setPast setPast
} = useContextSelector(WorkflowContext, (v) => v); } = useContextSelector(WorkflowContext, (v) => v);
const { appType } = useSystemStore();
const [isPublished, setIsPublished] = useState(false); const [isPublished, setIsPublished] = useState(false);
useDebounceEffect( useDebounceEffect(
@@ -135,7 +137,8 @@ const Header = () => {
router.push({ router.push({
pathname: '/app/list', pathname: '/app/list',
query: { query: {
parentId: appDetail.parentId parentId: appDetail.parentId,
type: appType
} }
}); });
} catch (error) {} } catch (error) {}

View File

@@ -23,6 +23,7 @@ import MyTooltip from '@fastgpt/web/components/common/MyTooltip';
import { useSystem } from '@fastgpt/web/hooks/useSystem'; import { useSystem } from '@fastgpt/web/hooks/useSystem';
import { useToast } from '@fastgpt/web/hooks/useToast'; import { useToast } from '@fastgpt/web/hooks/useToast';
import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time'; import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time';
import { useSystemStore } from '@/web/common/system/useSystemStore';
const Header = ({ const Header = ({
appForm, appForm,
@@ -36,6 +37,7 @@ const Header = ({
const router = useRouter(); const router = useRouter();
const { toast } = useToast(); const { toast } = useToast();
const { appId, appDetail, onSaveApp, currentTab } = useContextSelector(AppContext, (v) => v); const { appId, appDetail, onSaveApp, currentTab } = useContextSelector(AppContext, (v) => v);
const { appType } = useSystemStore();
const { data: paths = [] } = useRequest2(() => getAppFolderPath(appId), { const { data: paths = [] } = useRequest2(() => getAppFolderPath(appId), {
manual: false, manual: false,
@@ -46,11 +48,12 @@ const Header = ({
router.push({ router.push({
pathname: '/app/list', pathname: '/app/list',
query: { query: {
parentId parentId,
type: appType
} }
}); });
}, },
[router] [router, appType]
); );
const isPublished = useMemo(() => { const isPublished = useMemo(() => {

View File

@@ -31,6 +31,7 @@ import SaveAndPublishModal from '../WorkflowComponents/Flow/components/SaveAndPu
import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time'; import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time';
import { useToast } from '@fastgpt/web/hooks/useToast'; import { useToast } from '@fastgpt/web/hooks/useToast';
import { useDebounceEffect } from 'ahooks'; import { useDebounceEffect } from 'ahooks';
import { useSystemStore } from '@/web/common/system/useSystemStore';
const PublishHistories = dynamic(() => import('../WorkflowPublishHistoriesSlider')); const PublishHistories = dynamic(() => import('../WorkflowPublishHistoriesSlider'));
@@ -66,6 +67,7 @@ const Header = () => {
future, future,
setPast setPast
} = useContextSelector(WorkflowContext, (v) => v); } = useContextSelector(WorkflowContext, (v) => v);
const { appType } = useSystemStore();
// Check if the workflow is published // Check if the workflow is published
const [isPublished, setIsPublished] = useState(false); const [isPublished, setIsPublished] = useState(false);
@@ -136,7 +138,8 @@ const Header = () => {
router.push({ router.push({
pathname: '/app/list', pathname: '/app/list',
query: { query: {
parentId: appDetail.parentId parentId: appDetail.parentId,
type: appType
} }
}); });
} catch (error) {} } catch (error) {}

View File

@@ -43,6 +43,7 @@ import LightRowTabs from '@fastgpt/web/components/common/Tabs/LightRowTabs';
import { useSystem } from '@fastgpt/web/hooks/useSystem'; import { useSystem } from '@fastgpt/web/hooks/useSystem';
import MyIcon from '@fastgpt/web/components/common/Icon'; import MyIcon from '@fastgpt/web/components/common/Icon';
import TemplateMarketModal from './components/TemplateMarketModal'; import TemplateMarketModal from './components/TemplateMarketModal';
import { useSystemStore } from '@/web/common/system/useSystemStore';
const CreateModal = dynamic(() => import('./components/CreateModal')); const CreateModal = dynamic(() => import('./components/CreateModal'));
const EditFolderModal = dynamic( const EditFolderModal = dynamic(
@@ -70,6 +71,7 @@ const MyApps = () => {
setSearchKey setSearchKey
} = useContextSelector(AppListContext, (v) => v); } = useContextSelector(AppListContext, (v) => v);
const { userInfo } = useUserStore(); const { userInfo } = useUserStore();
const { setAppType } = useSystemStore();
const [createAppType, setCreateAppType] = useState<CreateAppType>(); const [createAppType, setCreateAppType] = useState<CreateAppType>();
const { const {
@@ -171,12 +173,13 @@ const MyApps = () => {
fontSize={['sm', 'md']} fontSize={['sm', 'md']}
flexShrink={0} flexShrink={0}
onChange={(e) => { onChange={(e) => {
router.push({ setAppType(e);
query: { // router.push({
...router.query, // query: {
type: e // ...router.query,
} // type: e
}); // }
// });
}} }}
/> />
<Box flex={1} /> <Box flex={1} />

View File

@@ -41,12 +41,20 @@ type State = {
reRankModelList: ReRankModelItemType[]; reRankModelList: ReRankModelItemType[];
whisperModel?: WhisperModelType; whisperModel?: WhisperModelType;
initStaticData: (e: InitDateResponse) => void; initStaticData: (e: InitDateResponse) => void;
appType?: string;
setAppType: (e?: string) => void;
}; };
export const useSystemStore = create<State>()( export const useSystemStore = create<State>()(
devtools( devtools(
persist( persist(
immer((set, get) => ({ immer((set, get) => ({
appType: undefined,
setAppType(e) {
set((state) => {
state.appType = e;
});
},
initd: false, initd: false,
setInitd() { setInitd() {
set((state) => { set((state) => {