import { useState } from 'react'; import { useRouter } from 'next/router'; import clsx from 'clsx'; import { Card } from '@/components/card'; import { CursorEffect } from '@/components/cursor'; import Star from '@/assets/images/thick-round-star-6.svg'; import NoteIcon from '@/assets/icons/note.svg'; import type { Alerts, City } from '@/lib/ridebus'; import useLocale from '@/utils/useLocale'; import { SelectMenu } from '../departuresCard/selectMenu'; import { useResource } from '../departuresCard/useResource'; import { locales } from './locales'; import styles from './changesCard.module.scss'; export function ChangesCard() { const t = useLocale(locales); const { locale } = useRouter(); const [revision, setRevision] = useState(0); const [chosenCity, setChosenCity] = useState(''); const [expanded, setExpanded] = useState(false); const cities = useResource( '/api/departures?resource=cities', revision ); const cityId = String( cities.data?.find((city) => String(city.id) === chosenCity)?.id ?? cities.data?.find((city) => city.slug === 'polotsk')?.id ?? cities.data?.[0]?.id ?? '' ); const notices = useResource( cityId ? `/api/departures?resource=alerts&cityId=${cityId}` : null, revision, true ); const failed = cities.status === 'error' || notices.status === 'error'; const loading = cities.status === 'loading' || notices.status === 'loading'; const alerts = notices.data?.alerts ?? []; const dateFormat = new Intl.DateTimeFormat( locale === 'ru' ? 'ru-BY' : 'en-GB', { day: 'numeric', month: 'short', year: 'numeric', timeZone: 'Europe/Minsk', } ); const updateTime = notices.data ? new Intl.DateTimeFormat(locale === 'ru' ? 'ru-BY' : 'en-GB', { hour: '2-digit', minute: '2-digit', timeZone: 'Europe/Minsk', }).format(new Date(notices.data.updatedAt)) : ''; return (
); }