@contentful/field-editor-reference 6.7.2 → 6.8.0

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.
@@ -18,12 +18,24 @@ function _interop_require_default(obj) {
18
18
  default: obj
19
19
  };
20
20
  }
21
- function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity, ...props }) {
21
+ function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity, releaseLocalesStatusMap, isReleasesLoading, releaseAction, activeRelease, ...props }) {
22
22
  const { isError, isLoading, jobs } = (0, _ScheduledIconWithTooltip.useScheduledActions)({
23
23
  entityId: entity.sys.id,
24
24
  entityType,
25
25
  getEntityScheduledActions
26
26
  });
27
+ if (activeRelease && releaseLocalesStatusMap && useLocalizedEntityStatus && activeLocales) {
28
+ return _react.default.createElement(_fieldeditorshared.ReleaseEntityStatusPopover, {
29
+ releaseLocalesStatusMap: releaseLocalesStatusMap,
30
+ activeLocales: activeLocales,
31
+ isLoading: isReleasesLoading
32
+ });
33
+ }
34
+ if (activeRelease && releaseAction) {
35
+ return _react.default.createElement(_fieldeditorshared.ReleaseEntityStatusBadge, {
36
+ action: releaseAction
37
+ });
38
+ }
27
39
  if (useLocalizedEntityStatus && activeLocales && localesStatusMap) {
28
40
  return _react.default.createElement(_fieldeditorshared.LocalePublishingPopover, {
29
41
  entity: entity,
@@ -81,6 +81,7 @@ async function openEntry(sdk, entryId, options) {
81
81
  return slide;
82
82
  }
83
83
  function FetchingWrappedEntryCard(props) {
84
+ const { releaseVersionMap, locales, activeRelease, releases, isActiveReleaseLoading } = (0, _fieldeditorshared.parseReleaseParams)(props.sdk.parameters.instance.release);
84
85
  const { data: entry, status } = (0, _EntityStore.useEntity)('Entry', props.entryId);
85
86
  const { getEntityScheduledActions } = (0, _EntityStore.useEntityLoader)();
86
87
  const loadEntityScheduledActions = _react.useCallback(()=>getEntityScheduledActions('Entry', props.entryId), [
@@ -88,6 +89,14 @@ function FetchingWrappedEntryCard(props) {
88
89
  props.entryId
89
90
  ]);
90
91
  const localesStatusMap = (0, _fieldeditorshared.useLocalePublishStatus)(entry, props.sdk.locales);
92
+ const { releaseLocalesStatusMap } = (0, _fieldeditorshared.useActiveReleaseLocalesStatuses)({
93
+ currentEntryDraft: entry,
94
+ entryId: props.entryId,
95
+ releaseVersionMap,
96
+ locales,
97
+ activeRelease,
98
+ releases
99
+ });
91
100
  const size = props.viewType === 'link' ? 'small' : 'default';
92
101
  const { getEntity } = (0, _EntityStore.useEntityLoader)();
93
102
  const getAsset = (assetId)=>getEntity('Asset', assetId);
@@ -164,7 +173,10 @@ function FetchingWrappedEntryCard(props) {
164
173
  isBeingDragged: props.isBeingDragged,
165
174
  useLocalizedEntityStatus: props.sdk.parameters.instance.useLocalizedEntityStatus,
166
175
  localesStatusMap,
167
- activeLocales: props.activeLocales
176
+ activeLocales: props.activeLocales,
177
+ releaseLocalesStatusMap,
178
+ isReleasesLoading: isActiveReleaseLoading,
179
+ activeRelease
168
180
  };
169
181
  const { hasCardEditActions, hasCardMoveActions, hasCardRemoveActions } = props;
170
182
  function renderDefaultCard(props) {
@@ -61,7 +61,7 @@ const defaultProps = {
61
61
  hasCardMoveActions: true,
62
62
  hasCardRemoveActions: true
63
63
  };
64
- function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom }) {
64
+ function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseAction, releaseLocalesStatusMap, isReleasesLoading, activeRelease }) {
65
65
  const [file, setFile] = _react.useState(null);
66
66
  _react.useEffect(()=>{
67
67
  let mounted = true;
@@ -127,7 +127,11 @@ function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeC
127
127
  useLocalizedEntityStatus: useLocalizedEntityStatus,
128
128
  entity: entry,
129
129
  localesStatusMap: localesStatusMap,
130
- activeLocales: activeLocales
130
+ activeLocales: activeLocales,
131
+ releaseAction: releaseAction,
132
+ releaseLocalesStatusMap: releaseLocalesStatusMap,
133
+ isReleasesLoading: isReleasesLoading,
134
+ activeRelease: activeRelease
131
135
  }),
132
136
  icon: spaceName ? _react.createElement(_SpaceName.SpaceName, {
133
137
  spaceName: spaceName,
@@ -1,14 +1,26 @@
1
1
  import React from 'react';
2
2
  import { EntityStatusBadge as StatusBadge } from '@contentful/f36-components';
3
- import { LocalePublishingPopover } from '@contentful/field-editor-shared';
3
+ import { LocalePublishingPopover, ReleaseEntityStatusPopover, ReleaseEntityStatusBadge } from '@contentful/field-editor-shared';
4
4
  import { useScheduledActions } from '../ScheduledIconWithTooltip/ScheduledIconWithTooltip';
5
5
  import { ScheduleTooltip } from '../ScheduledIconWithTooltip/ScheduleTooltip';
6
- export function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity, ...props }) {
6
+ export function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity, releaseLocalesStatusMap, isReleasesLoading, releaseAction, activeRelease, ...props }) {
7
7
  const { isError, isLoading, jobs } = useScheduledActions({
8
8
  entityId: entity.sys.id,
9
9
  entityType,
10
10
  getEntityScheduledActions
11
11
  });
12
+ if (activeRelease && releaseLocalesStatusMap && useLocalizedEntityStatus && activeLocales) {
13
+ return React.createElement(ReleaseEntityStatusPopover, {
14
+ releaseLocalesStatusMap: releaseLocalesStatusMap,
15
+ activeLocales: activeLocales,
16
+ isLoading: isReleasesLoading
17
+ });
18
+ }
19
+ if (activeRelease && releaseAction) {
20
+ return React.createElement(ReleaseEntityStatusBadge, {
21
+ action: releaseAction
22
+ });
23
+ }
12
24
  if (useLocalizedEntityStatus && activeLocales && localesStatusMap) {
13
25
  return React.createElement(LocalePublishingPopover, {
14
26
  entity: entity,
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { EntryCard } from '@contentful/f36-components';
3
- import { useLocalePublishStatus } from '@contentful/field-editor-shared';
3
+ import { parseReleaseParams, useLocalePublishStatus, useActiveReleaseLocalesStatuses } from '@contentful/field-editor-shared';
4
4
  import get from 'lodash/get';
5
5
  import { useEntity, useEntityLoader } from '../../common/EntityStore';
6
6
  import { MissingEntityCard } from '../../components';
@@ -25,6 +25,7 @@ async function openEntry(sdk, entryId, options) {
25
25
  return slide;
26
26
  }
27
27
  export function FetchingWrappedEntryCard(props) {
28
+ const { releaseVersionMap, locales, activeRelease, releases, isActiveReleaseLoading } = parseReleaseParams(props.sdk.parameters.instance.release);
28
29
  const { data: entry, status } = useEntity('Entry', props.entryId);
29
30
  const { getEntityScheduledActions } = useEntityLoader();
30
31
  const loadEntityScheduledActions = React.useCallback(()=>getEntityScheduledActions('Entry', props.entryId), [
@@ -32,6 +33,14 @@ export function FetchingWrappedEntryCard(props) {
32
33
  props.entryId
33
34
  ]);
34
35
  const localesStatusMap = useLocalePublishStatus(entry, props.sdk.locales);
36
+ const { releaseLocalesStatusMap } = useActiveReleaseLocalesStatuses({
37
+ currentEntryDraft: entry,
38
+ entryId: props.entryId,
39
+ releaseVersionMap,
40
+ locales,
41
+ activeRelease,
42
+ releases
43
+ });
35
44
  const size = props.viewType === 'link' ? 'small' : 'default';
36
45
  const { getEntity } = useEntityLoader();
37
46
  const getAsset = (assetId)=>getEntity('Asset', assetId);
@@ -108,7 +117,10 @@ export function FetchingWrappedEntryCard(props) {
108
117
  isBeingDragged: props.isBeingDragged,
109
118
  useLocalizedEntityStatus: props.sdk.parameters.instance.useLocalizedEntityStatus,
110
119
  localesStatusMap,
111
- activeLocales: props.activeLocales
120
+ activeLocales: props.activeLocales,
121
+ releaseLocalesStatusMap,
122
+ isReleasesLoading: isActiveReleaseLoading,
123
+ activeRelease
112
124
  };
113
125
  const { hasCardEditActions, hasCardMoveActions, hasCardRemoveActions } = props;
114
126
  function renderDefaultCard(props) {
@@ -10,7 +10,7 @@ const defaultProps = {
10
10
  hasCardMoveActions: true,
11
11
  hasCardRemoveActions: true
12
12
  };
13
- export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom }) {
13
+ export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseAction, releaseLocalesStatusMap, isReleasesLoading, activeRelease }) {
14
14
  const [file, setFile] = React.useState(null);
15
15
  React.useEffect(()=>{
16
16
  let mounted = true;
@@ -76,7 +76,11 @@ export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales,
76
76
  useLocalizedEntityStatus: useLocalizedEntityStatus,
77
77
  entity: entry,
78
78
  localesStatusMap: localesStatusMap,
79
- activeLocales: activeLocales
79
+ activeLocales: activeLocales,
80
+ releaseAction: releaseAction,
81
+ releaseLocalesStatusMap: releaseLocalesStatusMap,
82
+ isReleasesLoading: isReleasesLoading,
83
+ activeRelease: activeRelease
80
84
  }),
81
85
  icon: spaceName ? React.createElement(SpaceName, {
82
86
  spaceName: spaceName,
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { LocalePublishStatusMap } from '@contentful/field-editor-shared';
2
+ import { LocalePublishStatusMap, type ReleaseAction, type ReleaseLocalesStatusMap, type ReleaseV2Props } from '@contentful/field-editor-shared';
3
3
  import { LocaleProps } from 'contentful-management';
4
4
  import { WrappedAssetCardProps } from '../assets/WrappedAssetCard/WrappedAssetCard';
5
5
  import { Asset, ContentType, Entry, RenderDragFn } from '../types';
@@ -32,4 +32,8 @@ export type CustomEntityCardProps = {
32
32
  useLocalizedEntityStatus?: boolean;
33
33
  localesStatusMap?: LocalePublishStatusMap;
34
34
  activeLocales?: Pick<LocaleProps, 'code'>[];
35
+ releaseLocalesStatusMap?: ReleaseLocalesStatusMap;
36
+ isReleasesLoading?: boolean;
37
+ releaseAction?: ReleaseAction;
38
+ activeRelease?: ReleaseV2Props;
35
39
  } & Partial<WrappedAssetCardProps>;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type EntityStatus } from '@contentful/f36-components';
3
- import { LocalePublishStatusMap } from '@contentful/field-editor-shared';
3
+ import { LocalePublishStatusMap, type ReleaseAction, type ReleaseLocalesStatusMap, type ReleaseV2Props } from '@contentful/field-editor-shared';
4
4
  import { EntryProps, LocaleProps, AssetProps } from 'contentful-management';
5
5
  import { type UseScheduledActionsProps } from '../ScheduledIconWithTooltip/ScheduledIconWithTooltip';
6
6
  type EntityStatusBadgeProps = Omit<UseScheduledActionsProps, 'entityId'> & {
@@ -9,6 +9,10 @@ type EntityStatusBadgeProps = Omit<UseScheduledActionsProps, 'entityId'> & {
9
9
  useLocalizedEntityStatus?: boolean;
10
10
  localesStatusMap?: LocalePublishStatusMap;
11
11
  activeLocales?: Pick<LocaleProps, 'code'>[];
12
+ releaseLocalesStatusMap?: ReleaseLocalesStatusMap;
13
+ isReleasesLoading?: boolean;
14
+ releaseAction?: ReleaseAction;
15
+ activeRelease?: ReleaseV2Props;
12
16
  };
13
- export declare function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity, ...props }: EntityStatusBadgeProps): React.JSX.Element;
17
+ export declare function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity, releaseLocalesStatusMap, isReleasesLoading, releaseAction, activeRelease, ...props }: EntityStatusBadgeProps): React.JSX.Element;
14
18
  export {};
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { SpaceAPI } from '@contentful/app-sdk';
3
- import { LocalePublishStatusMap } from '@contentful/field-editor-shared';
3
+ import { LocalePublishStatusMap, type ReleaseAction, type ReleaseLocalesStatusMap, type ReleaseV2Props } from '@contentful/field-editor-shared';
4
4
  import { LocaleProps } from 'contentful-management';
5
5
  import { ContentType, Entry, RenderDragFn } from '../../types';
6
6
  export interface WrappedEntryCardProps {
@@ -28,8 +28,12 @@ export interface WrappedEntryCardProps {
28
28
  useLocalizedEntityStatus?: boolean;
29
29
  localesStatusMap?: LocalePublishStatusMap;
30
30
  activeLocales?: Pick<LocaleProps, 'code'>[];
31
+ releaseAction?: ReleaseAction;
32
+ releaseLocalesStatusMap?: ReleaseLocalesStatusMap;
33
+ isReleasesLoading?: boolean;
34
+ activeRelease?: ReleaseV2Props;
31
35
  }
32
- export declare function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, }: WrappedEntryCardProps): React.JSX.Element;
36
+ export declare function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseAction, releaseLocalesStatusMap, isReleasesLoading, activeRelease, }: WrappedEntryCardProps): React.JSX.Element;
33
37
  export declare namespace WrappedEntryCard {
34
38
  var defaultProps: {
35
39
  isClickable: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/field-editor-reference",
3
- "version": "6.7.2",
3
+ "version": "6.8.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -38,7 +38,7 @@
38
38
  "@contentful/f36-components": "^4.70.0",
39
39
  "@contentful/f36-icons": "^4.29.0",
40
40
  "@contentful/f36-tokens": "^4.0.5",
41
- "@contentful/field-editor-shared": "^2.5.1",
41
+ "@contentful/field-editor-shared": "^2.6.0",
42
42
  "@contentful/mimetype": "^2.2.29",
43
43
  "@dnd-kit/core": "^6.0.8",
44
44
  "@dnd-kit/modifiers": "^7.0.0",
@@ -64,5 +64,5 @@
64
64
  "publishConfig": {
65
65
  "registry": "https://npm.pkg.github.com/"
66
66
  },
67
- "gitHead": "5228c3bb1871807c1832459f03d17477e8beb75b"
67
+ "gitHead": "07bbbf610db4000897fa8e6f38e3ab6ace7e02cf"
68
68
  }