diff --git a/src/frontend/src/hooks/UseInstance.tsx b/src/frontend/src/hooks/UseInstance.tsx index 4b93d1bb6c..2345c800fb 100644 --- a/src/frontend/src/hooks/UseInstance.tsx +++ b/src/frontend/src/hooks/UseInstance.tsx @@ -8,7 +8,8 @@ import { type PathParams, apiUrl } from '../states/ApiState'; export interface UseInstanceResult { instance: any; setInstance: (instance: any) => void; - refreshInstance: () => Promise>; + refreshInstance: () => void; + refreshInstancePromise: () => Promise>; instanceQuery: any; requestStatus: number; isLoaded: boolean; @@ -23,6 +24,7 @@ export interface UseInstanceResult { * To use this hook: * const { instance, refreshInstance } = useInstance(url: string, pk: number) */ + export function useInstance({ endpoint, pk, @@ -112,12 +114,19 @@ export function useInstance({ ); }, [instanceQuery]); - const refreshInstance = useCallback(() => instanceQuery.refetch(), []); + const refreshInstance = useCallback(() => { + instanceQuery.refetch(); + }, []); + + const refreshInstancePromise = useCallback(() => { + return instanceQuery.refetch(); + }, []); return { instance, setInstance, refreshInstance, + refreshInstancePromise, instanceQuery, requestStatus, isLoaded diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index 84e0449162..564aec8416 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -91,6 +91,7 @@ export default function StockDetail() { const { instance: stockitem, refreshInstance, + refreshInstancePromise, instanceQuery, requestStatus } = useInstance({ @@ -617,7 +618,7 @@ export default function StockDetail() { }, onFormSuccess: () => { const partId = stockitem.part; - refreshInstance().catch(() => { + refreshInstancePromise().catch(() => { // Part may have been deleted - redirect to the part detail page navigate(getDetailUrl(ModelType.part, partId)); });