Задача
- Легаси на JavaScript с дублированием бизнес-логики и сложной поддержкой.
- Критичный сценарий расписания: много состояний, быстрые изменения, риск UI-ошибок.
- Нужно переписывать модули без остановки поставки фич для бизнеса.
Я развиваю внутреннюю CRM для салона красоты: перевожу легаси-части на компонентную React-архитектуру, стабилизирую сложные сценарии расписания и улучшаю UX рабочих экранов для администраторов.
Внутренний CRM-продукт для ежедневной работы администраторов: запись клиентов, статусы визитов, расписание мастеров.
Текущий статус
Основной рабочий проектМиграция
Ключевые экраны переписаны на React/TSUX расписания
Стабильнее drag-and-drop и статусы визитовПоддержка
Меньше дублирования и проще развитие фичtype VisitCardProps = {
id: string;
clientName: string;
time: string;
status: 'new' | 'confirmed' | 'done';
onOpen: (id: string) => void;
};
export function VisitCard({ id, clientName, time, status, onOpen }: VisitCardProps) {
return (
<button className={`visit-card visit-card--${status}`} onClick={() => onOpen(id)}>
<span className="visit-card__time">{time}</span>
<span className="visit-card__client">{clientName}</span>
<span className="visit-card__status">{status}</span>
</button>
);
}