Skip to content

peeea4/toast-lib

Repository files navigation

Toast Library

Техническое задание

Необходимо реализовать Toast библиотеку Javascript, для представления не блокирующих уведомлений . Цель состоит в том, чтобы создать базовую библиотеку, которую можно настраивать и расширять.

Необходимый функционал:

  • Показать уведомление.
  • Скрыть уведомление.
  • Возможность устанавливать положение уведомления.
  • Возможность устанавливать тип уведомления (уведомление об успехе, ошибке, оповещение и т.д.).
  • Возможность устанавливать длительность показа уведомления.
  • Возможность задавать заголовок и описание уведомления.
  • Возможность устанавливать отступы уведомления.
  • Возможность изменять цвет типа уведомлений.
  • Возможность изменять анимацию появления и исчезновения.

Дополнительный функционал:

  • Возможность "смахивать" уведомления в сторону для быстрого закрытия.
  • Показ до 3 уведомлений одновременно.

Также проект предполагает:

  • Разделить библиотеку на два основных компонента: представления и логики. Для реализации логики приложения необходимо использовать порождающий паттерн программирования "Одиночка", который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа (см. подробнее паттерн Одиночка). При помощи паттерна создать сервисный класс, в котором вы будете задавать конфигурацию и вызывать уведомление. Для реализация представления необходимо использовать react portals.
    • Настроить конфигурации babel, eslint.
  • Подключить и настроить бандлер Rollup для сборки проекта в библиотеку.

  • Подключить и настроить Strorybook для проверки работоспособности вашей библиотеки.

  • Обработку ошибок через паттерн Error Boundaries

  • Проверку типов в React компонентах, передаваемых параметрах и подобных объектов.

  • Использование алиасов для импортирования файлов.

Тестирование

Реализовать e2e тестирование c полным покрытием функционала приложения:

  • Сервис для конфигурации Toast-компонента.
  • Графическое (компонент модуля и т.д.)

Полезные ссылки

React

Rollup

Storybook

Eslint

Babel

Тестирование Cypress

Styled-components

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages