feat: use RTK Query to get order deails (#73)
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
import { getConfigValue } from '@brojs/cli';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useState } from 'react';
|
||||
|
||||
import { CreateOrder, GetOrder } from '../models/api';
|
||||
import { CreateOrder } from '../models/api';
|
||||
|
||||
import { QueryState, Trigger } from './types';
|
||||
|
||||
enum LandingEndpoints {
|
||||
ORDER = '/order',
|
||||
ORDER_CREATE = '/order/create',
|
||||
}
|
||||
|
||||
@@ -63,45 +62,4 @@ const useCreateOrderMutation = <D extends CreateOrder.Response>(): [
|
||||
return [createOrder, { isLoading, isSuccess, data, isError, error }];
|
||||
};
|
||||
|
||||
const useGetOrderQuery = <D extends GetOrder.Response>({
|
||||
orderId,
|
||||
}: GetOrder.Params): QueryState<D> => {
|
||||
const [isLoading, setIsLoading] = useState<QueryState<D>['isLoading']>(true);
|
||||
const [isSuccess, setIsSuccess] = useState<QueryState<D>['isSuccess']>();
|
||||
const [data, setData] = useState<QueryState<D>['data']>();
|
||||
const [isError, setIsError] = useState<QueryState<D>['isError']>();
|
||||
const [error, setError] = useState<QueryState<D>['error']>();
|
||||
|
||||
useEffect(() => {
|
||||
(async () => {
|
||||
try {
|
||||
const response = await fetch(
|
||||
`${endpoint}${LandingEndpoints.ORDER}/${orderId}`,
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
const errorResponseObject =
|
||||
(await response.json()) as QueryState<D>['error'];
|
||||
setIsError(true);
|
||||
setError(errorResponseObject);
|
||||
throw errorResponseObject;
|
||||
}
|
||||
|
||||
const dataResponseObject =
|
||||
(await response.json()) as QueryState<D>['data'];
|
||||
setIsSuccess(true);
|
||||
setData(dataResponseObject);
|
||||
} catch (error) {
|
||||
setIsError(true);
|
||||
setError(error);
|
||||
throw error;
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
})();
|
||||
}, []);
|
||||
|
||||
return { isLoading, isSuccess, data, isError, error };
|
||||
};
|
||||
|
||||
export { useCreateOrderMutation, useGetOrderQuery };
|
||||
export { useCreateOrderMutation };
|
||||
|
||||
Reference in New Issue
Block a user