refactor(web): rewrite mutation with PATCH /v1/flows/:flowId

This commit is contained in:
Ali BARIN
2024-08-29 15:05:47 +00:00
parent 9519ec53ef
commit 562341adfe
3 changed files with 28 additions and 28 deletions

View File

@@ -17,10 +17,10 @@ import Editor from 'components/Editor';
import Can from 'components/Can';
import useFormatMessage from 'hooks/useFormatMessage';
import { UPDATE_FLOW_STATUS } from 'graphql/mutations/update-flow-status';
import { UPDATE_FLOW } from 'graphql/mutations/update-flow';
import * as URLS from 'config/urls';
import { TopBar } from './style';
import useFlow from 'hooks/useFlow';
import useUpdateFlow from 'hooks/useUpdateFlow';
import { useQueryClient } from '@tanstack/react-query';
import EditorNew from 'components/EditorNew/EditorNew';
@@ -29,29 +29,17 @@ const useNewFlowEditor = process.env.REACT_APP_USE_NEW_FLOW_EDITOR === 'true';
export default function EditorLayout() {
const { flowId } = useParams();
const formatMessage = useFormatMessage();
const [updateFlow] = useMutation(UPDATE_FLOW);
const { mutateAsync: updateFlow } = useUpdateFlow(flowId);
const [updateFlowStatus] = useMutation(UPDATE_FLOW_STATUS);
const { data, isLoading: isFlowLoading } = useFlow(flowId);
const flow = data?.data;
const queryClient = useQueryClient();
const onFlowNameUpdate = React.useCallback(
async (name) => {
try {
await updateFlow({
variables: {
input: {
id: flowId,
name,
},
},
});
await queryClient.invalidateQueries({ queryKey: ['flows', flowId] });
} catch (e) {}
},
[flowId, queryClient],
);
const onFlowNameUpdate = async (name) => {
await updateFlow({
name,
});
};
const onFlowStatusUpdate = React.useCallback(
async (active) => {

View File

@@ -1,9 +0,0 @@
import { gql } from '@apollo/client';
export const UPDATE_FLOW = gql`
mutation UpdateFlow($input: UpdateFlowInput) {
updateFlow(input: $input) {
id
name
}
}
`;

View File

@@ -0,0 +1,21 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import api from 'helpers/api';
export default function useUpdateFlow(flowId) {
const queryClient = useQueryClient();
const query = useMutation({
mutationFn: async (payload) => {
const { data } = await api.patch(`/v1/flows/${flowId}`, payload);
return data;
},
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: ['flows', flowId],
});
},
});
return query;
}