Используется в контексте Storybook - инструмента для разработки и документирования компонентов React. Декоратор позволяет устанавливать фича флаги (features) для компонентов, что позволяет изменять их поведение и внешний вид.
-
Декоратор принимает объект
FeatureFlags
, который содержит информацию о состоянии фича флагов приложения. -
С помощью функции
setFeatureFlags
из библиотеки 'shared/lib/features', декоратор устанавливает переданные фича флаги. -
Затем, декоратор оборачивает компонент
StoryComponent
, представляющий простую историю, и возвращает его. -
После установки фича флагов, компонент
StoryComponent
будет использовать определенные флаги для изменения своего поведения и отображения.
Данный код представляет собой декоратор NewDesignDecorator
, который используется в контексте Storybook - инструмента для разработки и документирования компонентов React. Декоратор позволяет применить новый дизайн (new design) к компонентам, чтобы визуально оценить их внешний вид и совместимость с новым дизайном.
-
Декоратор принимает компонент
StoryComponent
, представляющий простую историю (story). -
С помощью функции
getAllFeatureFlags
из библиотеки 'shared/types/featureFlags', декоратор получает все фича-флаги приложения. -
Затем, с помощью функции
setFeatureFlags
из библиотеки 'shared/lib/features', декоратор устанавливает флагisAppRedesigned
в значениеtrue
, что обозначает применение нового дизайна. -
После установки флага
isAppRedesigned
, декоратор оборачивает компонентStoryComponent
в<div>
с классом 'app_redesigned', чтобы применить стили нового дизайна. -
Новый дизайн применяется к компонентам внутри
StoryComponent
, позволяя оценить их визуальное взаимодействие с новым дизайном.
Данный код представляет собой декоратор RouterDecorator
, который используется в контексте Storybook - инструмента для разработки и документирования компонентов React. Декоратор позволяет применить компонент BrowserRouter
из библиотеки 'react-router-dom' к истории (story) компонентов.
-
Декоратор принимает компонент
StoryComponent
, представляющий простую историю (story) компонента. -
Декоратор оборачивает
StoryComponent
в компонентBrowserRouter
, предоставляемый библиотекой 'react-router-dom'. Этот компонент обеспечивает маршрутизацию и управление историей браузера для приложения, что позволяет компонентам работать с маршрутами и переходами между страницами. -
В результате, компонент
StoryComponent
и все его вложенные компоненты будут иметь доступ к функциональности маршрутизации, предоставляемойBrowserRouter
.
Данный код представляет собой декоратор StoreDecorator
, который используется в контексте Storybook - инструмента для разработки и документирования компонентов React. Декоратор позволяет обернуть компоненты с использованием контекста хранилища состояния (store).
-
Декоратор принимает два параметра:
state
: объект с глубокими частичными данными состояния, которые будут использоваться в хранилище. Этот параметр позволяет предопределить начальное состояние для хранилища.asyncReducers
: объект, содержащий асинхронные редьюсеры, которые будут добавлены в хранилище. Этот параметр предоставляет возможность добавить дополнительные редьюсеры к хранилищу для поддержки асинхронных операций.
-
Внутри декоратора определен
defaultAsyncReducers
, который содержит список редьюсеров по умолчанию. Эти редьюсеры представляют различные части состояния приложения, такие какloginForm
,profile
,articleDetails
и т.д. -
Декоратор оборачивает
StoryComponent
в компонентStoreProvider
, который предоставляет хранилище состояния и обеспечивает его доступность во всем дереве компонентов. ВStoreProvider
передается начальное состояниеinitialState
, которое было задано через параметрstate
. Также, кasyncReducers
добавляются редьюсеры изdefaultAsyncReducers
и переданные через параметрasyncReducers
. -
В результате, компонент
StoryComponent
и все его вложенные компоненты будут иметь доступ к хранилищу состояния, что позволит управлять состоянием приложения и проверять его поведение в различных сценариях.
Таким образом, декоратор StoreDecorator
обеспечивает интеграцию хранилища состояния в компоненты, что позволяет быстро проверить их работу с данными и обеспечивает корректное функционирование приложения в контексте управления состоянием
Данный код представляет собой декоратор StyleDecorator
, который используется в контексте Storybook - инструмента для разработки и документирования компонентов React. Декоратор предназначен для добавления стилей к компонентам при просмотре и тестировании их в Storybook.
-
Внутри декоратора импортируется файл стилей
index.scss
из директорииapp/styles
. Это позволяет применить общие стили или глобальные настройки для всех компонентов, которые будут отображаться в Storybook. -
Декоратор принимает параметр
story
, который является функцией, возвращающей компонентStory
.Story
- это специальный компонент Storybook, который представляет отдельный сценарий (историю) для компонента. -
Внутри декоратора возвращается вызов функции
story()
. Это означает, что компонентStory
, переданный в декоратор, будет отображаться в Storybook без изменений. -
В результате, когда компонент будет отображаться в Storybook, к нему автоматически применятся стили из файла
index.scss
, что обеспечит единый и стилизованный вид для всех компонентов, что упростит и улучшит их визуальное представление при разработке и тестировании.
Таким образом, декоратор StyleDecorator
позволяет добавить общие стили к компонентам в Storybook, что способствует унификации внешнего вида и обеспечивает более удобную и продуктивную разработку интерфейса веб-приложения.
Данный код представляет собой декоратор SuspenseDecorator
, который используется в контексте Storybook - инструмента для разработки и документирования компонентов React. Декоратор предназначен для обработки ленивой загрузки компонентов при их просмотре и тестировании в Storybook.
-
Внутри декоратора импортируется компонент
Suspense
из библиотеки React.Suspense
- это компонент, который позволяет обрабатывать ленивую загрузку компонентов, используя механизмReact.lazy
иReact.Suspense
. -
Декоратор принимает параметр
StoryComponent
, который является компонентомStory
из Storybook.Story
- это специальный компонент, который представляет отдельный сценарий (историю) для компонента. -
Внутри декоратора оборачивается компонент
StoryComponent
в компонентSuspense
. Таким образом, все компоненты, которые будут отображаться в Storybook с помощью этого декоратора, будут проходить ленивую загрузку, если они были реализованы с помощьюReact.lazy
иReact.Suspense
. -
В результате, когда компонент будет отображаться в Storybook, декоратор
SuspenseDecorator
автоматически обрабатывает ленивую загрузку компонентов, что позволяет оптимизировать производительность приложения и улучшить пользовательский опыт.
Таким образом, декоратор SuspenseDecorator
упрощает работу с ленивой загрузкой компонентов в Storybook, что способствует более эффективной разработке и тестированию приложения.
Данный код представляет собой декоратор ThemeDecorator
, который используется в контексте Storybook - инструмента для разработки и документирования компонентов React. Декоратор предназначен для установки темы (стилей) для компонентов при их просмотре и тестировании в Storybook.
-
Внутри декоратора импортируется компонент
ThemeProvider
из файла@/app/providers/ThemeProvider
.ThemeProvider
- это компонент, предоставляемый провайдером тем, который позволяет устанавливать тему (стили) для всех вложенных компонентов. -
Также импортируется тип
Theme
из файла@/shared/const/theme
, который представляет различные темы (стили) для приложения. -
Декоратор принимает параметр
theme
, который определяет тему (стили) для компонентов в Storybook. -
Декоратор принимает также параметр
StoryComponent
, который является компонентомStory
из Storybook.Story
- это специальный компонент, который представляет отдельный сценарий (историю) для компонента. -
Внутри декоратора компонент
StoryComponent
оборачивается вThemeProvider
. Это позволяет установить определенную тему (стили) для всех вложенных компонентов. -
Внутри
ThemeProvider
устанавливается тема (стили) с помощьюinitialTheme={theme}
, гдеtheme
- переданный параметр декоратора. -
Декоратор также добавляет класс
app
с именем темы в обернутый контейнер<div>
, чтобы установить соответствующие стили для компонентов с использованием этой темы.
Таким образом, декоратор ThemeDecorator
позволяет быстро и удобно устанавливать тему (стили) для компонентов в Storybook, что помогает разработчикам визуально оценить внешний вид компонентов при разных темах и оптимизировать процесс тестирования стилей.