From 11a815bad8ccefe99feba07737445e7833eb0e9e Mon Sep 17 00:00:00 2001 From: chavda-bhavik Date: Wed, 31 Jan 2024 14:14:06 +0530 Subject: [PATCH] fix: Terminate import calling API with undefined --- apps/widget/src/components/widget/Widget.tsx | 5 +---- apps/widget/src/hooks/useWidget.ts | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/apps/widget/src/components/widget/Widget.tsx b/apps/widget/src/components/widget/Widget.tsx index 774be3114..c2dc55f9f 100644 --- a/apps/widget/src/components/widget/Widget.tsx +++ b/apps/widget/src/components/widget/Widget.tsx @@ -18,8 +18,7 @@ import { logAmplitudeEvent, resetAmplitude } from '@amplitude'; export function Widget() { const defaultDataCount = 0; - const [phase, setPhase] = useState(PhasesEum.VALIDATE); - const { terminateUpload } = useWidget(); + const { terminateUpload, phase, setPhase } = useWidget(); const [dataCount, setDataCount] = useState(defaultDataCount); const [promptContinueAction, setPromptContinueAction] = useState(); const { showWidget, setShowWidget, reset: resetAppState, uploadInfo, templateInfo, title } = useAppState(); @@ -33,7 +32,6 @@ export function Widget() { setPromptContinueAction(undefined); ParentWindow.UploadTerminated({ uploadId: uploadInfo._id }); if (promptContinueAction === PromptModalTypesEnum.CLOSE) closeWidget(); - resetProgress(); }; const onPromptCancel = () => { setPromptContinueAction(undefined); @@ -45,7 +43,6 @@ export function Widget() { const closeWidget = () => { setShowWidget(false); resetAmplitude(); - resetProgress(); setTimeout(() => { ParentWindow.Close(); }, variables.closeDelayInMS); diff --git a/apps/widget/src/hooks/useWidget.ts b/apps/widget/src/hooks/useWidget.ts index 3f2177242..437bd4c55 100644 --- a/apps/widget/src/hooks/useWidget.ts +++ b/apps/widget/src/hooks/useWidget.ts @@ -1,17 +1,30 @@ +import { useState } from 'react'; import { useMutation } from '@tanstack/react-query'; + +import { PhasesEum } from '@types'; import { IErrorObject, IUpload } from '@impler/shared'; import { useAppState } from '@store/app.context'; import { useAPIState } from '@store/api.context'; export function useWidget() { const { api } = useAPIState(); - const { uploadInfo } = useAppState(); + const { reset: resetAppState, uploadInfo } = useAppState(); + const [phase, setPhase] = useState(PhasesEum.VALIDATE); + const { mutate: terminateUpload } = useMutation( ['terminate', uploadInfo._id], - () => api.terminateUpload(uploadInfo._id) + () => api.terminateUpload(uploadInfo._id), + { + onSuccess: () => { + resetAppState(); + setPhase(PhasesEum.VALIDATE); + }, + } ); return { + phase, + setPhase, terminateUpload, }; }