169 похожих чатов

Import React, { useEffect, useState } from 'react'; import { useParams

} from 'react-router-dom';
import './order.css';
import OrderComponent from '../../../../../components/Order/Order';
import { InputLabel, Select } from '@mui/material';
import MenuItem from '@mui/material/MenuItem';
import axios from 'axios';
import IOrder from '../../../../../types/order';
import userStore from '../../../../../store/userStore';
import Popup from '../../../../../components/Popup/Popup';
import InfiniteScroll from 'react-infinite-scroll-component';

const Order = () => {
const { orderId } = useParams();
const [order, setOrder] = useState<IOrder>();
const [statuses, setStatuses] = useState<any>();
const [err, setErr] = useState<boolean>(false);
const [page, setPage] = useState<number>(1);
const pageSize = 2;
const token = userStore((state: any) => state.user.token);
const getOrders = async () => {
try {
setErr(false);
const { data } = await axios.get<IOrder>(`http://localhost:5000/api/order/${orderId}`, {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
setOrder(data);
} catch {
setErr(true);
}
};

const getStatuses = async () => {
console.log(true);
try {
setErr(false);
const { data } = await axios.post<any>(`http://localhost:5000/api/order/customStatus/all`, {
page: page,
pageSize: pageSize
}, {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
setStatuses(data);
setPage(page + 1);
} catch {
setErr(true);
}
};
useEffect(() => {
getOrders();
getStatuses();
}, [orderId, token]);
const currentStatus = order?.statuses[order?.statuses.length - 1];
const [status, setStatus] = useState(currentStatus?.id ?? 1);
const changeStatus = (e: any) => {
setStatus(e.target.value);
};
// const hasMore = page < Math.round(pageSize / statuses?.rows?.count);
return (
<>
{
err ? <Popup/> : <OrderComponent orderId={orderId}>
<InputLabel id="demo-simple-select-label">Change Order status</InputLabel>
<InfiniteScroll
dataLength={statuses?.rows?.length ?? 0}
next={getStatuses}
hasMore={true}
loader={<h4>Loading...</h4>}
>
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={status}
label={'status'}
onChange={(e: any) => changeStatus(e)}
>

{statuses?.rows?.map((status: any) => (
<MenuItem key={status?.id} value={status?.id}>
{status?.name}
</MenuItem>
))}
</Select>
</InfiniteScroll>
</OrderComponent>
}
</>
);
};

export default Order;

2 ответов

4 просмотра

Ебать. Сегодня спать буду охуенно - давно простыни не было

От души брат

Похожие вопросы

Обсуждают сегодня

анрей С какой целью зашёл?
КТ315
42
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
15
Я не очень много работал с потоками, тут возник вопрос - если будет одновременный доступ к памяти из двух разных потоков, это само по себе приведет к ошибке?
The Bird of Hermes
25
Слушайте, никак не могу заставить работать сортировку в TClientDataSet! Вроде все делаю правильно, создаю индекс, присваиваю его название ClientDataSet1.IndexName, первый раз...
Ivan Burnatov
7
а вот интересный вопрос появляется: допустим у нас есть приложение с системой модулей. Будет ли считаться система модуль+прога ассемблерной программой если: а) Прога на Си, м...
Mixail Frolov
29
я в заголовке имплементировал функцию. В заголовке стоят гарды. Но я все равно получаю multiple definitions. Как это может происходить?
Павλо 🇺🇦
15
как можно вывести первые 100 символов поля content на странице?
Artem
10
Или у тебя COMChecker ловит только свои сообщения, которые он отправил? Не знаю, как у тебя он работает.
КТ315
11
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Как это? А скрин ошибки хоть есть?
Александр (Rouse_) Багель
14
Карта сайта