-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(plasma-web, plasma-b2c): Popover component #732
Conversation
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
3f35f24
to
6763e7d
Compare
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
6763e7d
to
be6269d
Compare
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
be6269d
to
8805bdf
Compare
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
ac9b1bb
to
e9a82ba
Compare
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Компонент Popup - deprecated
Добавлен компонент Popover, основанный на Popup.
не совсем понятно почему Popup deprecated если на нем основан Popover
<Popover target={<Button>Toggle popover</Button>} placement='bottom' arrow={<Arrow/>}>
Hello World of Plasma
</Popover>
давай добавим в премер state: isOpen и onToggle => setState
placement?: PopoverPlacement | Array - позиция на экране
это же сторона раскрытия наверно а не совсем позиция ?
trigger: 'hover' | 'click' - Сп
??
я же правильно понимаю что программно можно тоже его вызывать через isOpen тогда trigger опционален ?
@@ -3,3 +3,4 @@ export { useForkRef } from './useForkRef'; | |||
export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'; | |||
export { useUniqId } from './useUniqId'; | |||
export { useResizeObserver } from './useResizeObserver'; | |||
export { useFocusTrap } from './useFocusTrap'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А почему мы useFocusTrap выносим в plasma-core ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а я кажется понял, типа Popup в core поэтому и Popover туда положили
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
да, именно
decorators: [InSpacingDecorator], | ||
} as Meta; | ||
|
||
const StyledArrow = styled.div` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А мы не хотим это положить внутрь либы ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
типо добавить дефолтную стрелочку? Или дать отдельно сам компонент этот?
В целом я ее так выносил, потому что не хотел особо водить никак со стилями(у нас тут у стрелки и контейнера одинаковый background)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
давай отдельно тогда задачу на стрелку замутим
trigger: 'click', | ||
closeOnOverlayClick: true, | ||
closeOnEsc: true, | ||
isFocusTrapped: false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
может true по умолчанию ?
* и вызова по клику либо ховеру. | ||
*/ | ||
export const Popover = memo<PopoverProps & RefAttributes<HTMLDivElement>>( | ||
React.forwardRef<HTMLDivElement, PopoverProps>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А зачем нам реф на popover ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
У нас как-то была задача по добавлению рефа для Тултипа, поэтому подумал, что логично и на Popover навесить
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤔 наверно норм тогда
arrow, | ||
placement = 'auto', | ||
offset = [0, 0], | ||
isFocusTrapped = false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не хотим по умолчанию true ?
ba203af
to
2366fa8
Compare
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
/** | ||
* Способ всплывающего окна - наведение или клик мышью. | ||
*/ | ||
trigger: 'hover' | 'click'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не понял только про trigger обязательный ли он
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не обязателен. А на коммент выше, то да, можно программно открывать через isOpen
/** | ||
* Всплывающее окно раскрыто или нет. | ||
*/ | ||
isOpen?: boolean; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а isOpen опционален ?
нам не обязательно иметь state ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
сделал обязательным
2366fa8
to
21ff51f
Compare
Theme Builder app deployed! http://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-732/ |
Component performance testing Result: 🟢 Success Check out report in job artifacts! |
Documentation preview deployed! website: http://plasma.sberdevices.ru/pr/pr-732/ |
🚀 This PR is included in version: @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected] 🚀 |
1 similar comment
🚀 This PR is included in version: @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected] 🚀 |
🚀 This PR is included in version: @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected] 🚀 |
1 similar comment
🚀 This PR is included in version: @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected], @salutejs/[email protected] 🚀 |
Компонент
Popup
- deprecatedДобавлен компонент
Popover
.Свойства компонента:
isOpen: boolean
- Открыто ли окно.trigger?: 'hover' | 'click'
- Способ открытия всплывающего окна - наведение или клик мышью.placement?: PopoverPlacement | Array<PopoverBasicPlacement>
- Сторона открытия окна относительно target элемента.auto
- по умолчанию.left, right, top, bottom
и их комбинации в виде массива.offset?: [number, number]
- Отступ окна относительно элемента, у которого оно вызвано.target?: ReactNode
- Элемент, рядом с которым произойдет вызов всплывающего окна.children?: React.ReactNode
- Контент всплывающего окна.onToggle?: (isOpen: boolean, event: SyntheticEvent | Event) => void
- Событие сворачивания/разворачивания всплывающего окна.arrow?: ReactNode
- Стрелка над элементом.isFocusTrapped?: boolean
- Блокировать ли фокус на всплывающем окне.closeOnOverlayClick?: boolean
- Закрывать окно при нажатии вне области окна(по умолчанию true).closeOnEsc?: boolean
- Закрывать окно при нажатии ESC(по умолчанию true).Текущий API:
Добавлена story у
storybook
для компонента.🐤 Download canary assets:
📦 Published PR as canary version:
Canary Versions
✨ Test out this PR locally via:
Version
Published prerelease version:
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
@salutejs/[email protected]
Changelog
Release Notes
plasma-web: Pass
ref
to DropdownItem (#769)Добавлена возможность использовать свойство
ref
для компонентаDropdownItem
plasma-infra: Update version (#770)
Выключили sync package-lock's файлов для приватных пакетов.
What/why Changed
При попытке установить приватный пакет, получаем ошибку 404 - Not found.
Поэтому принято решение не запускать
npm i --package-lock-only
для приватнных пакетов.Добавлен флаг
--legacy-peer-deps
что бы исключить ошибки:plasma-infra: Update private packages version with @auto-it (#734)
Включили обновление версий для всех пакетов, включая приватные.
What/why Changed
Сделали патчи для
@auto-it/core
и@auto-it/npm
что бы можно было включить в обработку все пакеты.Как оказалось в
@auto-it/core
в методеgetLernaPackages(packages/core/src/utils/get-lerna-packages.ts)
была логика фильтрующая пакеты по полюprivate
:C помощью
patch-package
сделал патчи для изменения этой логики.В этом commit из песочнице можно посмотреть как это работает.
Запуск локально проекта
auto next --dry-run
(Report what command will do but do not actually do anything)при изменениях в пакете
plasma-web
:Так же откатили/удалили все что было связанно с ручным обновлением версий в приватных пакетах.
🚀 Enhancement
@salutejs/plasma-b2c
,@salutejs/plasma-core
,@salutejs/plasma-web
@salutejs/plasma-b2c
,@salutejs/plasma-core
,@salutejs/plasma-hope
,@salutejs/plasma-web
@salutejs/plasma-core
,@salutejs/plasma-hope
,@salutejs/plasma-web
@salutejs/plasma-hope
ref
to DropdownItem #769 (@Yakutoc)@salutejs/plasma-tokens
@salutejs/plasma-tokens-utils
@salutejs/plasma-tokens
,@salutejs/plasma-tokens-utils
@salutejs/plasma-new-hope
@salutejs/plasma-ui
🐛 Bug Fix
@salutejs/plasma-core
,@salutejs/plasma-hope
@salutejs/plasma-b2c
,@salutejs/plasma-core
,@salutejs/plasma-hope
,@salutejs/plasma-icons
,@salutejs/plasma-temple
,@salutejs/plasma-ui
,@salutejs/plasma-web
,@salutejs/plasma-sb-utils
@salutejs/plasma-core
dev
@salutejs/plasma-b2c
,@salutejs/plasma-hope
,@salutejs/plasma-web
@salutejs/plasma-b2c
,@salutejs/plasma-core
,@salutejs/plasma-hope
,@salutejs/plasma-icons
,@salutejs/plasma-temple
,@salutejs/plasma-tokens-b2b
,@salutejs/plasma-tokens-b2c
,@salutejs/plasma-tokens-web
,@salutejs/plasma-tokens
,@salutejs/plasma-ui
,@salutejs/plasma-web
,@salutejs/plasma-cy-utils
,@salutejs/plasma-sb-utils
,@salutejs/plasma-tokens-utils
@salutejs/plasma-b2c
,@salutejs/plasma-core
,@salutejs/plasma-hope
,@salutejs/plasma-icons
,@salutejs/plasma-temple
,@salutejs/plasma-tokens-web
,@salutejs/plasma-ui
,@salutejs/plasma-web
,@salutejs/plasma-sb-utils
,@salutejs/plasma-tokens-utils
@salutejs/plasma-b2c
,@salutejs/plasma-core
,@salutejs/plasma-hope
,@salutejs/plasma-icons
,@salutejs/plasma-temple
,@salutejs/plasma-ui
,@salutejs/plasma-web
,@salutejs/plasma-sb-utils
@salutejs/plasma-new-hope
@salutejs/plasma-temple
,@salutejs/plasma-ui
Authors: 6