diff --git a/locales/ru.json b/locales/ru.json
index 3511bb3..5c9d91c 100644
--- a/locales/ru.json
+++ b/locales/ru.json
@@ -49,5 +49,6 @@
"dry-wash.notFound.button.back": "Вернуться на главную",
"dry-wash.errorBoundary.title":"Что-то пошло не так",
"dry-wash.errorBoundary.description": "Мы уже работаем над исправлением проблемы",
- "dry-wash.errorBoundary.button.reload": "Перезагрузить страницу"
+ "dry-wash.errorBoundary.button.reload": "Перезагрузить страницу",
+ "dry-wash.washTime.timeSlot": "{{start}} - {{end}}"
}
diff --git a/package-lock.json b/package-lock.json
index 93317ed..b24108c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,6 +17,7 @@
"@fontsource/open-sans": "^5.1.0",
"@lottiefiles/react-lottie-player": "^3.5.4",
"@types/react": "^18.3.12",
+ "dayjs": "^1.11.13",
"express": "^4.21.1",
"framer-motion": "^6.2.8",
"i18next": "^23.16.4",
@@ -5304,6 +5305,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/dayjs": {
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+ },
"node_modules/debug": {
"version": "4.3.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
diff --git a/package.json b/package.json
index 5b5ff92..13e8c31 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"@fontsource/open-sans": "^5.1.0",
"@lottiefiles/react-lottie-player": "^3.5.4",
"@types/react": "^18.3.12",
+ "dayjs": "^1.11.13",
"express": "^4.21.1",
"framer-motion": "^6.2.8",
"i18next": "^23.16.4",
diff --git a/src/components/MasterItem/MasterItem.tsx b/src/components/MasterItem/MasterItem.tsx
index a98b8ae..9895d29 100644
--- a/src/components/MasterItem/MasterItem.tsx
+++ b/src/components/MasterItem/MasterItem.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import { Badge, Link, Stack, Td, Tr } from '@chakra-ui/react';
import MasterActionsMenu from '../MasterActionsMenu';
+import { getTimeSlot } from '../../lib/date-helpers';
const MasterItem = ({ name, schedule, phone }) => {
return (
@@ -9,9 +10,9 @@ const MasterItem = ({ name, schedule, phone }) => {
{name} |
- {schedule.map((time, index) => (
+ {schedule.map(({ startWashTime, endWashTime }, index) => (
- {time}
+ {getTimeSlot(startWashTime, endWashTime)}
))}
diff --git a/src/components/Masters/Masters.tsx b/src/components/Masters/Masters.tsx
index 149923a..ea07603 100644
--- a/src/components/Masters/Masters.tsx
+++ b/src/components/Masters/Masters.tsx
@@ -13,9 +13,9 @@ import {
} from '@chakra-ui/react';
import { useTranslation } from 'react-i18next';
-import { mastersData } from '../../mocks';
import MasterItem from '../MasterItem';
import MasterDrawer from '../MasterDrawer';
+import data from '../../../stubs/json/arm-masters/success.json';
const TABLE_HEADERS = [
'name' as const,
@@ -48,7 +48,7 @@ const Masters = () => {
|
- {mastersData.map((master, index) => (
+ {data.body.map((master, index) => (
))}
diff --git a/src/components/OrderItem/OrderItem.tsx b/src/components/OrderItem/OrderItem.tsx
index 72be7e2..ab12485 100644
--- a/src/components/OrderItem/OrderItem.tsx
+++ b/src/components/OrderItem/OrderItem.tsx
@@ -1,6 +1,9 @@
import React, { useState } from 'react';
import { Td, Tr, Link, Select } from '@chakra-ui/react';
import { useTranslation } from 'react-i18next';
+import dayjs from 'dayjs';
+
+import { getTimeSlot } from '../../lib/date-helpers';
const statuses = [
'pending' as const,
@@ -15,7 +18,8 @@ type GetArrItemType =
export type OrderProps = {
carNumber?: string;
- washTime?: string;
+ startWashTime?: string;
+ endWashTime?: string;
orderDate?: string;
status?: GetArrItemType;
phone?: string;
@@ -24,7 +28,8 @@ export type OrderProps = {
const OrderItem = ({
carNumber,
- washTime,
+ startWashTime,
+ endWashTime,
orderDate,
status,
phone,
@@ -39,8 +44,8 @@ const OrderItem = ({
return (
{carNumber} |
- {washTime} |
- {orderDate} |
+ {getTimeSlot(startWashTime, endWashTime)} |
+ {dayjs(orderDate).format('DD.MM.YYYY')} |
|
- {ordersData.map((order, index) => (
+ {data.body.map((order, index) => (
{
+ const startDay = dayjs(start).format('HH:mm');
+ const endDay = dayjs(end).format('HH:mm');
+
+ return i18next.t('~:dry-wash.washTime.timeSlot', {
+ start: startDay,
+ end: endDay,
+ });
+};
diff --git a/src/mocks/index.ts b/src/mocks/index.ts
deleted file mode 100644
index a0a26f8..0000000
--- a/src/mocks/index.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-export const mastersData = [
- {
- id: 'masters1',
- name: 'Иван Иванов',
- schedule: ['15:00 - 16:30', '17:00 - 18:00'],
- phone: '+7 900 123 45 67',
- },
- {
- id: 'masters2',
- name: 'Сергей Петров',
- schedule: ['10:00 - 12:30', '14:00 - 15:30', '16:00 - 17:00'],
- phone: '+7 900 234 56 78',
- },
-];
-
-export const ordersData = [
- {
- id: 'order1',
- carNumber: 'A123BC',
- washTime: '10:30',
- orderDate: '2024-10-31',
- status: 'progress',
- phone: '79001234567',
- location: 'Казань, ул. Баумана, 1',
- },
- {
- id: 'order2',
- carNumber: 'B456CD',
- washTime: '11:00',
- orderDate: '2024-10-31',
- status: 'complete',
- phone: '79002345678',
- location: 'Казань, ул. Кремлёвская, 3',
- },
-];
diff --git a/stubs/json/arm-masters/success.json b/stubs/json/arm-masters/success.json
new file mode 100644
index 0000000..ce50415
--- /dev/null
+++ b/stubs/json/arm-masters/success.json
@@ -0,0 +1,35 @@
+{
+ "success": true,
+ "body": [
+ {
+ "id": "masters1",
+ "name": "Иван Иванов",
+ "schedule": [ {
+ "id": "order1",
+ "startWashTime": "2024-11-24T10:30:00.000Z",
+ "endWashTime": "2024-11-24T16:30:00.000Z"
+ },
+ {
+ "id": "order2",
+ "startWashTime": "2024-11-24T11:30:00.000Z",
+ "endWashTime": "2024-11-24T17:30:00.000Z"
+ }],
+ "phone": "+7 900 123 45 67"
+ },
+ {
+ "id": "masters12",
+ "name": "Иван Иванов",
+ "schedule": [ {
+ "id": "order1",
+ "startWashTime": "2024-11-24T10:30:00.000Z",
+ "endWashTime": "2024-11-24T16:30:00.000Z"
+ },
+ {
+ "id": "order2",
+ "startWashTime": "2024-11-24T11:30:00.000Z",
+ "endWashTime": "2024-11-24T17:30:00.000Z"
+ }],
+ "phone": "+7 900 123 45 67"
+ }
+ ]
+}
diff --git a/stubs/json/arm-orders/success.json b/stubs/json/arm-orders/success.json
new file mode 100644
index 0000000..15669e8
--- /dev/null
+++ b/stubs/json/arm-orders/success.json
@@ -0,0 +1,25 @@
+{
+ "success": true,
+ "body": [
+ {
+ "id": "order1",
+ "carNumber": "A123BC",
+ "startWashTime": "2024-11-24T10:30:00.000Z",
+ "endWashTime": "2024-11-24T16:30:00.000Z",
+ "orderDate": "2024-11-24T08:41:46.366Z",
+ "status": "progress",
+ "phone": "79001234563",
+ "location": "Казань, ул. Баумана, 1"
+ },
+ {
+ "id": "order2",
+ "carNumber": "A245BC",
+ "startWashTime": "2024-11-24T11:30:00.000Z",
+ "endWashTime": "2024-11-24T17:30:00.000Z",
+ "orderDate": "2024-11-24T07:40:46.366Z",
+ "status": "progress",
+ "phone": "79001234567",
+ "location": "Казань, ул. Баумана, 43"
+ }
+ ]
+}
\ No newline at end of file