feat: add render prop#9918
Conversation
size-limit report 📦
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #9918 +/- ##
==========================================
- Coverage 95.22% 95.21% -0.01%
==========================================
Files 462 461 -1
Lines 12535 12529 -6
Branches 4490 4485 -5
==========================================
- Hits 11936 11930 -6
Misses 599 599
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
👀 Docs deployed
📦 Package ✅yarn add @vkontakte/vkui@https://development.s3.prodcloud.vk.team/pull/9918/4691a5fe551cd2aa2d7852ffd4709854e0d98811/pkg/@vkontakte/vkui/_pkg.tgzCommit 4691a5f |
994ae8b to
a8cac1d
Compare
e2e tests |
| }; | ||
|
|
||
| if (render) { | ||
| return <RenderRootComponent render={render} getRootRef={getRootRef} {...resolvedProps} />; |
There was a problem hiding this comment.
А точно нужно дополнительный узел в дереве создавать? Нельзя просто?
if (render) return render({ ...resolvedProps, getRootRef });
There was a problem hiding this comment.
Нельзя, так как ругается компилятор
There was a problem hiding this comment.
Нашёл несколько моментов, которые стоит поправить перед мержем:
-
ContentCardсейчас наследуетrenderчерезTappableOmitProps, ноComponentу него применяется к внешнемуCard, аrenderпроваливается во внутреннийTappable. Получается, чтоrenderне является аналогомComponentдля этого компонента. Нужно либо передаватьrenderво внешнийCard, либо явно исключить его из props. -
Часть компонентов, которые являются обёртками над
RootComponent, типизируются черезHTMLAttributesWithRootRef & HasComponent, поэтомуrenderв их публичном API не появляется, хотя технически они его уже могут прокинуть вRootComponent. Нужно либоHasComponentрасширить типомrender, либо по аналогии создать типHasRenderи подключить ручкамиCardCardGridCardScrollChipFormItemTopGroupContainerGroupExpandedContent
a8cac1d to
adb290d
Compare
adb290d to
9c0cd5f
Compare
| }; | ||
|
|
||
| if (render) { | ||
| return <RenderRootComponent render={render} getRootRef={getRootRef} {...resolvedProps} />; |
There was a problem hiding this comment.
Нашёл несколько моментов, которые стоит поправить перед мержем:
-
ContentCardсейчас наследуетrenderчерезTappableOmitProps, ноComponentу него применяется к внешнемуCard, аrenderпроваливается во внутреннийTappable. Получается, чтоrenderне является аналогомComponentдля этого компонента. Нужно либо передаватьrenderво внешнийCard, либо явно исключить его из props. -
Часть компонентов, которые являются обёртками над
RootComponent, типизируются черезHTMLAttributesWithRootRef & HasComponent, поэтомуrenderв их публичном API не появляется, хотя технически они его уже могут прокинуть вRootComponent. Нужно либоHasComponentрасширить типомrender, либо по аналогии создать типHasRenderи подключить ручкамиCardCardGridCardScrollChipFormItemTopGroupContainerGroupExpandedContent
|
PR закрыт из-за отсутствия активности в течение последних 14 дней. Если это произошло по ошибке или изменения все ещё актуальны, откройте PR повторно. |
d19c3d3 to
4691a5f
Compare
|
Изменил описание Release notes @SevereCloud может в целом как-то подробней опишем релиз ноут? Может даже замутить пост в блоге для чего и почему и как. Или отдельную страницу в Кастомизации
|

e2e-тестыДизайн-ревьюОписание
Добавляем свойство render для компонентов
Release notes
Улучшения
renderна ряду сComponent