'use client' import React, { useEffect, useState } from 'react' import { Route } from '@/app/types' import Button from '@/components/ui/Button' import showToast from '@/components/ui/Toast' import Loader from '@/components/ui/Loader' export default function UserRoutes() { const [routes, setRoutes] = useState([]) const [error, setError] = useState(null) const [loading, setLoading] = useState(true) const fetchRoutes = async () => { try { const response = await fetch('/api/account/routes', { method: 'GET', headers: { 'Content-Type': 'application/json', }, }) if (!response.ok) { const error = await response.json() throw new Error(error.message || 'Failed to fetch routes') } const data = await response.json() console.log(data) setRoutes(data || []) } catch (error) { console.error('Error fetching routes:', error) setError(error instanceof Error ? error.message : 'Не удалось загрузить маршруты') } finally { setLoading(false) } } useEffect(() => { fetchRoutes() }, []) const handleHighlight = async (route: Route) => { try { const response = await fetch(`/api/account/highlight`, { method: 'PATCH', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ route_id: route.id, }), }) if (!response.ok) { const error = await response.json() throw new Error(error.message || 'Failed to highlight route') } await fetchRoutes() showToast({ type: 'success', message: 'Ваше объявление выделено на сутки!', }) } catch (error) { console.error('Error highlighting route:', error) showToast({ type: 'error', message: 'Не удалось выделить объявление', }) } } const handleUpper = async (route: Route) => { try { const response = await fetch(`/api/account/upper`, { method: 'PATCH', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ route_id: route.id, }), }) if (!response.ok) { const error = await response.json() throw new Error(error.message || 'Failed to upper route') } await fetchRoutes() showToast({ type: 'success', message: 'Ваше объявление поднято в выдаче!', }) } catch (error) { console.error('Error upper route:', error) showToast({ type: 'error', message: 'Не удалось поднять объявление', }) } } if (loading) { return } if (error) { return (
{error}
) } const getBorderColor = (route: Route) => { if (route.is_highlighted) { return 'border-yellow-500 border-2' } return 'border' } return (

Мои маршруты

{(!routes || routes.length === 0) && (

У вас пока нет созданных маршрутов

Создавайте заявки на перевозку, чтобы они отобразились тут

)} {routes.length > 0 && (
{routes.map(route => (
ID маршрута: #{route.id}
{route.owner_type === 'customer' ? 'Заказчик' : 'Перевозчик'}
{route.from_city_name} / {route.from_country_name}
{route.formatted_departure}
{route.to_city_name} / {route.to_country_name}
{route.formatted_arrival}
Тип груза:
{route.formatted_cargo_type}
Способ перевозки:
{route.formatted_transport}
{route.comment && (
Комментарий: {route.comment}
)}
))}
)}
) }