-
Notifications
You must be signed in to change notification settings - Fork 185
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(ActionSheet, Alert): add stopPropagation ignore #8166
base: master
Are you sure you want to change the base?
Conversation
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
size-limit report 📦
|
e2e tests |
👀 Docs deployed
Commit 0bef3d2 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #8166 +/- ##
=======================================
Coverage 95.50% 95.51%
=======================================
Files 401 401
Lines 11435 11453 +18
Branches 3774 3780 +6
=======================================
+ Hits 10921 10939 +18
Misses 514 514
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
const handleClick = (event: React.MouseEvent<HTMLElement>) => { | ||
if (!allowClickPropagation) { | ||
stopPropagation(event); | ||
} | ||
}; | ||
|
||
const clickHandlers = mergeCalls({ onClick: handleClick }, { onClick }); |
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.
const handleClick = (event: React.MouseEvent<HTMLElement>) => { | |
if (!allowClickPropagation) { | |
stopPropagation(event); | |
} | |
}; | |
const clickHandlers = mergeCalls({ onClick: handleClick }, { onClick }); | |
const handleClick = allowClickPropagation ? onClick : (event: React.MouseEvent<HTMLElement>) => { | |
stopPropagation(event); | |
onClick?.(event) | |
}; |
не очень импонирует mergeCalls
– внутри создается массив, потом внутри объект трасформируется в массив и потом итерируем по этому массиву
в данном случае, выглядит так, что проще не оборачивать в наш обработчик если передан allowClickPropagation
тоже самое в ActionSheet
и его производных
Описание
На корневую обертку
ActionSheet
/Alert
мы навешиваем обработчик наonClick
сstopPropagation
. Возможно, для того, чтобы клики на всплывашках не аффектили основное приложение? Но вAlert
добавили обработчик, чтобы предотвратить ложные срабатыванияonClose
- больше это не проблема, мы поменяли немного логику.Для чего клики нужны - глобальные обработчики клика для сбора аналитики.
Ещё у
ActionSheetDropdownMenu
навешивается обработчик наbody
- он не особо нужен, потому что у насoverlay
растягивается на весь экран. Оставим наv8
?Изменения
allowClickPropagation
для компонентовActionSheet
/Alert
+ есть возможность теперь прокинуть свои обработчикиonClick
. Но, наверное, будет не совсем правильно убирать это в рамках минорной версии.Release notes
allowClickPropagation
для всплытияonClick
и возможность передать кастомныйonClick
allowClickPropagation
для всплытияonClick
и возможность передать кастомныйonClick