From 614083ef98be7297e3f4cf952e8f4f84acfdca13 Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Mon, 21 Nov 2022 15:45:43 -0500 Subject: [PATCH 1/8] Add default message prop to StarredEntities Signed-off-by: Esther Annorzie --- .../homePageComponents/StarredEntities/Content.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx index 31fa00378e..aa0b6a5b72 100644 --- a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx +++ b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx @@ -41,7 +41,14 @@ import useAsync from 'react-use/lib/useAsync'; * * @public */ -export const Content = () => { + +interface starredEntitiesProp { + defaultMessage?: string; +} + +export const Content = ({ + defaultMessage = 'Click the star beside an entity name to add the entity to this list!', +}: starredEntitiesProp) => { const catalogApi = useApi(catalogApiRef); const catalogEntityRoute = useRouteRef(entityRouteRef); const { starredEntities, toggleStarredEntity } = useStarredEntities(); @@ -76,7 +83,8 @@ export const Content = () => { if (starredEntities.size === 0) return ( - You do not have any starred entities yet! + {/* You do not have any starred entities yet! */} + {defaultMessage} ); From 9239c8acb87d2d95ca63f565208b4b03f07fa7c0 Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Tue, 22 Nov 2022 10:09:55 -0500 Subject: [PATCH 2/8] Rename prop in starredEntitiesProp and remove comment Signed-off-by: Esther Annorzie --- .../src/homePageComponents/StarredEntities/Content.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx index aa0b6a5b72..1f31ac062f 100644 --- a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx +++ b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx @@ -43,12 +43,10 @@ import useAsync from 'react-use/lib/useAsync'; */ interface starredEntitiesProp { - defaultMessage?: string; + noStarredEntitiesMessage?: React.ReactNode; } -export const Content = ({ - defaultMessage = 'Click the star beside an entity name to add the entity to this list!', -}: starredEntitiesProp) => { +export const Content = ({ noStarredEntitiesMessage }: starredEntitiesProp) => { const catalogApi = useApi(catalogApiRef); const catalogEntityRoute = useRouteRef(entityRouteRef); const { starredEntities, toggleStarredEntity } = useStarredEntities(); @@ -83,8 +81,8 @@ export const Content = ({ if (starredEntities.size === 0) return ( - {/* You do not have any starred entities yet! */} - {defaultMessage} + {noStarredEntitiesMessage || + 'Click the star beside an entity name to add it to this list!'} ); From b5e28f94fb8309b162fd50ecece32b937cd73a2b Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Tue, 22 Nov 2022 18:05:10 -0500 Subject: [PATCH 3/8] Test call to action message when no entities are starred Signed-off-by: Esther Annorzie --- .../StarredEntities/Content.test.tsx | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx b/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx index 2b9fae8221..b761e89e6e 100644 --- a/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx +++ b/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx @@ -82,4 +82,34 @@ describe('StarredEntitiesContent', () => { '/catalog/default/component/mock-starred-entity-2', ); }); + + it('should display call to action message if no entities are starred', async () => { + const mockedApi = new MockStarredEntitiesApi(); + + const mockCatalogApi = { + getEntities: jest + .fn() + .mockImplementation(async () => ({ items: entities })), + }; + + const { getByText } = await renderInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ); + + expect( + getByText('Click the star beside an entity name to add it to this list!'), + ).toBeInTheDocument(); + }); }); From bfe38c80ea6202fc6233cbb0ee497762148caff1 Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Tue, 29 Nov 2022 13:11:27 -0500 Subject: [PATCH 4/8] Add changeset Signed-off-by: Esther Annorzie --- .changeset/many-mangos-behave.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/many-mangos-behave.md diff --git a/.changeset/many-mangos-behave.md b/.changeset/many-mangos-behave.md new file mode 100644 index 0000000000..ff777d3839 --- /dev/null +++ b/.changeset/many-mangos-behave.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-home': minor +--- + +'backstage/home': minor + +If no entities are starred, a call to action message displays. From dbd2480a1a7b6d1489e34b3a755ad751cbc84dd1 Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Wed, 30 Nov 2022 12:22:18 -0500 Subject: [PATCH 5/8] Test user provided message if no entities are starred Signed-off-by: Esther Annorzie --- .../StarredEntities/Content.test.tsx | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx b/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx index b761e89e6e..695406aab5 100644 --- a/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx +++ b/plugins/home/src/homePageComponents/StarredEntities/Content.test.tsx @@ -112,4 +112,32 @@ describe('StarredEntitiesContent', () => { getByText('Click the star beside an entity name to add it to this list!'), ).toBeInTheDocument(); }); + + it('should display user provided message if no entities are starred', async () => { + const mockedApi = new MockStarredEntitiesApi(); + + const mockCatalogApi = { + getEntities: jest + .fn() + .mockImplementation(async () => ({ items: entities })), + }; + + const { getByText } = await renderInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ); + + expect(getByText('foo')).toBeInTheDocument(); + }); }); From 9a8325aca640dd42980507b6a56cbdb077ae26e3 Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Mon, 12 Dec 2022 14:11:11 -0500 Subject: [PATCH 6/8] Make noStarredEntitiesMessage a Content prop Signed-off-by: Esther Annorzie --- .../src/homePageComponents/StarredEntities/Content.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx index 1f31ac062f..4654a7f860 100644 --- a/plugins/home/src/homePageComponents/StarredEntities/Content.tsx +++ b/plugins/home/src/homePageComponents/StarredEntities/Content.tsx @@ -42,11 +42,9 @@ import useAsync from 'react-use/lib/useAsync'; * @public */ -interface starredEntitiesProp { - noStarredEntitiesMessage?: React.ReactNode; -} - -export const Content = ({ noStarredEntitiesMessage }: starredEntitiesProp) => { +export const Content = (props: { + noStarredEntitiesMessage?: React.ReactNode | undefined; +}) => { const catalogApi = useApi(catalogApiRef); const catalogEntityRoute = useRouteRef(entityRouteRef); const { starredEntities, toggleStarredEntity } = useStarredEntities(); @@ -81,7 +79,7 @@ export const Content = ({ noStarredEntitiesMessage }: starredEntitiesProp) => { if (starredEntities.size === 0) return ( - {noStarredEntitiesMessage || + {props.noStarredEntitiesMessage || 'Click the star beside an entity name to add it to this list!'} ); From edf2404e9fb3c1a990dc33bf6d4ee86587f0da03 Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Tue, 13 Dec 2022 18:16:08 -0500 Subject: [PATCH 7/8] Add new changeset Signed-off-by: Esther Annorzie --- .changeset/polite-adults-sit.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/polite-adults-sit.md diff --git a/.changeset/polite-adults-sit.md b/.changeset/polite-adults-sit.md new file mode 100644 index 0000000000..3d14a130a5 --- /dev/null +++ b/.changeset/polite-adults-sit.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': patch +--- + +Adjusted the description's empty state on the starred entities table, From 554055fc549c373db1123105b85f6a858a07d3b5 Mon Sep 17 00:00:00 2001 From: Esther Annorzie Date: Tue, 13 Dec 2022 18:16:24 -0500 Subject: [PATCH 8/8] Remove old changeset Signed-off-by: Esther Annorzie --- .changeset/many-mangos-behave.md | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .changeset/many-mangos-behave.md diff --git a/.changeset/many-mangos-behave.md b/.changeset/many-mangos-behave.md deleted file mode 100644 index ff777d3839..0000000000 --- a/.changeset/many-mangos-behave.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-home': minor ---- - -'backstage/home': minor - -If no entities are starred, a call to action message displays.