From 3f08dcd696d902397e35000e84e65ae5db86332f Mon Sep 17 00:00:00 2001 From: Djamaile Rahamat Date: Sat, 8 Jan 2022 19:47:13 +0100 Subject: [PATCH 1/4] feat: give component EntityMembersListCard a memberType prop Signed-off-by: djamaile --- .changeset/gold-birds-happen.md | 13 +++++++++++++ plugins/org/api-report.md | 6 +++++- .../Group/MembersList/MembersListCard.test.tsx | 15 +++++++++++++++ .../Cards/Group/MembersList/MembersListCard.tsx | 9 +++++++-- 4 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 .changeset/gold-birds-happen.md diff --git a/.changeset/gold-birds-happen.md b/.changeset/gold-birds-happen.md new file mode 100644 index 0000000000..98b6dffe3b --- /dev/null +++ b/.changeset/gold-birds-happen.md @@ -0,0 +1,13 @@ +--- +'@backstage/plugin-org': patch +--- + +For the component `EntityMembersListCard` you can now specify the type of members you have in a group. For example: + +```tsx + + + +``` + +If left empty it will by default use 'Members'. diff --git a/plugins/org/api-report.md b/plugins/org/api-report.md index 60caa45134..23838c7b9e 100644 --- a/plugins/org/api-report.md +++ b/plugins/org/api-report.md @@ -26,6 +26,7 @@ export const EntityGroupProfileCard: ({ // @public (undocumented) export const EntityMembersListCard: (_props: { entity?: GroupEntity | undefined; + memberType?: string | undefined; }) => JSX.Element; // Warning: (ae-missing-release-tag) "EntityOwnershipCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -63,7 +64,10 @@ export const GroupProfileCard: ({ // Warning: (ae-missing-release-tag) "MembersListCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const MembersListCard: (_props: { entity?: GroupEntity }) => JSX.Element; +export const MembersListCard: (_props: { + entity?: GroupEntity; + memberType?: string; +}) => JSX.Element; // Warning: (ae-missing-release-tag) "orgPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx index b0c68d9a83..b4e103c9bd 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx @@ -132,4 +132,19 @@ describe('MemberTab Test', () => { expect(rendered.getByText('Members (1)')).toBeInTheDocument(); }); + + it('Can render different member type', async () => { + const rendered = await renderWithEffects( + wrapInTestApp( + + + + + , + , + ), + ); + + expect(rendered.getByText('Testers (1)')).toBeInTheDocument(); + }); }); diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index f27fd52515..68af803116 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -111,8 +111,10 @@ const MemberComponent = ({ member }: { member: UserEntity }) => { export const MembersListCard = (_props: { /** @deprecated The entity is now grabbed from context instead */ entity?: GroupEntity; + memberType?: string; }) => { const { entity: groupEntity } = useEntity(); + let { memberType } = _props; const { metadata: { name: groupName, namespace: grpNamespace }, spec: { profile }, @@ -128,6 +130,7 @@ export const MembersListCard = (_props: { setPage(pageIndex); }; const pageSize = 50; + memberType = memberType ? memberType : 'Members'; const { loading, @@ -173,7 +176,7 @@ export const MembersListCard = (_props: { return ( @@ -186,7 +189,9 @@ export const MembersListCard = (_props: { )) ) : ( - This group has no members. + + This group has no ${memberType.toLocaleLowerCase()}. + )} From 03016eab49da948ae568a16be811e6b86f53ef4b Mon Sep 17 00:00:00 2001 From: djamaile Date: Tue, 11 Jan 2022 17:25:27 +0100 Subject: [PATCH 2/4] chore: change prop name to memberDisplayTitle Signed-off-by: djamaile --- plugins/org/api-report.md | 4 ++-- .../Cards/Group/MembersList/MembersListCard.test.tsx | 2 +- .../Cards/Group/MembersList/MembersListCard.tsx | 12 +++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/org/api-report.md b/plugins/org/api-report.md index 23838c7b9e..c042ae38af 100644 --- a/plugins/org/api-report.md +++ b/plugins/org/api-report.md @@ -26,7 +26,7 @@ export const EntityGroupProfileCard: ({ // @public (undocumented) export const EntityMembersListCard: (_props: { entity?: GroupEntity | undefined; - memberType?: string | undefined; + memberDisplayTitle?: string | undefined; }) => JSX.Element; // Warning: (ae-missing-release-tag) "EntityOwnershipCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -66,7 +66,7 @@ export const GroupProfileCard: ({ // @public (undocumented) export const MembersListCard: (_props: { entity?: GroupEntity; - memberType?: string; + memberDisplayTitle?: string; }) => JSX.Element; // Warning: (ae-missing-release-tag) "orgPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx index b4e103c9bd..f1d324a9b1 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx @@ -138,7 +138,7 @@ describe('MemberTab Test', () => { wrapInTestApp( - + , , diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index 68af803116..ac2e1e0e8f 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -111,10 +111,10 @@ const MemberComponent = ({ member }: { member: UserEntity }) => { export const MembersListCard = (_props: { /** @deprecated The entity is now grabbed from context instead */ entity?: GroupEntity; - memberType?: string; + memberDisplayTitle?: string; }) => { const { entity: groupEntity } = useEntity(); - let { memberType } = _props; + let { memberDisplayTitle } = _props; const { metadata: { name: groupName, namespace: grpNamespace }, spec: { profile }, @@ -130,7 +130,7 @@ export const MembersListCard = (_props: { setPage(pageIndex); }; const pageSize = 50; - memberType = memberType ? memberType : 'Members'; + memberDisplayTitle = memberDisplayTitle ? memberDisplayTitle : 'Members'; const { loading, @@ -176,7 +176,9 @@ export const MembersListCard = (_props: { return ( @@ -190,7 +192,7 @@ export const MembersListCard = (_props: { ) : ( - This group has no ${memberType.toLocaleLowerCase()}. + This group has no ${memberDisplayTitle.toLocaleLowerCase()}. )} From 68651069b6f411e080381d13dca01850fd180aa6 Mon Sep 17 00:00:00 2001 From: djamaile Date: Tue, 11 Jan 2022 19:14:44 +0100 Subject: [PATCH 3/4] fix: use right prop name Signed-off-by: djamaile --- .changeset/gold-birds-happen.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/gold-birds-happen.md b/.changeset/gold-birds-happen.md index 98b6dffe3b..7a47a45fab 100644 --- a/.changeset/gold-birds-happen.md +++ b/.changeset/gold-birds-happen.md @@ -6,7 +6,7 @@ For the component `EntityMembersListCard` you can now specify the type of member ```tsx - + ``` From 0a51b21328b755db3a1c12d491cf42f09f5de69a Mon Sep 17 00:00:00 2001 From: djamaile Date: Tue, 11 Jan 2022 19:21:45 +0100 Subject: [PATCH 4/4] test: update test description Signed-off-by: djamaile --- .../Cards/Group/MembersList/MembersListCard.test.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx index f1d324a9b1..5ef4079bf4 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx @@ -133,14 +133,13 @@ describe('MemberTab Test', () => { expect(rendered.getByText('Members (1)')).toBeInTheDocument(); }); - it('Can render different member type', async () => { + it('Can render different member display title', async () => { const rendered = await renderWithEffects( wrapInTestApp( - , , ), );