Skip to content

black-evil-dragon/interval-slider-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Компонент IntervalSlider

Пример использования интервального слайдера в проекте React.ts+Webpack

Увидел возможность использовать его не только для дат, но и для любых других числовых промежутков. Здесь также можно добавить возможность использовать пре/пост-фиксы, например для отображения выделенного бюджета на что-либо: "$500-100 тыс. "

В проекте тренировал Feature-Sliced Design

Кажется сейчас излишним, и часть логики все еще можно вынести в model. Компоненты Spinner и SpinnerPoint не имеют свои css классы и стили, что надо исправить (наверное)

Инструкция по запуску проекта

Клонирование
git clone https://github.com/black-evil-dragon/onlydigital-task.git
cd onlydigital-task
Запуск
cd ./app
npm install
npm run start
Запуск с помощью Docker compose (в папке onlydigital-task)
docker-compose -f docker-compose.dev.yml up --build

или для production

docker-compose -f docker-compose.prod.yml up --build

Описание тестового задания

Реализовать следующий блок в соответствии с макетом

https://novokuznetsk.hh.ru/vacancy/106883136?hhtmFrom=employer_vacancies

Блок содержит информацию о временных отрезках, в каждом из которых существует несколько событий. При переключении временных отрезков изменяются соответствующие числа и под ними показывается новый слайдер, который содержит подробную информацию по ключевым событиям на активном временном отрезке.

Возможно существование от 2 до 6 временных отрезков. Все интерактивные точки на окружности располагаются на одинаковом расстоянии друг от друга

Весь блок стоит сделать независимым от другой логики на странице. Например, если добавить на страницу ещё один такой же блок, верстка и логика работы этих блоков не будет нарушена

Демонстрация работы блока - пример с максимальным количеством временных отрезков

https://disk.yandex.ru/d/um6QeDGxLT8wnQ

Все существующие в макете линии — это не разметочная сетка, а часть верстки

Требования к реализации

  • Необходимо использовать Typescript
  • Можно использовать React.js или нативный JS на Ваш выбор
  • В случае использования нативного JS, можно воспользоваться любым удобным для Вас HTML-шаблонизатором или обычным HTML
  • Стилизация с использованием SASS/SCSS (В случае работы с React.js, возможно использование styled-components)
  • Сборка проекта с помощью Webpack
  • Для работы со слайдерами необходимо использовать библиотеку Swiper
  • Для реализации js-анимаций можно использовать библиотеку gsap
  • Не использовать JQuery
  • Не использовать Bootstrap, Tailwind и т.п.
  • Не использовать библиотеки с готовыми UI-компонентами такие, как MaterialUI, AntDesign и т.п.

Выполненное задание необходимо прислать в виде ссылки на git-репозиторий. Актуальная версия кода должна находится в основной ветке. Файл README.md должен содержать инструкцию по запуску проекта