'use client' import { useState } from 'react'; import { message } from 'antd'; import { EditOutlined } from '@ant-design/icons'; import { i18nText } from '../../i18nKeys'; import { ExpertData } from '../../types/profile'; import { AUTH_TOKEN_KEY } from '../../constants/common'; import { useLocalStorage } from '../../hooks/useLocalStorage'; import { getTags } from '../../actions/profile'; import { Loader } from '../view/Loader'; import { LinkButton } from '../view/LinkButton'; import { ExpertTags } from './content/ExpertTags'; import { ExpertSchedule } from './content/ExpertSchedule'; import { ExpertPayData } from './content/ExpertPayData'; import { ExpertEducation } from './content/ExpertEducation'; type ExpertProfileProps = { locale: string; data: ExpertData; updateData: (data: ExpertData) => void; }; export const ExpertProfile = ({ locale, data, updateData }: ExpertProfileProps) => { const [jwt] = useLocalStorage(AUTH_TOKEN_KEY, ''); const [loading, setLoading] = useState<(keyof ExpertData)[]>([]); const updateExpert = (key: keyof ExpertData) => { switch (key) { case 'tags': setLoading([key]); getTags(locale, jwt) .then((tags) => { updateData({ ...data, tags }); }) .catch(() => message.error('Не удалось обновить направления')) .finally(() => setLoading([])); break; default: break; } }; return ( <>
  1. {i18nText('coaching', locale)}
David

{i18nText('aboutCoach', locale)}

person1 + person4

} />
{`12 ${i18nText('practiceHours', locale)}`}
{`15 ${i18nText('supervisionCount', locale)}`}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam aliquet, lectus nec viverra malesuada, ligula sem tempor risus, non posuere urna diam a libero.
) };