diff --git a/.changeset/honest-suits-approve.md b/.changeset/honest-suits-approve.md new file mode 100644 index 0000000000..59cdb09762 --- /dev/null +++ b/.changeset/honest-suits-approve.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-git-release-manager': patch +--- + +Wrap each feature in custom feature arrays with an element containing a 'key' to avoid missing-key-warnings diff --git a/plugins/git-release-manager/src/features/Features.test.tsx b/plugins/git-release-manager/src/features/Features.test.tsx index cdef4f0d43..28bd9b6310 100644 --- a/plugins/git-release-manager/src/features/Features.test.tsx +++ b/plugins/git-release-manager/src/features/Features.test.tsx @@ -41,6 +41,10 @@ describe('Features', () => { createRc: { omit: true }, promoteRc: { omit: true }, patch: { omit: true }, + custom: { + // shouldn't trigger "missing key" warning in console + factory: () => [
Custom 1
,
Custom 2
], + }, }} />, ); diff --git a/plugins/git-release-manager/src/features/Features.tsx b/plugins/git-release-manager/src/features/Features.tsx index b8386c41cc..69b255c1ee 100644 --- a/plugins/git-release-manager/src/features/Features.tsx +++ b/plugins/git-release-manager/src/features/Features.tsx @@ -89,6 +89,21 @@ export function Features({ ); } + let CustomFeatures = + features?.custom?.factory({ + latestRelease: gitBatchInfo.value.latestRelease, + project, + releaseBranch: gitBatchInfo.value.releaseBranch, + repository: gitBatchInfo.value.repository, + }) ?? null; + if (Array.isArray(CustomFeatures)) { + CustomFeatures = CustomFeatures.map((CustomFeature, index) => ( + + {CustomFeature} + + )); + } + return ( @@ -143,13 +158,7 @@ export function Features({ /> )} - {features?.custom?.factory && - features.custom.factory({ - latestRelease: gitBatchInfo.value.latestRelease, - project, - releaseBranch: gitBatchInfo.value.releaseBranch, - repository: gitBatchInfo.value.repository, - })} + {CustomFeatures} );