tieredmenu: стилизация, сторисы#159
Conversation
There was a problem hiding this comment.
Зачем это удалять? Это пример как можно работать через класс p-menuitem-checked, он сам по себе не может появиться, нужна какая-то логика, которая будет описана в сториках
Судя по твоим сторикам всё работает само, ничего делать не надо, что абсолютно неверно, ты везде используешь хук useMenu
There was a problem hiding this comment.
- TieredMenuSelected.vue (новый файл) — обёртка, которая инкапсулирует useMenu и управляет
динамическим выделением. - WithSelectedTemplate — теперь просто рендерит без лишнего setup-кода.
- Source code сниппет в stories — показывает, как реализовать динамическое выделение в своём
приложении: clearSelectedClass + addCommandHandler с command handlers. - MDX — текст обновлён: описывает динамическое поведение вместо статичного
|
|
||
| ### With Selected Item | ||
|
|
||
| Меню с выделенным активным пунктом через класс `p-menuitem-checked`. |
There was a problem hiding this comment.
Что такое p-menuitem-checked? Откуда оно берется? Как мне это прокинуть на сторону проекта? Непонятно
There was a problem hiding this comment.
@Skosov предлагаю добавить блок с гайдом:

There was a problem hiding this comment.
У этого компонента всегда один и тот же список items, он не передается. Хук в целом был только для сториков
не проксируются пропсы из прайма
не экспортируется компонент
There was a problem hiding this comment.
Зачем в историях использовать компонент из прайма вообще, если была написана обертка?
|
|
||
| export const Basic = { | ||
| render: BasicTemplate, | ||
| decorators: [ |
There was a problem hiding this comment.
почему сразу в шаблоне нельзя высоту задать?
There was a problem hiding this comment.
@Skosov Storybook просит через декоратор.
There was a problem hiding this comment.
There was a problem hiding this comment.
Я не нашел там такой рекомендации)
There was a problem hiding this comment.
Это просто статья, описывающая их работу
| import { TieredMenu } from 'primevue'; | ||
| import type { MenuItem } from 'primevue/menuitem'; | ||
|
|
||
| defineProps<{ |
There was a problem hiding this comment.
я не вижу, чтоб пропсы наследоваились от оригинального TieredMenu, не вижу эмитов, прокинутых из TieredMenu, не вижу прокидывания слотов, не вижу экспорта из библиотеки
| padding-bottom: 0.625rem; | ||
| } | ||
|
|
||
| [class*="menu"][class*="item"].p-disabled, .p-panelmenu-panel > .p-disabled { |
There was a problem hiding this comment.
какова цель двух стилизаций? (в отдельном файле и глобально)
| @@ -0,0 +1,43 @@ | |||
| const css = ({ dt }: { dt: (token: string) => string }) => ` | |||
There was a problem hiding this comment.
если у нас обертка, то для чего стили в теме?
| <CodeSnippet :code="items"/> | ||
| <div class="card flex justify-center"> | ||
| <TieredMenuSelected :model="items" v-bind="args"> | ||
| <template #item="{ item, props, hasSubmenu }"> |
There was a problem hiding this comment.
это точно будет работать? В шаблоне нет упоминаний слотов вообще
There was a problem hiding this comment.
Может просто описать их прямо в шаблоне для наглядности?
There was a problem hiding this comment.
Пример из PBlockToggleButton
<template #icon>
<slot name="icon" />
</template>
| Record<string, unknown> | ||
| >; | ||
|
|
||
| defineProps<{ |
There was a problem hiding this comment.
я так и не вижу поддержки всех пропсов TieredMenu. Импорт тоже странный
В готовом примере PBlockToggleButton.vue
import { ToggleButton, type ToggleButtonProps } from 'primevue';
interface IPBlockToggleButton extends ToggleButtonProps {
baseIcon?: string;
baseLabel?: string;
modelValue?: boolean;
}
defineProps<IPBlockToggleButton>();
…исправить fonts-font-size-xs
|
Ждем MenuBar, потом тут напишу комменты |

No description provided.