Closed absolemDev closed 12 months ago
@Nelfimov, в проекте тема более расширена
Проект
---
button: {
transparentBackground: {
default: { ...
Виджет
----
button: {
default: { ...
А если я буду передавать уже кастомизированные элементы: https://github.com/torin-asakura/drum-in/blob/4a8341e45c0542aa95abbc4810123d98a7a9a0f3/ui/button/src/button.component.tsx#L19 и подменять их в виджете: https://github.com/atls/reactjs/blob/d14b846684109f4f2b4c00bb4530822d8185312b/packages/payment-widget/src/ui/button/button.component.tsx#L13 ?
Проговаривали же - ты можешь переопределить тему несколькими способами:
ThemeProvider
объект темы из проектаThemeProvider
у виджетаПри любом из этих вариантов остается только пропсами задавать варианты инпутов и батонов.
- Подставить в ThemeProvider объект темы из проекта
@Nelfimov, это не проблема. Но логика button.styles.ts
у проекта и виджета отличается. Корректно ли будет работать виджет с темой из проекта?
Пробуй - делай форк в проекте и кастомизируй.
Под форком имеется в виду взять пакет и создать его локальную копию в твоем проекте. По аналогии с /fork/locomotive-scroll
@Nelfimov, создал пр https://github.com/atls/reactjs/pull/134 . Конечно нужны еще доработки, но в целом, такой подход имеет место быть?
обрати внимание - залил тебе в качестве примера тест с готовыми настройками для тестирования стилей. По хорошему подобными тестами надо обвешать весь виджет.
Есть еще один путь - можешь сделать как тут:
https://github.com/atls/nextjs/tree/master/packages/identity-integration
А именно:
Имплементация тут:
Резюме: компонент рендерит любых детей, у которых свои стили локального проекта, и передает им через функцию необходимое. В случае примере - возможность изменять значения инпута и функция сабмита.
В этом случае ты вообще избавляешься от необходимости в определении темы.
С чем связан запрос на фичу?
В текущей реализации payment-widget имеет ограничения по стилизации и функционалу для интеграции в проекты
Расскажите как вы это себе видите
styles
для более гибкой стилизации дополнительных полей.Приложите пример реализаций
No response