- при загрузке контактов в блоке с контактами появляется скелетон;
- при загрузке сообщения в шапке блока с ообщения крутится прелоадер;
- собщения подгружаются при клике на соотвествующий контакт;
- если в поле ввода что-то введено иконка меняется на иконку отправки;
- при нажатии на иконку отправки сообщение отправляется на сервер;
- после добавления сообщение появляется в конце списка сообщений;
- автоматический скроллинг на последнее сообщение;
- при открытии сообщений происходит скроллинг по последнего сообщения;
- фильтрации контактов;
- фильтрации сообщений;
- блок анкеты справа скрывается/раскрывается по нажатию на соответствующую иконку.
- реализован функционал изменени темы с белой на темную (при этом после перезагрузки страницы, изменения сораняются).
- JavaScript / React (Hooks);
- redux / redux-thunk / redux-logger для организации стейта;
- react-transition-group для работы с анимацией;
- react-router-dom для роутинга;
- REST API, асинхронные запросы (специально для чата был написан небольшой backend);
- classnames / Material Icons / react-loading-skeleton;
- а также prop-types, react-hotkeys-hook, moment.