Карта реализуется сторонней библиотекой Leaflet. В активном состоянии страница позволяет вносить изменения в форму и отправлять её на сервер. После загрузки данных с сервера просматривать похожие объявления на карте, фильтровать их и уточнять подробную информацию о них, показывая для каждого из объявлений карточку.
Адрес в форму объявления подставляется из координат главной метки на карте. Ручное редактерование заблокировано.
Валидация формы (с помощью метода setCustomValidity). При попытке отправить форму с неправильными данными, отправки не происходит, а неверно заполненные поля подсвечиваются и предоставляют информирую о том что именно введено неверно.
Фильтрация отображаемых объявлений.
Отображение карточки объявлений при клике на пин объявления.
Устранение дребезга, отрисовка объявлениий при изменении фильтров не чаще установленного интервала (debounce с помощью метода setTimeout).
Проект разбит на модули.
В проекте настроена сборка JavaScript модулей с помощью Webpack.
Готовый проект формируется в папку - dist.
npm inpm run devnpm run buildnpm start