/opt/canhelp/apps/web/src/app/users/[id]
Edit: /opt/canhelp/apps/web/src/app/users/[id]/page.tsx (37659B)
'use client'
import { useState, useEffect } from 'react'
import { useParams, useRouter } from 'next/navigation'
import { useLocale } from '@/context/locale'
import { useSession } from '@/lib/auth'
import { getUserProfile, getUserReviews, getUserRating, getSpecialistAvailability, getSpecialistCards, getCategories, getLocations, getSpecialistFavorites, addSpecialistFavorite, removeSpecialistFavorite, getOrCreateDirectRoom, getCanMessage, getPriceList } from '@/lib/api'
import { UpgradePrompt } from '@/components/UpgradePrompt'
import type { SpecialistCard, PriceListGroup } from '@/lib/api'
import { formatShortName, shortName } from '@/lib/formatName'
import { formatLastSeen } from '@/lib/formatLastSeen'
import { PlanBadge } from '@/components/PlanBadge'
import { CategoryIcon, isCategoryIconUrl } from '@/components/CategoryIcon'
const MONTHS_BY_LOCALE: Record
= {
ru: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
en: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
el: ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'],
uk: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],
}
const WEEK_DAYS_BY_LOCALE: Record = {
ru: ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'],
en: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
el: ['Δε', 'Τρ', 'Τε', 'Πε', 'Πα', 'Σά', 'Κυ'],
uk: ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Нд'],
}
export default function UserProfilePage() {
const { id } = useParams<{ id: string }>()
const { t, locale } = useLocale()
const { data: session } = useSession()
const router = useRouter()
const [user, setUser] = useState(null)
const [reviews, setReviews] = useState([])
const [rating, setRating] = useState(null)
const [loading, setLoading] = useState(true)
const [specialistCards, setSpecialistCards] = useState([])
const [priceLists, setPriceLists] = useState>({})
const [catMap, setCatMap] = useState