Size: a a a

2020 December 26

J

Jungle in Svelte [svelt]
Sierge
может кто сталкивался с каким-то адекватным конструктором форм: передаем схему и отрисовывается форма из схемы? :)
Если есть JSON схема, то да моя библиотека должна вам помочь, конечно там не всё реализовано, но простые формы рисует.
источник

J

Jungle in Svelte [svelt]
Спасибо за пинг 😊
источник

A

Arushwl in Svelte [svelt]
Jungle
Если есть JSON схема, то да моя библиотека должна вам помочь, конечно там не всё реализовано, но простые формы рисует.
Прикольно, но доки не помешают👍🏻хоть ридми на вход
источник

A

Arushwl in Svelte [svelt]
источник

A

Arushwl in Svelte [svelt]
А у тя AJV...
источник

DK

Dan Kozlov in Svelte [svelt]
В самом конце проекта впервые столкнулся с ситуацией, когда нужен JSX, и чтобы его придумать, нужно городить костыли.

Делаю я, значит, красивый онбординг (видосик приложу). Визуальный компонент для онбординга реюзабельный, конечно. Хочет он принимать текст какой-то через слоты. А вёрстка накладывает ограничения: весь текст должен быть строго в <span> с определённым классом.
Варианта два: все потребители контента должны быть об этом в курсе или… экшен.

Вот сейчас я в компоненте же онбординга делаю такую вот грязюку, у всех потребителей её импортирую и вешаю на элемент слота с текстами. Как считаете, аукнется мне это или нет?

  export const textAction: Action = node =>
   node.querySelectorAll('p').forEach((el: HTMLParagraphElement) => {
     const span = document.createElement('span');
     span.className = 'back';
     span.innerHTML = el.innerHTML;
     el.innerHTML = '';
     el.appendChild(span);
   });
источник

DK

Dan Kozlov in Svelte [svelt]
источник

DK

Dan Kozlov in Svelte [svelt]
Dan Kozlov
В самом конце проекта впервые столкнулся с ситуацией, когда нужен JSX, и чтобы его придумать, нужно городить костыли.

Делаю я, значит, красивый онбординг (видосик приложу). Визуальный компонент для онбординга реюзабельный, конечно. Хочет он принимать текст какой-то через слоты. А вёрстка накладывает ограничения: весь текст должен быть строго в <span> с определённым классом.
Варианта два: все потребители контента должны быть об этом в курсе или… экшен.

Вот сейчас я в компоненте же онбординга делаю такую вот грязюку, у всех потребителей её импортирую и вешаю на элемент слота с текстами. Как считаете, аукнется мне это или нет?

  export const textAction: Action = node =>
   node.querySelectorAll('p').forEach((el: HTMLParagraphElement) => {
     const span = document.createElement('span');
     span.className = 'back';
     span.innerHTML = el.innerHTML;
     el.innerHTML = '';
     el.appendChild(span);
   });
У меня сейчас только одна мысль: должно быть нельзя реактивно обновить контент в слотах, но у меня такого нет. Так что, по идее, всё шито-крыто.
источник

A

Arushwl in Svelte [svelt]
источник

DK

Dan Kozlov in Svelte [svelt]
Ага.
Хотел использовать крутое решение про box-decoration-break, а он сломан, если text-align:right, поэтому пришлось использовать метод про box-shadow. Одинаково хороши.
источник

A

Arushwl in Svelte [svelt]
А я не понял в чем трабл про слоты, сорян...
источник

DK

Dan Kozlov in Svelte [svelt]
Arushwl
А я не понял в чем трабл про слоты, сорян...
Хочется:
<Onboarding>
 <div slot='text'>
   <p>Тут текст</p>
 </div>
</Onboarding>

, а надо:
<Onboarding>
 <div slot='text'>
   <p><span class='back'>Тут текст</span></p>
 </div>
</Onboarding>

И вот span.back надо множить на все параграфы. Это и плохо, потому что потребитель компонента ничего об этом span не знает, и банально не хочется повторяться.
источник

DK

Dan Kozlov in Svelte [svelt]
В реакте-то можно б было придумать решений этой проблемы, которые бы оставили простой API surface компонента и убрали бы дублирование.
источник

A

Arushwl in Svelte [svelt]
Dan Kozlov
Хочется:
<Onboarding>
 <div slot='text'>
   <p>Тут текст</p>
 </div>
</Onboarding>

, а надо:
<Onboarding>
 <div slot='text'>
   <p><span class='back'>Тут текст</span></p>
 </div>
</Onboarding>

И вот span.back надо множить на все параграфы. Это и плохо, потому что потребитель компонента ничего об этом span не знает, и банально не хочется повторяться.
Ага. Уже понятнее )
источник

A

Arushwl in Svelte [svelt]
А параграфов может быть несколько?
источник

DK

Dan Kozlov in Svelte [svelt]
Arushwl
А параграфов может быть несколько?
Ага. Они еще могут быть внутри дивов и всё такое.
источник

A

Arushwl in Svelte [svelt]
Ёмана... типа строка с хтмл прилетает в Слот?
источник

DK

Dan Kozlov in Svelte [svelt]
Ну обычный слот, да
источник

A

Arushwl in Svelte [svelt]
Dan Kozlov
Ага.
Хотел использовать крутое решение про box-decoration-break, а он сломан, если text-align:right, поэтому пришлось использовать метод про box-shadow. Одинаково хороши.
источник

DK

Dan Kozlov in Svelte [svelt]
источник