Редактор виджетов
Вкладки Code, Functions и States, панель Schema/Default, представления JSX и JSON-дерева, сцена предпросмотра.
🛠 Редактор виджетов
Редактор разделён на две части: слева код, справа живой предпросмотр. В шапке — имя виджета и кнопки Экспорт и Сохранить.
🗂 Три вкладки
- Code — разметка виджета и контракт данных.
- Functions — обработчики действий пользователя.
- States — правила условной видимости.
💻 Вкладка Code
В правом верхнем углу редактора — переключатель двух представлений:
- JSX — основной способ записи. Компоненты и свойства автодополняются, опечатка в свойстве подчёркивается.
- JSON tree — то, что хранится. JSX печатается из этого дерева, поэтому представления не расходятся.
JSX разбирается примерно через 300 мс после последнего нажатия. При ошибке внизу выводится Line 7: …, а предпросмотр остаётся в последнем корректном состоянии.
📐 Нижняя панель: схема и данные
Под редактором кода находится панель данных: Schema · Default · Example 1 · +.
- Schema — ожидаемая структура данных в формате JSON Schema. Переключатель справа показывает её также как Zod и d.ts (только чтение).
- Default — пример данных для предпросмотра.
- + — сохраняет текущие данные как именованный пример; ✕ на вкладке примера удаляет его.
- Infer from data строит схему по данным. Fill from schema создаёт пустые данные по схеме.
Если данные не соответствуют схеме (нет обязательного поля, неверный тип), внизу появляется предупреждение.
✨ Автодополнение
При вводе {{ предлагаются все пути из схемы с типами: orders object[], orders.length, orders[0].status. В JSX это обычное выражение: value={order.total}.
👀 Сцена предпросмотра
Сцена справа показывает виджет так, как его увидит посетитель. Переключатель внизу даёт три режима:
- Виджет — только сам виджет.
- Чат — окно чата шириной 380px: шапка, два сообщения, виджет и поле ввода.
- Страница агента — тот же диалог во всю ширину.
Кнопка солнце/луна справа вверху переключает в тёмную тему только сцену — чтобы проверить виджет в обеих темах.
💾 Сохранение, экспорт, импорт
- Сохранить создаёт виджет или обновляет существующий. Кнопка выключена, пока в какой-либо панели некорректный JSON.
- Экспорт скачивает файл
.widget. - Импорт на странице «Виджеты» открывает такой файл как новый виджет.
🌐 О языке интерфейса
Названия Code, Schema, Default намеренно оставлены на английском — это термины разработчика, и в коде виджета они выглядят так же.