@atlaskit/editor-plugin-synced-block 6.0.19 → 6.0.21
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/AGENTS.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# Synced Blocks — Developer Agent Guide
|
|
2
2
|
|
|
3
3
|
> **Purpose**: This guide helps AI agents and developers implement features, fix bugs, and clean up
|
|
4
|
-
> feature gates in the Synced Blocks codebase. It provides architectural context, key file
|
|
5
|
-
> common patterns, and debugging guidance.
|
|
4
|
+
> feature gates in the Synced Blocks codebase. It provides architectural context, key file
|
|
5
|
+
> locations, common patterns, and debugging guidance.
|
|
6
6
|
>
|
|
7
|
-
> **Full Knowledge Base**:
|
|
7
|
+
> **Full Knowledge Base**:
|
|
8
|
+
> [Synced Blocks — Comprehensive Knowledge Base](https://hello.atlassian.net/wiki/spaces/egcuc/pages/6679548384)
|
|
9
|
+
> (Confluence)
|
|
8
10
|
|
|
9
11
|
---
|
|
10
12
|
|
|
@@ -15,6 +17,7 @@ Confluence pages and Jira issue descriptions. Edits to the source propagate to a
|
|
|
15
17
|
near real-time via the Block Service backend and AGG GraphQL WebSocket subscriptions.
|
|
16
18
|
|
|
17
19
|
**Two ADF node types:**
|
|
20
|
+
|
|
18
21
|
- `bodiedSyncBlock` — **Source** sync block (contains the editable content)
|
|
19
22
|
- `syncBlock` — **Reference** sync block (renders content fetched from block service)
|
|
20
23
|
|
|
@@ -24,63 +27,70 @@ near real-time via the Block Service backend and AGG GraphQL WebSocket subscript
|
|
|
24
27
|
|
|
25
28
|
### Platform (shared across products)
|
|
26
29
|
|
|
27
|
-
| Package
|
|
28
|
-
|
|
29
|
-
| **Plugin**
|
|
30
|
-
| **Provider**
|
|
31
|
-
| **Renderer**
|
|
32
|
-
| **Plugin Tests**
|
|
33
|
-
| **Provider Tests** | `platform/packages/editor/editor-synced-block-provider-tests/` | Tests for store managers and provider hooks
|
|
34
|
-
| **Renderer Tests** | `platform/packages/editor/editor-synced-block-renderer-tests/` | Tests for renderer components
|
|
30
|
+
| Package | Path | Purpose |
|
|
31
|
+
| ------------------ | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
32
|
+
| **Plugin** | `platform/packages/editor/editor-plugin-synced-block/` | Core editor plugin — registers nodes, toolbar, commands, block menu integration |
|
|
33
|
+
| **Provider** | `platform/packages/editor/editor-synced-block-provider/` | Data layer — store managers, block service API client, ARI generation, permissions, media tokens |
|
|
34
|
+
| **Renderer** | `platform/packages/editor/editor-synced-block-renderer/` | View-mode rendering of reference sync blocks using nested renderer |
|
|
35
|
+
| **Plugin Tests** | `platform/packages/editor/editor-plugin-synced-block-tests/` | Integration tests for the plugin |
|
|
36
|
+
| **Provider Tests** | `platform/packages/editor/editor-synced-block-provider-tests/` | Tests for store managers and provider hooks |
|
|
37
|
+
| **Renderer Tests** | `platform/packages/editor/editor-synced-block-renderer-tests/` | Tests for renderer components |
|
|
35
38
|
|
|
36
39
|
Also touches:
|
|
40
|
+
|
|
37
41
|
- `platform/packages/editor/editor-common` — shared types
|
|
38
42
|
- `platform/packages/editor/editor-core` — plugin registration
|
|
39
43
|
- `platform/packages/renderer` — reference rendering in view mode
|
|
40
44
|
|
|
41
45
|
### Confluence
|
|
42
46
|
|
|
43
|
-
| File/Package
|
|
44
|
-
|
|
45
|
-
| SyncedBlockProvider | `confluence/next/packages/fabric-providers/src/SyncedBlockProvider.ts`
|
|
46
|
-
| SyncedBlockPreload
|
|
47
|
-
| SSR Data Loading
|
|
48
|
-
| Edit Page Preload
|
|
49
|
-
| Editor Preload
|
|
50
|
-
| Full Page Editor
|
|
47
|
+
| File/Package | Path | Purpose |
|
|
48
|
+
| ------------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
49
|
+
| SyncedBlockProvider | `confluence/next/packages/fabric-providers/src/SyncedBlockProvider.ts` | Wraps platform provider with Confluence config (AGG endpoint, media tokens, permissions) |
|
|
50
|
+
| SyncedBlockPreload | `confluence/next/packages/fabric-providers/src/SyncedBlockPreload.ts` | Preloads sync block data for SSR |
|
|
51
|
+
| SSR Data Loading | `confluence/next/packages/fabric-providers/src/SyncedBlockLoadSSRData.ts` | Loads SSR data |
|
|
52
|
+
| Edit Page Preload | `confluence/next/packages/load-edit-page/src/preload/preloadSyncedBlocksData.ts` | Preloads data for edit page |
|
|
53
|
+
| Editor Preload | `confluence/next/packages/load-edit-page/src/preload/preloadEditorSyncedBlocksData.ts` | Editor-specific preloading |
|
|
54
|
+
| Full Page Editor | `confluence/next/packages/full-page-editor/src/FullPageEditorComponent.tsx` | Integrates sync block plugin into editor |
|
|
51
55
|
|
|
52
56
|
### Jira
|
|
53
57
|
|
|
54
|
-
| File/Package
|
|
55
|
-
|
|
56
|
-
| Provider Package
|
|
57
|
-
| Node Component Hook | `src/useSyncedBlockProviderNodeComponent.tsx`
|
|
58
|
-
| Editor HOC
|
|
59
|
-
| Renderer HOC
|
|
60
|
-
| Prefetch
|
|
61
|
-
| Relay Fetch
|
|
58
|
+
| File/Package | Path | Purpose |
|
|
59
|
+
| ------------------- | ----------------------------------------------------------- | --------------------------------------------- |
|
|
60
|
+
| Provider Package | `jira/src/packages/issue/issue-view-synced-block-provider/` | Core Jira integration package |
|
|
61
|
+
| Node Component Hook | `src/useSyncedBlockProviderNodeComponent.tsx` | Creates synced block node components for Jira |
|
|
62
|
+
| Editor HOC | `src/withSyncedBlockProviderEditor.tsx` | Wraps Jira editor with sync block support |
|
|
63
|
+
| Renderer HOC | `src/withSyncedBlockProviderRenderer.tsx` | Wraps Jira renderer with sync block support |
|
|
64
|
+
| Prefetch | `src/prefetchSyncedBlocks.ts` | Prefetches sync block data in issue view |
|
|
65
|
+
| Relay Fetch | `src/useRelaySyncBlockFetchProvider.tsx` | Real-time updates via Relay subscriptions |
|
|
62
66
|
|
|
63
67
|
---
|
|
64
68
|
|
|
65
69
|
## Key Concepts
|
|
66
70
|
|
|
67
71
|
### Source vs Reference
|
|
72
|
+
|
|
68
73
|
- **Source** (`bodiedSyncBlock`): The original content block. Content is stored in the page ADF AND
|
|
69
74
|
in the Block Service. Editable inline.
|
|
70
75
|
- **Reference** (`syncBlock`): A read-only copy that fetches content from Block Service. Rendered
|
|
71
76
|
via nested renderer. Shows "Synced from [page]" label.
|
|
72
77
|
|
|
73
78
|
### Data Flow
|
|
74
|
-
|
|
79
|
+
|
|
80
|
+
1. **Create source** → Content saved to Block Service via API → ARI generated from page ID + local
|
|
81
|
+
ID
|
|
75
82
|
2. **Create reference** → Copy source link → Paste → `syncBlock` node inserted with `resourceId`
|
|
76
|
-
3. **Edit source** → Content pushed to Block Service → AGG subscription notifies references →
|
|
83
|
+
3. **Edit source** → Content pushed to Block Service → AGG subscription notifies references →
|
|
84
|
+
References re-fetch and re-render
|
|
77
85
|
4. **SSR** → On page load, Confluence/Jira preloads sync block data from Block Service in bulk
|
|
78
86
|
|
|
79
87
|
### ARI Format
|
|
88
|
+
|
|
80
89
|
- Confluence: `ari:cloud:block::{cloudId}/confluence-page:{pageId}/{localId}`
|
|
81
90
|
- Jira: `ari:cloud:block::{cloudId}/jira-work-item:{issueId}/{localId}`
|
|
82
91
|
|
|
83
92
|
### Store Managers
|
|
93
|
+
|
|
84
94
|
- `SyncBlockStoreManager` — Manages source sync block state (create, update, delete, flush)
|
|
85
95
|
- `ReferenceSyncBlockStoreManager` — Manages reference sync block state (fetch, subscribe, cache)
|
|
86
96
|
- `SyncBlockInMemorySessionCache` — Caches data for view→edit transitions
|
|
@@ -123,12 +133,16 @@ syncedBlockPlugin.tsx ← Top-level: registers nodes, commands, UI, pm-
|
|
|
123
133
|
### Key Code Patterns
|
|
124
134
|
|
|
125
135
|
**Creating a sync block** (flow through the code):
|
|
126
|
-
|
|
136
|
+
|
|
137
|
+
1. User triggers via toolbar/block menu/slash command → `ui/toolbar-components.tsx` or
|
|
138
|
+
`ui/block-menu-components.tsx`
|
|
127
139
|
2. Calls `editor-commands/createSyncedBlock` → inserts `bodiedSyncBlock` node into document
|
|
128
|
-
3. `pm-plugins/main.ts` detects new node → `handle-bodied-sync-block-creation.ts` → calls
|
|
140
|
+
3. `pm-plugins/main.ts` detects new node → `handle-bodied-sync-block-creation.ts` → calls
|
|
141
|
+
`SyncBlockStoreManager.create()` → Block Service API
|
|
129
142
|
4. `menu-and-toolbar-experiences.ts` fires experience event
|
|
130
143
|
|
|
131
144
|
**Reference rendering** (flow through the code):
|
|
145
|
+
|
|
132
146
|
1. `nodeviews/syncedBlock.tsx` mounts for each `syncBlock` node
|
|
133
147
|
2. Calls `ReferenceSyncBlockStoreManager.fetch(resourceId)` → Block Service API
|
|
134
148
|
3. Renders content via nested renderer from `editor-synced-block-renderer`
|
|
@@ -141,23 +155,31 @@ syncedBlockPlugin.tsx ← Top-level: registers nodes, commands, UI, pm-
|
|
|
141
155
|
### Implementing a new feature in sync blocks
|
|
142
156
|
|
|
143
157
|
1. **Identify scope**: Does it affect source, reference, or both? Editor, renderer, or both?
|
|
144
|
-
2. **Platform first**: Make changes in `editor-plugin-synced-block` or
|
|
145
|
-
|
|
146
|
-
|
|
158
|
+
2. **Platform first**: Make changes in `editor-plugin-synced-block` or
|
|
159
|
+
`editor-synced-block-provider`
|
|
160
|
+
3. **Product integration**: Update Confluence (`fabric-providers`) and/or Jira
|
|
161
|
+
(`issue-view-synced-block-provider`)
|
|
162
|
+
4. **Feature gate**: Use a DnH **Experiment** (not a feature gate) for production changes. See
|
|
163
|
+
[Experiment and gates page](https://hello.atlassian.net/wiki/spaces/egcuc/pages/6390978659)
|
|
147
164
|
5. **Analytics**: Add experience tracking events (see `EDITOR-1665` pattern)
|
|
148
165
|
6. **Test**: Add tests in the corresponding test package
|
|
149
166
|
|
|
150
167
|
### Fixing a bug
|
|
151
168
|
|
|
152
|
-
1. **Check supported node types**:
|
|
153
|
-
|
|
154
|
-
|
|
169
|
+
1. **Check supported node types**:
|
|
170
|
+
[Edit at source](https://hello.atlassian.net/wiki/spaces/egcuc/pages/5926568979) |
|
|
171
|
+
[Edit anywhere](https://hello.atlassian.net/wiki/spaces/egcuc/pages/5864526866)
|
|
172
|
+
2. **Check unsupported content handling**:
|
|
173
|
+
[Unsupported content](https://hello.atlassian.net/wiki/spaces/egcuc/pages/5687277297)
|
|
174
|
+
3. **Debug with analytics**:
|
|
175
|
+
[HOW-TO: Use analytics to debug errors](https://hello.atlassian.net/wiki/spaces/egcuc/pages/6342760320)
|
|
155
176
|
4. **Gate the fix**: Use DnH Experiment, not a feature gate
|
|
156
177
|
5. **Test on staging**: Verify on Hello (hello.atlassian.net) with experiment enabled
|
|
157
178
|
|
|
158
179
|
### Cleaning up a feature gate
|
|
159
180
|
|
|
160
|
-
1. Find the gate key in
|
|
181
|
+
1. Find the gate key in
|
|
182
|
+
[Experiment and gates](https://hello.atlassian.net/wiki/spaces/egcuc/pages/6390978659)
|
|
161
183
|
2. Search codebase: `grep -r "gate_key_name" platform/ confluence/ jira/`
|
|
162
184
|
3. Remove conditional logic, keep the "enabled" code path
|
|
163
185
|
4. Remove the Switcheroo/Statsig configuration
|
|
@@ -165,7 +187,8 @@ syncedBlockPlugin.tsx ← Top-level: registers nodes, commands, UI, pm-
|
|
|
165
187
|
|
|
166
188
|
### Adding support for a new node type in sync blocks
|
|
167
189
|
|
|
168
|
-
1. Check if node is in the supported list:
|
|
190
|
+
1. Check if node is in the supported list:
|
|
191
|
+
[Supported node types](https://hello.atlassian.net/wiki/spaces/egcuc/pages/5926568979)
|
|
169
192
|
2. For **source**: Update the allowed node schema in `editor-plugin-synced-block`
|
|
170
193
|
3. For **reference**: Ensure nested renderer in `editor-synced-block-renderer` can render the node
|
|
171
194
|
4. Test in both classic pages and live pages
|
|
@@ -177,31 +200,40 @@ syncedBlockPlugin.tsx ← Top-level: registers nodes, commands, UI, pm-
|
|
|
177
200
|
|
|
178
201
|
- **VC90**: Sync blocks can regress VC90 due to content shift (CLS). Reference blocks fetch content
|
|
179
202
|
async and shift the page. Use SSR preloading to mitigate.
|
|
180
|
-
- **SSR**: Bulk fetch endpoint reduces waterfall. Configurable via
|
|
181
|
-
|
|
182
|
-
- **
|
|
203
|
+
- **SSR**: Bulk fetch endpoint reduces waterfall. Configurable via
|
|
204
|
+
`platform_editor_sync_block_ssr_config`.
|
|
205
|
+
- **View→Edit transition**: Cache sync block data in session storage (see
|
|
206
|
+
`SyncBlockInMemorySessionCache`)
|
|
207
|
+
- **Criterion tests**:
|
|
208
|
+
[Perf test page](https://hello.atlassian.net/wiki/spaces/egcuc/pages/6498888237)
|
|
183
209
|
|
|
184
210
|
---
|
|
185
211
|
|
|
186
212
|
## Analytics Events Quick Reference
|
|
187
213
|
|
|
188
214
|
**Experience events** (SLO-driving): `asyncOperation` type
|
|
215
|
+
|
|
189
216
|
- `fetchSyncedBlock`, `fetchSyncedBlockSourceInfo`, `fetchSyncedBlockReferencesInfo`
|
|
190
217
|
- `syncedBlockCreate`, `syncedBlockUpdate`, `syncedBlockDelete`
|
|
191
218
|
- `referenceSyncedBlockUpdate`
|
|
192
219
|
|
|
193
220
|
**Menu/toolbar events**: `menuAction` and `toolbarAction` types
|
|
221
|
+
|
|
194
222
|
- `syncedBlockCreate` (quickInsertMenu, blockMenu, primaryToolbar)
|
|
195
223
|
- `syncedBlockDelete`, `referenceSyncedBlockDelete` (syncedBlockToolbar)
|
|
196
224
|
- `syncedBlockUnsync`, `referenceSyncedBlockUnsync` (syncedBlockToolbar)
|
|
197
225
|
- `syncedBlockViewLocations`, `syncedBlockEditSource` (syncedBlockToolbar)
|
|
198
226
|
|
|
199
227
|
**Standard analytics events**: Track individual sync block operations
|
|
228
|
+
|
|
200
229
|
- `fetched/fetchSyncedBlock` — attributes: `resourceId`, `blockInstanceId`, `sourceProduct`
|
|
201
|
-
- `rendered/renderSyncedBlock` — attributes: `resourceId`, `sourceProduct`, state
|
|
202
|
-
|
|
230
|
+
- `rendered/renderSyncedBlock` — attributes: `resourceId`, `sourceProduct`, state
|
|
231
|
+
(`loaded`/`error`/`permissionDenied`/`missingSource`)
|
|
232
|
+
- `inserted/documentInserted` (page save) — attributes: `numberOfSyncedBlocks`,
|
|
233
|
+
`numberOfReferencedSyncedBlocks`
|
|
203
234
|
|
|
204
|
-
Full catalogue:
|
|
235
|
+
Full catalogue:
|
|
236
|
+
[Synced Block Analytics Catalogue](https://hello.atlassian.net/wiki/spaces/egcuc/pages/6332253480)
|
|
205
237
|
|
|
206
238
|
---
|
|
207
239
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-synced-block
|
|
2
2
|
|
|
3
|
+
## 6.0.21
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 6.0.20
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`0f4a08b633f6e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0f4a08b633f6e) -
|
|
14
|
+
Internal changes to remove unnecessary token fallbacks and imports from `@atlaskit/theme`
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
|
|
3
17
|
## 6.0.19
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -85,7 +85,7 @@ var SyncBlock = exports.SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
85
85
|
dispatchAnalyticsEvent: (_this$api2 = this.api) === null || _this$api2 === void 0 || (_this$api2 = _this$api2.analytics) === null || _this$api2 === void 0 ? void 0 : _this$api2.actions.fireAnalyticsEvent,
|
|
86
86
|
fallbackComponent: null
|
|
87
87
|
}, /*#__PURE__*/_react.default.createElement(_syncBlock.SyncBlockActionsProvider
|
|
88
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
88
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
89
89
|
, {
|
|
90
90
|
removeSyncBlock: function removeSyncBlock() {
|
|
91
91
|
var pos = getPos();
|
|
@@ -93,7 +93,7 @@ var SyncBlock = exports.SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
93
93
|
(0, _editorCommands.removeSyncedBlockAtPos)(_this2.api, pos);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
96
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
97
97
|
,
|
|
98
98
|
fetchSyncBlockSourceInfo: function fetchSyncBlockSourceInfo(sourceAri) {
|
|
99
99
|
return syncBlockStore.referenceManager.fetchSyncBlockSourceInfoBySourceAri(sourceAri);
|
|
@@ -101,12 +101,12 @@ var SyncBlock = exports.SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
101
101
|
}, /*#__PURE__*/_react.default.createElement(_SyncBlockRendererWrapper.SyncBlockRendererWrapper, {
|
|
102
102
|
localId: this.node.attrs.localId,
|
|
103
103
|
syncedBlockRenderer: (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.syncedBlockRenderer
|
|
104
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
104
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
105
105
|
,
|
|
106
106
|
useFetchSyncBlockTitle: function useFetchSyncBlockTitle() {
|
|
107
107
|
return (0, _editorSyncedBlockProvider.useFetchSyncBlockTitle)(syncBlockStore, _this2.node);
|
|
108
108
|
}
|
|
109
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
109
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
110
110
|
,
|
|
111
111
|
useFetchSyncBlockData: function useFetchSyncBlockData() {
|
|
112
112
|
var _this2$api;
|
|
@@ -54,7 +54,7 @@ export class SyncBlock extends ReactNodeView {
|
|
|
54
54
|
dispatchAnalyticsEvent: (_this$api2 = this.api) === null || _this$api2 === void 0 ? void 0 : (_this$api2$analytics = _this$api2.analytics) === null || _this$api2$analytics === void 0 ? void 0 : _this$api2$analytics.actions.fireAnalyticsEvent,
|
|
55
55
|
fallbackComponent: null
|
|
56
56
|
}, /*#__PURE__*/React.createElement(SyncBlockActionsProvider
|
|
57
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
57
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
58
58
|
, {
|
|
59
59
|
removeSyncBlock: () => {
|
|
60
60
|
const pos = getPos();
|
|
@@ -62,16 +62,16 @@ export class SyncBlock extends ReactNodeView {
|
|
|
62
62
|
removeSyncedBlockAtPos(this.api, pos);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
65
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
66
66
|
,
|
|
67
67
|
fetchSyncBlockSourceInfo: sourceAri => syncBlockStore.referenceManager.fetchSyncBlockSourceInfoBySourceAri(sourceAri)
|
|
68
68
|
}, /*#__PURE__*/React.createElement(SyncBlockRendererWrapper, {
|
|
69
69
|
localId: this.node.attrs.localId,
|
|
70
70
|
syncedBlockRenderer: (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.syncedBlockRenderer
|
|
71
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
71
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
72
72
|
,
|
|
73
73
|
useFetchSyncBlockTitle: () => useFetchSyncBlockTitle(syncBlockStore, this.node)
|
|
74
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
74
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
75
75
|
,
|
|
76
76
|
useFetchSyncBlockData: () => {
|
|
77
77
|
var _this$api3, _this$api3$analytics, _this$api3$analytics$;
|
|
@@ -78,7 +78,7 @@ export var SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
78
78
|
dispatchAnalyticsEvent: (_this$api2 = this.api) === null || _this$api2 === void 0 || (_this$api2 = _this$api2.analytics) === null || _this$api2 === void 0 ? void 0 : _this$api2.actions.fireAnalyticsEvent,
|
|
79
79
|
fallbackComponent: null
|
|
80
80
|
}, /*#__PURE__*/React.createElement(SyncBlockActionsProvider
|
|
81
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
81
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
82
82
|
, {
|
|
83
83
|
removeSyncBlock: function removeSyncBlock() {
|
|
84
84
|
var pos = getPos();
|
|
@@ -86,7 +86,7 @@ export var SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
86
86
|
removeSyncedBlockAtPos(_this2.api, pos);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
89
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
90
90
|
,
|
|
91
91
|
fetchSyncBlockSourceInfo: function fetchSyncBlockSourceInfo(sourceAri) {
|
|
92
92
|
return syncBlockStore.referenceManager.fetchSyncBlockSourceInfoBySourceAri(sourceAri);
|
|
@@ -94,12 +94,12 @@ export var SyncBlock = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
94
94
|
}, /*#__PURE__*/React.createElement(SyncBlockRendererWrapper, {
|
|
95
95
|
localId: this.node.attrs.localId,
|
|
96
96
|
syncedBlockRenderer: (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.syncedBlockRenderer
|
|
97
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
97
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
98
98
|
,
|
|
99
99
|
useFetchSyncBlockTitle: function useFetchSyncBlockTitle() {
|
|
100
100
|
return _useFetchSyncBlockTitle(syncBlockStore, _this2.node);
|
|
101
101
|
}
|
|
102
|
-
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
102
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
|
|
103
103
|
,
|
|
104
104
|
useFetchSyncBlockData: function useFetchSyncBlockData() {
|
|
105
105
|
var _this2$api;
|
package/docs/0-intro.tsx
CHANGED
|
@@ -16,7 +16,7 @@ ${createEditorUseOnlyNotice('Editor Plugin Synced Block', [
|
|
|
16
16
|
${
|
|
17
17
|
(
|
|
18
18
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
|
|
19
|
-
<div style={{ marginTop: token('space.100'
|
|
19
|
+
<div style={{ marginTop: token('space.100') }}>
|
|
20
20
|
<AtlassianInternalWarning />
|
|
21
21
|
</div>
|
|
22
22
|
)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-synced-block",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.21",
|
|
4
4
|
"description": "SyncedBlock plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
55
55
|
"@atlaskit/primitives": "^18.0.0",
|
|
56
56
|
"@atlaskit/spinner": "19.0.11",
|
|
57
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
57
|
+
"@atlaskit/tmp-editor-statsig": "^45.0.0",
|
|
58
58
|
"@atlaskit/tokens": "11.1.1",
|
|
59
59
|
"@atlaskit/tooltip": "^21.0.0",
|
|
60
60
|
"@atlaskit/visually-hidden": "^3.0.0",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"@atlaskit/editor-common": "^112.
|
|
68
|
+
"@atlaskit/editor-common": "^112.8.0",
|
|
69
69
|
"react": "^18.2.0"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|