atls / reactjs

ReactJS Advanced Custom Modules
BSD 3-Clause "New" or "Revised" License
2 stars 1 forks source link

Feature/payment widget #123

Closed KentCpu closed 1 year ago

KentCpu commented 1 year ago

После долгих раздумий решил погуглить. Нашел схожий функционал у "ЮKassa". Они предоставляют конструктор формы с обязательными полями и возможностью добавления дополнительных. Я попытался реализовать нечто подобное в коде. Что касается стилей, я заметил, что они обычно фиксированы для таких форм. Смог получить доступ к функции "pay", но мне кажется, что это костыль.

Прошу ответить на следующие вопросы:

  1. Правильно ли я понимаю, что стили обычно фиксированы для таких форм, или следует предоставить возможность для их стилизации?
  2. Как можно было получить доступ к функции pay по другому ? Смог сделать только так
TorinAsakura commented 1 year ago

После долгих раздумий решил погуглить. Нашел схожий функционал у "ЮKassa". Они предоставляют конструктор формы с обязательными полями и возможностью добавления дополнительных. Я попытался реализовать нечто подобное в коде. Что касается стилей, я заметил, что они обычно фиксированы для таких форм. Смог получить доступ к функции "pay", но мне кажется, что это костыль.

Прошу ответить на следующие вопросы:

  1. Правильно ли я понимаю, что стили обычно фиксированы для таких форм, или следует предоставить возможность для их стилизации?
  2. Как можно было получить доступ к функции pay по другому ? Смог сделать только так
  1. Для дискуссий - есть дискусси.
  2. Мы пишем библиотеку, а это значит, что платёжка должна поддаваться лёгкой кастомизации. Ярым моветоном считается хардкод в любом проявлении. От того, что ты потратишь лишние полчаса и вынесешь стили в отдельный слой ничего плохого не случится.
  3. Понятия не имею, чтобы разобраться в данном вопросе - нужно разобраться с самим плагином. Но, если говорить про архитектуру, то это должно выглядеть так:
    • инициализация
    • публикация функции
    • расширение по месту использования
  4. При этом, фичу нужно разбивать на слои, дабы не создавать монолитный кусок кода, как это сделано у тебя сейчас
KentCpu commented 1 year ago

@Nelfimov, добавил темы для кнопок. Возможно, стоит также добавить темы для инпутов? Странно, что тесты не прошли, так как у меня yarn check выполнился без ошибок.

Nelfimov commented 1 year ago

@Nelfimov, добавил темы для кнопок. Возможно, стоит также добавить темы для инпутов? Странно, что тесты не прошли, так как у меня yarn check выполнился без ошибок.

У тебя две папки с темой - src/payment-theme и src/theme. При этом в первой есть только провайдер, а во второй - только цвета.

Ты видимо чутка заработался.

По инпутам - можно сделать легкую тему с подсветкой границ при активности.

KentCpu commented 1 year ago

@Nelfimov, я решил отказаться от идеи с темой для кнопки, так как это выглядело не очень органично. Вместо этого, я использовал стили из формы для оплаты и добавил валидацию. Жду ревью :)