-
+
|
{schedule?.length > 0 ? (
@@ -37,12 +30,7 @@ const MasterItem = ({ name, phone, id, schedule }) => {
)}
|
-
+
|
diff --git a/src/components/Masters/Masters.tsx b/src/components/Masters/Masters.tsx
index a7aff65..e6a8cee 100644
--- a/src/components/Masters/Masters.tsx
+++ b/src/components/Masters/Masters.tsx
@@ -19,7 +19,7 @@ import { useTranslation } from 'react-i18next';
import MasterItem from '../MasterItem';
import MasterDrawer from '../MasterDrawer';
-import { api } from '../../__data__/service/api';
+import { useGetMastersQuery } from '../../__data__/service/api';
const TABLE_HEADERS = [
'name' as const,
@@ -35,12 +35,7 @@ const Masters = () => {
keyPrefix: 'dry-wash.arm.master',
});
- const {
- data: masters,
- error,
- isLoading,
- isSuccess,
- } = api.useGetMastersQuery();
+ const { data: masters, error, isLoading, isSuccess } = useGetMastersQuery();
useEffect(() => {
if (error) {
diff --git a/src/components/OrderItem/OrderItem.tsx b/src/components/OrderItem/OrderItem.tsx
index d622187..fd33955 100644
--- a/src/components/OrderItem/OrderItem.tsx
+++ b/src/components/OrderItem/OrderItem.tsx
@@ -5,7 +5,7 @@ import dayjs from 'dayjs';
import { getTimeSlot } from '../../lib';
import { Master } from '../../models/api/master';
-import { armService } from '../../api/arm';
+import { useUpdateOrdersMutation } from '../../__data__/service/api';
const statuses = [
'pending' as const,
@@ -54,8 +54,7 @@ const OrderItem = ({
allMasters,
id,
}: OrderProps) => {
- const { updateOrders } = armService();
-
+ const [updateOrders] = useUpdateOrdersMutation();
const { t } = useTranslation('~', {
keyPrefix: 'dry-wash.arm.order',
});
@@ -72,16 +71,16 @@ const OrderItem = ({
if (selectedMaster) {
setMaster(masterName);
- updateOrders({ id, masterId: selectedMaster.id });
+ updateOrders({ id, master: selectedMaster.id });
} else {
console.error('Master not found');
}
};
const handeChangeStatus = (e: ChangeEvent) => {
- const status = e.target.value;
+ const status = e.target.value as OrderProps['status'];
updateOrders({ id, status });
- setStatus(e.target.value as OrderProps['status']);
+ setStatus(status);
};
return (
diff --git a/src/components/Orders/Orders.tsx b/src/components/Orders/Orders.tsx
index 8a74f15..e4a37be 100644
--- a/src/components/Orders/Orders.tsx
+++ b/src/components/Orders/Orders.tsx
@@ -17,9 +17,11 @@ import dayjs from 'dayjs';
import OrderItem from '../OrderItem';
import { OrderProps } from '../OrderItem/OrderItem';
-import { armService } from '../../api/arm';
import DateNavigator from '../DateNavigator';
-import { Master } from '../../models/api/master';
+import {
+ useGetMastersQuery,
+ useGetOrdersQuery,
+} from '../../__data__/service/api';
const TABLE_HEADERS = [
'carNumber' as const,
@@ -34,47 +36,41 @@ const Orders = () => {
const { t } = useTranslation('~', {
keyPrefix: 'dry-wash.arm.order',
});
-
- const { fetchOrders } = armService();
- const { fetchMasters } = armService();
-
const toast = useToast();
- const [orders, setOrders] = useState([]);
- const [allMasters, setAllMasters] = useState([]);
- const [loading, setLoading] = useState(false);
- const [error, setError] = useState(null);
const [currentDate, setCurrentDate] = useState(new Date());
+ const {
+ data: orders,
+ isLoading: isOrdersLoading,
+ isSuccess: isOrdersSuccess,
+ isError: isOrdersError,
+ error: ordersError,
+ } = useGetOrdersQuery({ date: currentDate });
+
+ const {
+ data: masters,
+ isLoading: isMastersLoading,
+ isSuccess: isMastersSuccess,
+ isError: isMastersError,
+ error: mastersError,
+ } = useGetMastersQuery();
+
+ const isLoading = isOrdersLoading || isMastersLoading;
+ const isSuccess = isOrdersSuccess && isMastersSuccess;
+ const isError = isOrdersError || isMastersError;
useEffect(() => {
- const loadData = async () => {
- setLoading(true);
- setError(null);
-
- try {
- const [ordersData, mastersData] = await Promise.all([
- fetchOrders({ date: currentDate }),
- fetchMasters(),
- ]);
-
- setOrders(ordersData.body);
- setAllMasters(mastersData.body);
- } catch (err) {
- setError(err.message);
- toast({
- title: t('error.title'),
- status: 'error',
- duration: 5000,
- isClosable: true,
- position: 'bottom-right',
- });
- } finally {
- setLoading(false);
- }
- };
-
- loadData();
- }, [currentDate, toast, t]);
+ if (isError) {
+ toast({
+ title: t('error.title'),
+ // description: errorMessage,
+ status: 'error',
+ duration: 5000,
+ isClosable: true,
+ position: 'bottom-right',
+ });
+ }
+ }, [isError, ordersError, mastersError, toast, t]);
return (
@@ -103,25 +99,24 @@ const Orders = () => {
|