@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.
- package/README.md +42 -0
- 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