Skip to content

починить контролы выравнивания в stories divider - #150

Merged
AxyIX merged 3 commits into
mainfrom
divider.align
Sep 8, 2026
Merged

починить контролы выравнивания в stories divider#150
AxyIX merged 3 commits into
mainfrom
divider.align

Conversation

@khaliulin

Copy link
Copy Markdown
Contributor

Проп align у extra-divider выглядел нерабочим: значение в контролах менялось, на экране — ничего.

Причина

Сам компонент исправен. В браузере видно, что PrimeNG отрабатывает все пять значений — меняются и класс (p-divider-left/center/right/top/bottom), и раскладка (justify-content, align-items). Не работали stories.

1. В Default не было контента. Шаблон собирался как <extra-divider></extra-divider>. align двигает контент внутри разделителя — двигать было нечего, на экране оставалась та же линия.

2. Вертикальному разделителю не задавалась высота. Он схлопывался ровно по контенту (44px), свободного места внутри не оставалось, и top, center, bottom давали одинаковый результат — контент на 14px от верха во всех трёх случаях.

3. Контрол предлагал все пять значений при любом layout. Для горизонтального разделителя align="top" не назначает вообще никакого класса — комбинация из списка молча не делала ничего.

4. Четыре story на примерах игнорировали аргументы целиком. WithContent, WithIcon, AlignLeft, AlignBottom рисовались как <app-divider-*></app-divider-*> без единого биндинга, а пропсы были зашиты в шаблон примера. Не работал не только align, но и layout с type.

Что изменено

divider.stories.ts — в Default появился аргумент content (по умолчанию «Отправитель»), вертикальная раскладка заворачивается в <div class="flex h-40"> (та же идиома, что была в примере AlignBottom), а один контрол align разделён на два — horizontalAlign (left/center/right) и verticalAlign (top/center/bottom), оба под именем align с if: { arg: 'layout' }. Схема с двумя аргументами под одним именем взята из timeline.stories.ts, где она уже применена для той же задачи.

Четыре примера (divider-with-content, divider-with-icon, divider-align-left, divider-align-bottom) переведены на схему из badge-sizes: компонент принимает @Input() layout / type / align плюс свой слот (content или icon), story прокидывает в него аргументы. Значения по умолчанию у каждой story сохранены — WithIcon открывается по центру, AlignLeft слева, AlignBottom вертикальным снизу. Сниппеты в docs оставлены статическими: они показывают готовый пример для копирования, а не отражение контролов.

Компонент и стилевой слой не тронуты.

Проверено в браузере

Default, все шесть комбинаций:

layout align класс позиция контента
horizontal left p-divider-left 14
horizontal center p-divider-center 427
horizontal right p-divider-right 840.1
vertical top p-divider-top 14 (высота 160)
vertical center p-divider-center 63
vertical bottom p-divider-bottom 112

Примеры: у всех четырёх меняются align, layout и type, у WithContent — текст, у WithIcon — класс иконки. Дефолты каждой story на месте.

Гейты: tsc по .storybook/tsconfig.json — 0 ошибок; check-stories-bg.mjs divider — подложек нет; prettier чисто.

Заметка

Нелатинский текст в аргументе content не переживает передачу через URL (&args=content:Проверка) — это ограничение самого Storybook, в панели контролов всё вводится нормально.

@AxyIX
AxyIX merged commit cf2b777 into main Sep 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants