@atlaskit/editor-synced-block-renderer 5.6.7 → 5.7.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/editor-synced-block-renderer
2
2
 
3
+ ## 5.7.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`764672ccc7992`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/764672ccc7992) -
8
+ EDITOR-4049 Add support for prefetching of synced blocks data to synced block provider.
9
+ - Updated dependencies
10
+
11
+ ## 5.7.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`7daf10b49fce7`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7daf10b49fce7) -
16
+ Pass in event handlers to the sync block options
17
+
3
18
  ## 5.6.7
4
19
 
5
20
  ### Patch Changes
@@ -89,6 +89,7 @@ var AKRendererWrapper = exports.AKRendererWrapper = /*#__PURE__*/(0, _react.memo
89
89
  allowUgcScrubber = _ref4.allowUgcScrubber,
90
90
  allowWrapCodeBlock = _ref4.allowWrapCodeBlock,
91
91
  emojiResourceConfig = _ref4.emojiResourceConfig,
92
+ eventHandlers = _ref4.eventHandlers,
92
93
  media = _ref4.media,
93
94
  smartLinks = _ref4.smartLinks,
94
95
  stickyHeaders = _ref4.stickyHeaders;
@@ -133,6 +134,7 @@ var AKRendererWrapper = exports.AKRendererWrapper = /*#__PURE__*/(0, _react.memo
133
134
  allowUgcScrubber: allowUgcScrubber,
134
135
  allowWrapCodeBlock: allowWrapCodeBlock,
135
136
  emojiResourceConfig: emojiResourceConfig,
137
+ eventHandlers: (0, _platformFeatureFlags.fg)('platform_synced_block_patch_1') ? eventHandlers : undefined,
136
138
  media: media,
137
139
  smartLinks: smartLinks,
138
140
  stickyHeaders: stickyHeaders
@@ -27,7 +27,8 @@ var useMemoizedSyncedBlockNodeComponent = exports.useMemoizedSyncedBlockNodeComp
27
27
  syncBlockProvider = _ref.syncBlockProvider,
28
28
  syncBlockRendererOptions = _ref.syncBlockRendererOptions,
29
29
  fireAnalyticsEvent = _ref.fireAnalyticsEvent,
30
- getSSRData = _ref.getSSRData;
30
+ getSSRData = _ref.getSSRData,
31
+ getPrefetchedData = _ref.getPrefetchedData;
31
32
  var syncBlockStoreManager = (0, _editorSyncedBlockProvider.useMemoizedSyncBlockStoreManager)(syncBlockProvider, fireAnalyticsEvent);
32
33
 
33
34
  // Initialize SSR data if available
@@ -40,7 +41,16 @@ var useMemoizedSyncedBlockNodeComponent = exports.useMemoizedSyncedBlockNodeComp
40
41
  }
41
42
  }, [getSSRData, syncBlockProvider]);
42
43
 
43
- // Initial fetch sync block data (will use SSR data as initial cache if available)
44
+ // Process prefetched data next, if available
45
+ (0, _react.useEffect)(function () {
46
+ var prefetchedData;
47
+ if (getPrefetchedData) {
48
+ prefetchedData = getPrefetchedData();
49
+ syncBlockStoreManager.referenceManager.processPrefetchedData(prefetchedData);
50
+ }
51
+ }, [getPrefetchedData, syncBlockStoreManager.referenceManager]);
52
+
53
+ // Initial fetch sync block data (will use SSR data as initial cache, or the prefetched data if available)
44
54
  (0, _react.useEffect)(function () {
45
55
  syncBlockStoreManager.referenceManager.fetchSyncBlocksData(syncBlockNodes);
46
56
  }, [syncBlockNodes, syncBlockStoreManager.referenceManager]);
