Skip to content

Commit

Permalink
remove invalid code (#2785)
Browse files Browse the repository at this point in the history
  • Loading branch information
c121914yu authored Sep 25, 2024
1 parent 6bb10ca commit e31d6ec
Show file tree
Hide file tree
Showing 11 changed files with 94 additions and 191 deletions.
35 changes: 0 additions & 35 deletions projects/app/src/pages/api/core/app/version/list.ts

This file was deleted.

83 changes: 0 additions & 83 deletions projects/app/src/pages/api/core/app/version/revert.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import { useUserStore } from '@/web/support/user/useUserStore';
import { useRequest2 } from '@fastgpt/web/hooks/useRequest';
import { useSystemStore } from '@/web/common/system/useSystemStore';
import { useToast } from '@fastgpt/web/hooks/useToast';
import { versionListResponse } from '@/pages/api/core/app/version/listWorkflow';
import type { versionListResponse } from '@/pages/api/core/app/version/list';

const PublishHistoriesSlider = ({
onClose,
Expand Down
28 changes: 15 additions & 13 deletions projects/app/src/pages/app/detail/components/SimpleApp/Edit.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@ import { cardStyles } from '../constants';

import styles from './styles.module.scss';
import { useSystem } from '@fastgpt/web/hooks/useSystem';
import { storeEdgesRenderEdge, storeNode2FlowNode } from '@/web/core/workflow/utils';
import { storeNode2FlowNode } from '@/web/core/workflow/utils';
import { useTranslation } from 'next-i18next';
import { uiWorkflow2StoreWorkflow } from '../WorkflowComponents/utils';
import { SnapshotsType } from '../WorkflowComponents/context';
import { SaveSnapshotFnType } from './useSnapshots';

const Edit = ({
appForm,
Expand All @@ -29,32 +30,33 @@ const Edit = ({
appForm: AppSimpleEditFormType;
setAppForm: React.Dispatch<React.SetStateAction<AppSimpleEditFormType>>;
past: SnapshotsType[];
saveSnapshot: (
this: any,
{ pastNodes, pastEdges, chatConfig, customTitle, isSaved }: any
) => Promise<boolean>;
saveSnapshot: SaveSnapshotFnType;
}) => {
const { isPc } = useSystem();
const { loadAllDatasets } = useDatasetStore();
const { appDetail } = useContextSelector(AppContext, (v) => v);
const { t } = useTranslation();

// show selected dataset
// Init app form
useMount(() => {
// show selected dataset
loadAllDatasets();

// Get the latest snapshot
if (past.length > 0) {
const storeWorkflow = uiWorkflow2StoreWorkflow(past[0]);
const currentAppForm = appWorkflow2Form({ ...storeWorkflow, chatConfig: past[0].chatConfig });

return setAppForm(currentAppForm);
}

// Set the first snapshot
saveSnapshot({
pastNodes: appDetail.modules?.map((item) => storeNode2FlowNode({ item, t })),
pastEdges: appDetail.edges?.map((item) => storeEdgesRenderEdge({ edge: item })),
chatConfig: appDetail.chatConfig,
isSaved: true
});
if (past.length > 0) {
const storeWorkflow = uiWorkflow2StoreWorkflow(past[0]);
const currentAppForm = appWorkflow2Form({ ...storeWorkflow, chatConfig: past[0].chatConfig });

setAppForm(currentAppForm);
return;
}
setAppForm(
appWorkflow2Form({
nodes: appDetail.modules,
Expand Down
38 changes: 19 additions & 19 deletions projects/app/src/pages/app/detail/components/SimpleApp/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import {
storeNode2FlowNode
} from '@/web/core/workflow/utils';
import { uiWorkflow2StoreWorkflow } from '../WorkflowComponents/utils';
import { SaveSnapshotFnType } from './useSnapshots';

const PublishHistories = dynamic(() => import('../PublishHistoriesSlider'));

Expand All @@ -44,15 +45,12 @@ const Header = ({
setAppForm: (form: AppSimpleEditFormType) => void;
past: SnapshotsType[];
setPast: (value: React.SetStateAction<SnapshotsType[]>) => void;
saveSnapshot: (
this: any,
{ pastNodes, pastEdges, chatConfig, customTitle, isSaved }: any
) => Promise<boolean>;
saveSnapshot: SaveSnapshotFnType;
}) => {
const { t } = useTranslation();
const { isPc } = useSystem();
const router = useRouter();
const { appId, appDetail, onSaveApp, currentTab } = useContextSelector(AppContext, (v) => v);
const { appId, onSaveApp, currentTab } = useContextSelector(AppContext, (v) => v);
const { lastAppListRouteType } = useSystemStore();
const { allDatasets } = useDatasetStore();

Expand All @@ -62,8 +60,6 @@ const Header = ({
});
const onClickRoute = useCallback(
(parentId: string) => {
localStorage.removeItem(`${appDetail._id}-past`);

router.push({
pathname: '/app/list',
query: {
Expand All @@ -75,8 +71,6 @@ const Header = ({
[router, lastAppListRouteType]
);

const [isPublished, setIsPublished] = useState(false);

const { runAsync: onClickSave, loading } = useRequest2(
async ({
isPublish,
Expand Down Expand Up @@ -109,46 +103,52 @@ const Header = ({

const [historiesDefaultData, setHistoriesDefaultData] = useState<InitProps>();

const resetSnapshot = (data: SnapshotsType) => {
const storeWorkflow = uiWorkflow2StoreWorkflow(data);
const currentAppForm = appWorkflow2Form({ ...storeWorkflow, chatConfig: data.chatConfig });
const resetSnapshot = useCallback(
(data: SnapshotsType) => {
const storeWorkflow = uiWorkflow2StoreWorkflow(data);
const currentAppForm = appWorkflow2Form({ ...storeWorkflow, chatConfig: data.chatConfig });

setAppForm(currentAppForm);
};
setAppForm(currentAppForm);
},
[setAppForm]
);

// Save snapshot to local
useDebounceEffect(
() => {
const data = form2AppWorkflow(appForm, t);

saveSnapshot({
pastNodes: data.nodes?.map((item) => storeNode2FlowNode({ item, t })),
pastEdges: data.edges?.map((item) => storeEdgesRenderEdge({ edge: item })),
chatConfig: data.chatConfig
});
},
[appForm],
{ wait: 500 }
);

// Check if the workflow is published
const [isPublished, setIsPublished] = useState(false);
useDebounceEffect(
() => {
const savedSnapshot = past.find((snapshot) => snapshot.isSaved);
const data = form2AppWorkflow(appForm, t);
const editFormData = form2AppWorkflow(appForm, t);
console.log(savedSnapshot?.nodes, editFormData.chatConfig);
const val = compareSnapshot(
{
nodes: savedSnapshot?.nodes,
edges: [],
chatConfig: savedSnapshot?.chatConfig
},
{
nodes: data.nodes?.map((item) => storeNode2FlowNode({ item, t })),
nodes: editFormData.nodes?.map((item) => storeNode2FlowNode({ item, t })),
edges: [],
chatConfig: data.chatConfig
chatConfig: editFormData.chatConfig
}
);
setIsPublished(val);
},
[past],
[past, allDatasets],
{ wait: 500 }
);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,33 @@
import { useLocalStorageState, useMemoizedFn } from 'ahooks';
import { SnapshotsType } from '../WorkflowComponents/context';
import { SetStateAction } from 'react';
import { SaveSnapshotParams, SnapshotsType } from '../WorkflowComponents/context';
import { SetStateAction, useEffect } from 'react';
import { compareSnapshot } from '@/web/core/workflow/utils';
import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time';
import { AppChatConfigType } from '@fastgpt/global/core/app/type';
import { Node } from 'reactflow';

export type SaveSnapshotFnType = (
props: SaveSnapshotParams & {
isSaved?: boolean;
}
) => Promise<boolean>;

const useSnapshots = (appId: string) => {
const [past, setPast] = useLocalStorageState<SnapshotsType[]>(`${appId}-past-simple`, {
defaultValue: [],
listenStorageChange: true
}) as [SnapshotsType[], (value: SetStateAction<SnapshotsType[]>) => void];

const saveSnapshot = useMemoizedFn(
async ({ pastNodes, pastEdges, chatConfig, customTitle, isSaved }) => {
const saveSnapshot: SaveSnapshotFnType = useMemoizedFn(
async ({ pastNodes, chatConfig, customTitle, isSaved }) => {
if (!pastNodes) return false;

const pastState = past[0];

const isPastEqual = compareSnapshot(
{
nodes: pastNodes,
edges: pastEdges,
edges: [],
chatConfig: chatConfig
},
{
Expand All @@ -30,7 +41,7 @@ const useSnapshots = (appId: string) => {
setPast((past) => [
{
nodes: pastNodes,
edges: pastEdges,
edges: [],
title: customTitle || formatTime2YMDHMS(new Date()),
chatConfig,
isSaved
Expand All @@ -41,6 +52,18 @@ const useSnapshots = (appId: string) => {
}
);

// remove other app's snapshot
useEffect(() => {
const keys = Object.keys(localStorage);
const snapshotKeys = keys.filter((key) => key.endsWith('-past-simple'));
snapshotKeys.forEach((key) => {
const keyAppId = key.split('-')[0];
if (keyAppId !== appId) {
localStorage.removeItem(key);
}
});
}, [appId]);

return { past, setPast, saveSnapshot };
};

Expand Down
16 changes: 9 additions & 7 deletions projects/app/src/pages/app/detail/components/Workflow/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -279,20 +279,22 @@ const Header = () => {
currentTab,
isPublished,
onBack,
isOpenBackConfirm,
onOpenBackConfirm,
onCloseBackConfirm,
t,
loading,
isV2Workflow,
historiesDefaultData,
t,
loading,
onClickSave,
flowData2StoreDataAndCheck,
past,
saveSnapshot,
resetSnapshot,
isOpenBackConfirm,
onCloseBackConfirm,
setHistoriesDefaultData,
appDetail.chatConfig,
flowData2StoreDataAndCheck,
setWorkflowTestData,
toast,
past
toast
]);

return Render;
Expand Down
Loading

0 comments on commit e31d6ec

Please sign in to comment.