Fix test data disapear (#10846)
As title. Init input from source code only once.
This commit is contained in:
@ -3,7 +3,7 @@ import { useGetOneServerlessFunctionSourceCode } from '@/settings/serverless-fun
|
||||
import { Dispatch, SetStateAction, useState } from 'react';
|
||||
import { FindOneServerlessFunctionSourceCodeQuery } from '~/generated-metadata/graphql';
|
||||
import { serverlessFunctionTestDataFamilyState } from '@/workflow/states/serverlessFunctionTestDataFamilyState';
|
||||
import { useSetRecoilState } from 'recoil';
|
||||
import { useRecoilState } from 'recoil';
|
||||
import { getFunctionInputFromSourceCode } from '@/serverless-functions/utils/getFunctionInputFromSourceCode';
|
||||
import { INDEX_FILE_PATH } from '@/serverless-functions/constants/IndexFilePath';
|
||||
|
||||
@ -37,9 +37,8 @@ export const useServerlessFunctionUpdateFormState = ({
|
||||
code: undefined,
|
||||
});
|
||||
|
||||
const setServerlessFunctionTestData = useSetRecoilState(
|
||||
serverlessFunctionTestDataFamilyState(serverlessFunctionId),
|
||||
);
|
||||
const [serverlessFunctionTestData, setServerlessFunctionTestData] =
|
||||
useRecoilState(serverlessFunctionTestDataFamilyState(serverlessFunctionId));
|
||||
|
||||
const { serverlessFunction } = useGetOneServerlessFunction({
|
||||
id: serverlessFunctionId,
|
||||
@ -54,16 +53,22 @@ export const useServerlessFunctionUpdateFormState = ({
|
||||
name: serverlessFunction?.name || '',
|
||||
description: serverlessFunction?.description || '',
|
||||
};
|
||||
|
||||
setFormValues((prevState) => ({
|
||||
...prevState,
|
||||
...newState,
|
||||
}));
|
||||
const sourceCode =
|
||||
data?.getServerlessFunctionSourceCode?.[INDEX_FILE_PATH];
|
||||
setServerlessFunctionTestData((prev) => ({
|
||||
...prev,
|
||||
input: getFunctionInputFromSourceCode(sourceCode),
|
||||
}));
|
||||
|
||||
if (serverlessFunctionTestData.shouldInitInput) {
|
||||
const sourceCode =
|
||||
data?.getServerlessFunctionSourceCode?.[INDEX_FILE_PATH];
|
||||
|
||||
setServerlessFunctionTestData((prev) => ({
|
||||
...prev,
|
||||
input: getFunctionInputFromSourceCode(sourceCode),
|
||||
shouldInitInput: false,
|
||||
}));
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ import { ServerlessFunctionExecutionStatus } from '~/generated-metadata/graphql'
|
||||
|
||||
export type ServerlessFunctionTestData = {
|
||||
input: { [field: string]: any };
|
||||
shouldInitInput: boolean;
|
||||
output: {
|
||||
data?: string;
|
||||
logs: string;
|
||||
@ -29,6 +30,7 @@ export const serverlessFunctionTestDataFamilyState = createFamilyState<
|
||||
language: 'plaintext',
|
||||
height: 64,
|
||||
input: {},
|
||||
shouldInitInput: true,
|
||||
output: DEFAULT_OUTPUT_VALUE,
|
||||
},
|
||||
});
|
||||
|
||||
@ -337,16 +337,18 @@ export const WorkflowEditActionServerlessFunction = ({
|
||||
isTesting={isTesting}
|
||||
/>
|
||||
</StyledCodeEditorContainer>
|
||||
<StyledCodeEditorContainer>
|
||||
<InputLabel>Logs</InputLabel>
|
||||
<TextArea
|
||||
value={
|
||||
isTesting ? '' : serverlessFunctionTestData.output.logs
|
||||
}
|
||||
maxRows={20}
|
||||
disabled
|
||||
/>
|
||||
</StyledCodeEditorContainer>
|
||||
{serverlessFunctionTestData.output.logs.length > 0 && (
|
||||
<StyledCodeEditorContainer>
|
||||
<InputLabel>Logs</InputLabel>
|
||||
<TextArea
|
||||
value={
|
||||
isTesting ? '' : serverlessFunctionTestData.output.logs
|
||||
}
|
||||
maxRows={20}
|
||||
disabled
|
||||
/>
|
||||
</StyledCodeEditorContainer>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
</WorkflowStepBody>
|
||||
|
||||
Reference in New Issue
Block a user