@emailmaker/extensions-sandbox 1.1.85-dev.1 → 1.1.85-dev.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +42 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -340,6 +340,18 @@ import { ComponentRegistry } from '@emailmaker/extensions-react';
340
340
  Лечится добавлением `PluginDev` в конфигурацию сборки плагина (`externals: 'esm'`) либо сборкой
341
341
  плагина на глобалах.
342
342
 
343
+ ## Ваши настройки резолва редактора не касаются
344
+
345
+ Внутри пакета React адресуется **путём** к копии, которая лежит в нём же, а не именем `react`.
346
+ Следствий два, и оба в вашу пользу:
347
+
348
+ - `resolve.dedupe`, `resolve.alias`, `resolve.modules` и Module Federation `shared` работают у вас
349
+ так, как вы их написали. Мы не занимаем имя `react` и ничего у вас не перехватываем.
350
+ - Редактор не зависит от того, что вы с этим именем делаете: своя копия достаётся ему при любой
351
+ конфигурации сборки, в том числе если наш плагин у вас не подключён.
352
+
353
+ Одно исключение — `sharedReact` ниже: им вы просите обратного.
354
+
343
355
  ## Общий React (необязательно)
344
356
 
345
357
  Плагин хоста умеет обратное: отдать редактору **ваш** React вместо вендоренного —
@@ -866,6 +878,22 @@ App.registerPlugin('MyPluginSandbox', MyPluginSandbox);
866
878
 
867
879
  > ⚠️ Sandbox работает в изолированном iframe. React-компоненты здесь недоступны — только нативный DOM.
868
880
 
881
+ ### Скрипт живёт одно письмо
882
+
883
+ Документ холста пересоздаётся на каждое письмо: скрипт песочницы выполняется заново, и ничего из
884
+ прошлого письма в нём не остаётся. `handle.ready` — обещание, оно разрешается один раз, для первого
885
+ холста. Чтобы узнавать о готовности каждый раз, подпишитесь на `onReady`:
886
+
887
+ ```ts
888
+ const script = sandboxApi.registerSandboxScript(url);
889
+ script.onReady(() => {
890
+ messageService.send('my-plugin:settings', mySettings);
891
+ });
892
+ ```
893
+
894
+ Последнее, что вы отправили скрипту после его готовности, редактор повторяет в новый холст сам —
895
+ по каждому ключу сообщения. `onReady` нужен для состояния, которое вы считаете заново.
896
+
869
897
 
870
898
  ### MessageService (внутри sandbox)
871
899
 
@@ -978,6 +1006,20 @@ import { Form, FormColorField } from "@emailmaker/ui-kit";
978
1006
  </Form>
979
1007
  ```
980
1008
 
1009
+ ### Значки
1010
+
1011
+ Значки ui-kit берите по одному из подпути `icons` — в сборку плагина попадут только те, что вы
1012
+ используете. В release-сборке этот путь уходит на `@emailmaker/emailmaker/ui-kit/icons` хоста.
1013
+
1014
+ ```tsx
1015
+ import { AIRequests, Sun } from "@emailmaker/ui-kit/icons";
1016
+
1017
+ <AIRequests />
1018
+ ```
1019
+
1020
+ `<EmIcons icon="Sun" />` тоже работает, но подтягивает весь каталог значков и пишет в консоль
1021
+ предупреждение.
1022
+
981
1023
 
982
1024
  ---
983
1025
 
package/package.json CHANGED
@@ -5,5 +5,5 @@
5
5
  "main": "index.js",
6
6
  "types": "types.d.ts",
7
7
  "name": "@emailmaker/extensions-sandbox",
8
- "version": "1.1.85-dev.1"
8
+ "version": "1.1.85-dev.11"
9
9
  }