Fix serverless save when name empty (#6720)

- fix serverless function error on save when name empty
- remove useless unique constraint on serverless function names
This commit is contained in:
martmull
2024-08-23 17:34:31 +02:00
committed by GitHub
parent 5d8162dc09
commit 873a4c1bd1
8 changed files with 38 additions and 24 deletions

View File

@ -42,7 +42,7 @@ describe('useServerlessFunctionUpdateFormState', () => {
},
);
const [formValues] = result.current;
const { formValues } = result.current;
expect(formValues).toEqual({ name: '', description: '', code: '' });
});

View File

@ -18,7 +18,11 @@ type SetServerlessFunctionFormValues = Dispatch<
export const useServerlessFunctionUpdateFormState = (
serverlessFunctionId: string,
): [ServerlessFunctionFormValues, SetServerlessFunctionFormValues] => {
): {
formValues: ServerlessFunctionFormValues;
setFormValues: SetServerlessFunctionFormValues;
loading: boolean;
} => {
const [formValues, setFormValues] = useState<ServerlessFunctionFormValues>({
name: '',
description: '',
@ -28,7 +32,7 @@ export const useServerlessFunctionUpdateFormState = (
const { serverlessFunction } =
useGetOneServerlessFunction(serverlessFunctionId);
useGetOneServerlessFunctionSourceCode({
const { loading } = useGetOneServerlessFunctionSourceCode({
id: serverlessFunctionId,
version: 'draft',
onCompleted: (data: FindOneServerlessFunctionSourceCodeQuery) => {
@ -44,5 +48,5 @@ export const useServerlessFunctionUpdateFormState = (
},
});
return [formValues, setFormValues];
return { formValues, setFormValues, loading };
};

View File

@ -23,6 +23,7 @@ import { isDefined } from '~/utils/isDefined';
import { useDebouncedCallback } from 'use-debounce';
import { useGetOneServerlessFunctionSourceCode } from '@/settings/serverless-functions/hooks/useGetOneServerlessFunctionSourceCode';
import { useState } from 'react';
import isEmpty from 'lodash.isempty';
const TAB_LIST_COMPONENT_ID = 'serverless-function-detail';
@ -37,7 +38,7 @@ export const SettingsServerlessFunctionDetail = () => {
const { executeOneServerlessFunction } = useExecuteOneServerlessFunction();
const { updateOneServerlessFunction } = useUpdateOneServerlessFunction();
const { publishOneServerlessFunction } = usePublishOneServerlessFunction();
const [formValues, setFormValues] =
const { formValues, setFormValues, loading } =
useServerlessFunctionUpdateFormState(serverlessFunctionId);
const { code: latestVersionCode } = useGetOneServerlessFunctionSourceCode({
id: serverlessFunctionId,
@ -52,6 +53,9 @@ export const SettingsServerlessFunctionDetail = () => {
const save = async () => {
try {
if (isEmpty(formValues.name)) {
return;
}
await updateOneServerlessFunction({
id: serverlessFunctionId,
name: formValues.name,
@ -201,7 +205,7 @@ export const SettingsServerlessFunctionDetail = () => {
};
return (
formValues.name && (
!loading && (
<SubMenuTopBarContainer
Icon={IconFunction}
title={