@@ -80,6 +80,7 @@ export const AKRendererWrapper = /*#__PURE__*/memo(({
80
80
  allowUgcScrubber,
81
81
  allowWrapCodeBlock,
82
82
  emojiResourceConfig,
83
+ eventHandlers,
83
84
  media,
84
85
  smartLinks,
85
86
  stickyHeaders
@@ -125,6 +126,7 @@ export const AKRendererWrapper = /*#__PURE__*/memo(({
125
126
  allowUgcScrubber: allowUgcScrubber,
126
127
  allowWrapCodeBlock: allowWrapCodeBlock,
127
128
  emojiResourceConfig: emojiResourceConfig,
129
+ eventHandlers: fg('platform_synced_block_patch_1') ? eventHandlers : undefined,
128
130
  media: media,
129
131
  smartLinks: smartLinks,
130
132
  stickyHeaders: stickyHeaders
@@ -17,7 +17,8 @@ export const useMemoizedSyncedBlockNodeComponent = ({
17
17
  syncBlockProvider,
18
18
  syncBlockRendererOptions,
19
19
  fireAnalyticsEvent,
20
- getSSRData
20
+ getSSRData,
21
+ getPrefetchedData
21
22
  }) => {
22
23
  const syncBlockStoreManager = useMemoizedSyncBlockStoreManager(syncBlockProvider, fireAnalyticsEvent);
23
24
 
@@ -31,7 +32,16 @@ export const useMemoizedSyncedBlockNodeComponent = ({
31
32
  }
32
33
  }, [getSSRData, syncBlockProvider]);
33
34
 
34
- // Initial fetch sync block data (will use SSR data as initial cache if available)
35
+ // Process prefetched data next, if available
36
+ useEffect(() => {
37
+ let prefetchedData;
38
+ if (getPrefetchedData) {
39
+ prefetchedData = getPrefetchedData();
40
+ syncBlockStoreManager.referenceManager.processPrefetchedData(prefetchedData);
41
+ }
42
+ }, [getPrefetchedData, syncBlockStoreManager.referenceManager]);
43
+
44
+ // Initial fetch sync block data (will use SSR data as initial cache, or the prefetched data if available)
35
45
  useEffect(() => {
36
46
  syncBlockStoreManager.referenceManager.fetchSyncBlocksData(syncBlockNodes);
37
47
  }, [syncBlockNodes, syncBlockStoreManager.referenceManager]);
@@ -80,6 +80,7 @@ export var AKRendererWrapper = /*#__PURE__*/memo(function (_ref3) {
80
80
  allowUgcScrubber = _ref4.allowUgcScrubber,
81
81
  allowWrapCodeBlock = _ref4.allowWrapCodeBlock,
82
82
  emojiResourceConfig = _ref4.emojiResourceConfig,
83
+ eventHandlers = _ref4.eventHandlers,
83
84
  media = _ref4.media,
84
85
  smartLinks = _ref4.smartLinks,
85
86
  stickyHeaders = _ref4.stickyHeaders;
@@ -124,6 +125,7 @@ export var AKRendererWrapper = /*#__PURE__*/memo(function (_ref3) {
124
125
  allowUgcScrubber: allowUgcScrubber,
125
126
  allowWrapCodeBlock: allowWrapCodeBlock,
126
127
  emojiResourceConfig: emojiResourceConfig,
128
+ eventHandlers: fg('platform_synced_block_patch_1') ? eventHandlers : undefined,
127
129
  media: media,
128
130
  smartLinks: smartLinks,
129
131
  stickyHeaders: stickyHeaders
@@ -19,7 +19,8 @@ export var useMemoizedSyncedBlockNodeComponent = function useMemoizedSyncedBlock
19
19
  syncBlockProvider = _ref.syncBlockProvider,
20
20
  syncBlockRendererOptions = _ref.syncBlockRendererOptions,
21
21
  fireAnalyticsEvent = _ref.fireAnalyticsEvent,
22
- getSSRData = _ref.getSSRData;
22
+ getSSRData = _ref.getSSRData,
23
+ getPrefetchedData = _ref.getPrefetchedData;
23
24
  var syncBlockStoreManager = useMemoizedSyncBlockStoreManager(syncBlockProvider, fireAnalyticsEvent);
24
25
 
25
26
  // Initialize SSR data if available
@@ -32,7 +33,16 @@ export var useMemoizedSyncedBlockNodeComponent = function useMemoizedSyncedBlock
32
33
  }
33
34
  }, [getSSRData, syncBlockProvider]);
34
35
 
35
- // Initial fetch sync block data (will use SSR data as initial cache if available)
36
+ // Process prefetched data next, if available
37
+ useEffect(function () {
38
+ var prefetchedData;
39
+ if (getPrefetchedData) {
40
+ prefetchedData = getPrefetchedData();
41
+ syncBlockStoreManager.referenceManager.processPrefetchedData(prefetchedData);
42
+ }
43
+ }, [getPrefetchedData, syncBlockStoreManager.referenceManager]);
44
+
45
+ // Initial fetch sync block data (will use SSR data as initial cache, or the prefetched data if available)
36
46
  useEffect(function () {
37
47
  syncBlockStoreManager.referenceManager.fetchSyncBlocksData(syncBlockNodes);
38
48
  }, [syncBlockNodes, syncBlockStoreManager.referenceManager]);
@@ -1,2 +1,2 @@
1
1
  import { type RendererProps } from '@atlaskit/renderer';
2
- export type SyncedBlockRendererOptions = Pick<RendererProps, 'appearance' | 'allowAltTextOnImages' | 'allowAnnotations' | 'allowColumnSorting' | 'allowCopyToClipboard' | 'allowCustomPanels' | 'allowHeadingAnchorLinks' | 'allowPlaceholderText' | 'allowRendererContainerStyles' | 'allowSelectAllTrap' | 'allowUgcScrubber' | 'allowWrapCodeBlock' | 'emojiResourceConfig' | 'media' | 'smartLinks' | 'stickyHeaders'>;
2
+ export type SyncedBlockRendererOptions = Pick<RendererProps, 'appearance' | 'allowAltTextOnImages' | 'allowAnnotations' | 'allowColumnSorting' | 'allowCopyToClipboard' | 'allowCustomPanels' | 'allowHeadingAnchorLinks' | 'allowPlaceholderText' | 'allowRendererContainerStyles' | 'allowSelectAllTrap' | 'allowUgcScrubber' | 'allowWrapCodeBlock' | 'emojiResourceConfig' | 'eventHandlers' | 'media' | 'smartLinks' | 'stickyHeaders'>;
@@ -1,16 +1,16 @@
1
1
  import React from 'react';
2
2
  import type { DocNode } from '@atlaskit/adf-schema';
3
3
  import { type AnalyticsEventPayload } from '@atlaskit/editor-common/analytics';
4
- import { type SyncBlockInstance, type SyncBlockNode } from '@atlaskit/editor-synced-block-provider';
5
- import type { SyncedBlockProvider } from '@atlaskit/editor-synced-block-provider';
4
+ import { type SyncBlockInstance, type SyncBlockNode, type SyncedBlockProvider, type SyncBlockPrefetchData } from '@atlaskit/editor-synced-block-provider';
6
5
  import type { SyncedBlockRendererOptions } from './types';
7
6
  import { type SyncedBlockNodeProps } from './ui/SyncedBlockNodeComponentRenderer';
8
7
  export type GetSyncedBlockNodeComponentProps = {
9
8
  fireAnalyticsEvent?: (payload: AnalyticsEventPayload) => void;
9
+ getPrefetchedData?: () => SyncBlockPrefetchData | undefined;
10
10
  getSSRData?: () => Record<string, SyncBlockInstance> | undefined;
11
11
  syncBlockNodes: SyncBlockNode[];
12
12
  syncBlockProvider: SyncedBlockProvider;
13
13
  syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
14
14
  };
15
15
  export declare const getSyncBlockNodesFromDoc: (doc: DocNode) => SyncBlockNode[];
16
- export declare const useMemoizedSyncedBlockNodeComponent: ({ syncBlockNodes, syncBlockProvider, syncBlockRendererOptions, fireAnalyticsEvent, getSSRData, }: GetSyncedBlockNodeComponentProps) => ((props: SyncedBlockNodeProps) => React.JSX.Element);
16
+ export declare const useMemoizedSyncedBlockNodeComponent: ({ syncBlockNodes, syncBlockProvider, syncBlockRendererOptions, fireAnalyticsEvent, getSSRData, getPrefetchedData, }: GetSyncedBlockNodeComponentProps) => ((props: SyncedBlockNodeProps) => React.JSX.Element);
@@ -1,2 +1,2 @@
1
1
  import { type RendererProps } from '@atlaskit/renderer';
2
- export type SyncedBlockRendererOptions = Pick<RendererProps, 'appearance' | 'allowAltTextOnImages' | 'allowAnnotations' | 'allowColumnSorting' | 'allowCopyToClipboard' | 'allowCustomPanels' | 'allowHeadingAnchorLinks' | 'allowPlaceholderText' | 'allowRendererContainerStyles' | 'allowSelectAllTrap' | 'allowUgcScrubber' | 'allowWrapCodeBlock' | 'emojiResourceConfig' | 'media' | 'smartLinks' | 'stickyHeaders'>;
2
+ export type SyncedBlockRendererOptions = Pick<RendererProps, 'appearance' | 'allowAltTextOnImages' | 'allowAnnotations' | 'allowColumnSorting' | 'allowCopyToClipboard' | 'allowCustomPanels' | 'allowHeadingAnchorLinks' | 'allowPlaceholderText' | 'allowRendererContainerStyles' | 'allowSelectAllTrap' | 'allowUgcScrubber' | 'allowWrapCodeBlock' | 'emojiResourceConfig' | 'eventHandlers' | 'media' | 'smartLinks' | 'stickyHeaders'>;
@@ -1,16 +1,16 @@
1
1
  import React from 'react';
2
2
  import type { DocNode } from '@atlaskit/adf-schema';
3
3
  import { type AnalyticsEventPayload } from '@atlaskit/editor-common/analytics';
4
- import { type SyncBlockInstance, type SyncBlockNode } from '@atlaskit/editor-synced-block-provider';
5
- import type { SyncedBlockProvider } from '@atlaskit/editor-synced-block-provider';
4
+ import { type SyncBlockInstance, type SyncBlockNode, type SyncedBlockProvider, type SyncBlockPrefetchData } from '@atlaskit/editor-synced-block-provider';
6
5
  import type { SyncedBlockRendererOptions } from './types';
7
6
  import { type SyncedBlockNodeProps } from './ui/SyncedBlockNodeComponentRenderer';
8
7
  export type GetSyncedBlockNodeComponentProps = {
9
8
  fireAnalyticsEvent?: (payload: AnalyticsEventPayload) => void;
9
+ getPrefetchedData?: () => SyncBlockPrefetchData | undefined;
10
10
  getSSRData?: () => Record<string, SyncBlockInstance> | undefined;
11
11
  syncBlockNodes: SyncBlockNode[];
12
12
  syncBlockProvider: SyncedBlockProvider;
13
13
  syncBlockRendererOptions: SyncedBlockRendererOptions | undefined;
14
14
  };
15
15
  export declare const getSyncBlockNodesFromDoc: (doc: DocNode) => SyncBlockNode[];
16
- export declare const useMemoizedSyncedBlockNodeComponent: ({ syncBlockNodes, syncBlockProvider, syncBlockRendererOptions, fireAnalyticsEvent, getSSRData, }: GetSyncedBlockNodeComponentProps) => ((props: SyncedBlockNodeProps) => React.JSX.Element);
16
+ export declare const useMemoizedSyncedBlockNodeComponent: ({ syncBlockNodes, syncBlockProvider, syncBlockRendererOptions, fireAnalyticsEvent, getSSRData, getPrefetchedData, }: GetSyncedBlockNodeComponentProps) => ((props: SyncedBlockNodeProps) => React.JSX.Element);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-synced-block-renderer",
3
- "version": "5.6.7",
3
+ "version": "5.7.1",
4
4
  "description": "SyncedBlockRenderer for @atlaskit/editor-plugin-synced-block",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -31,7 +31,7 @@
31
31
  "@atlaskit/button": "^23.9.0",
32
32
  "@atlaskit/css": "^0.19.0",
33
33
  "@atlaskit/editor-plugin-synced-block": "^5.3.0",
34
- "@atlaskit/editor-synced-block-provider": "^3.26.0",
34
+ "@atlaskit/editor-synced-block-provider": "^3.27.0",
35
35
  "@atlaskit/heading": "^5.3.0",
36
36
  "@atlaskit/icon": "^30.0.0",
37
37
  "@atlaskit/icon-lab": "^5.15.0",
@@ -48,7 +48,7 @@
48
48
  "relay-runtime": "npm:atl-relay-runtime@0.0.0-main-39e79f66"
49
49
  },
50
50
  "peerDependencies": {
51
- "@atlaskit/editor-common": "^111.11.0",
51
+ "@atlaskit/editor-common": "^111.12.0",
52
52
  "react": "^18.2.0",
53
53
  "react-intl-next": "npm:react-intl@^5.18.1"
54
54
  },