From 5d6e5c55f3f8fa5c845c7d6da312d83028108d11 Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 09:57:06 -0700 Subject: [PATCH 1/8] migrate announcements-react Signed-off-by: Kurt King --- .../plugins/announcements-react/.eslintrc.js | 1 + .../plugins/announcements-react/README.md | 7 + .../plugins/announcements-react/package.json | 59 +++++++ .../src/apis/AnnouncementsApi.ts | 51 ++++++ .../announcements-react/src/apis/index.ts | 17 ++ .../announcements-react/src/apis/types.ts | 27 ++++ .../announcements-react/src/hooks/index.ts | 18 +++ .../src/hooks/useAnnouncements.ts | 54 +++++++ .../src/hooks/useAnnouncementsTranslation.ts | 21 +++ .../src/hooks/useCategories.ts | 44 +++++ .../plugins/announcements-react/src/index.ts | 27 ++++ .../announcements-react/src/setupTests.ts | 16 ++ .../announcements-react/src/translation.ts | 150 ++++++++++++++++++ 13 files changed, 492 insertions(+) create mode 100644 workspaces/announcements/plugins/announcements-react/.eslintrc.js create mode 100644 workspaces/announcements/plugins/announcements-react/README.md create mode 100644 workspaces/announcements/plugins/announcements-react/package.json create mode 100644 workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/apis/index.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/apis/types.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/hooks/index.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/index.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/setupTests.ts create mode 100644 workspaces/announcements/plugins/announcements-react/src/translation.ts diff --git a/workspaces/announcements/plugins/announcements-react/.eslintrc.js b/workspaces/announcements/plugins/announcements-react/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/announcements/plugins/announcements-react/README.md b/workspaces/announcements/plugins/announcements-react/README.md new file mode 100644 index 0000000000..af91ebdabc --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/README.md @@ -0,0 +1,7 @@ +# @backstage-community/plugin-announcements-react + +This library provides reusable components for displaying announcements in a Backstage plugin. + +## Hooks + +There are multiple [hooks](./src/hooks/index.ts) you may use in your Backstage plugin to fetch and use announcements however you see fit. diff --git a/workspaces/announcements/plugins/announcements-react/package.json b/workspaces/announcements/plugins/announcements-react/package.json new file mode 100644 index 0000000000..1e0d7bb18d --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/package.json @@ -0,0 +1,59 @@ +{ + "name": "@backstage-community/plugin-announcements-react", + "description": "Web library for the announcements plugin", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/backstage/community-plugins", + "directory": "workspaces/announcements/plugins/announcements-react" + }, + "backstage": { + "role": "web-library", + "pluginId": "announcements", + "pluginPackages": [ + "@backstage-community/plugin-announcements", + "@backstage-community/plugin-announcements-common", + "@backstage-community/plugin-announcements-node", + "@backstage-community/plugin-announcements-react" + ] + }, + "sideEffects": false, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage-community/plugin-announcements-common": "workspace:^", + "@backstage/core-plugin-api": "^1.10.1", + "@backstage/errors": "^1.2.5", + "@procore-oss/backstage-plugin-announcements-common": "^0.2.9", + "luxon": "^3.4.4", + "react-use": "^17.2.4" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.29.2", + "@testing-library/jest-dom": "^5.10.1", + "@testing-library/react": "^12.1.3", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts b/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts new file mode 100644 index 0000000000..69c9ea427c --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DateTime } from 'luxon'; +import { createApiRef } from '@backstage/core-plugin-api'; +import { CreateAnnouncementRequest, CreateCategoryRequest } from './types'; +import { + Announcement, + AnnouncementsList, + Category, +} from '@procore-oss/backstage-plugin-announcements-common'; + +export const announcementsApiRef = createApiRef({ + id: 'plugin.announcements.service', +}); + +export interface AnnouncementsApi { + announcements(opts: { + max?: number; + page?: number; + category?: string; + active?: boolean; + }): Promise; + announcementByID(id: string): Promise; + + createAnnouncement(request: CreateAnnouncementRequest): Promise; + updateAnnouncement( + id: string, + request: CreateAnnouncementRequest, + ): Promise; + deleteAnnouncementByID(id: string): Promise; + + categories(): Promise; + createCategory(request: CreateCategoryRequest): Promise; + deleteCategory(slug: string): Promise; + + lastSeenDate(): DateTime; + markLastSeenDate(date: DateTime): void; +} diff --git a/workspaces/announcements/plugins/announcements-react/src/apis/index.ts b/workspaces/announcements/plugins/announcements-react/src/apis/index.ts new file mode 100644 index 0000000000..4ad432944e --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/apis/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { announcementsApiRef, type AnnouncementsApi } from './AnnouncementsApi'; +export type { CreateAnnouncementRequest, CreateCategoryRequest } from './types'; diff --git a/workspaces/announcements/plugins/announcements-react/src/apis/types.ts b/workspaces/announcements/plugins/announcements-react/src/apis/types.ts new file mode 100644 index 0000000000..fe85b62b2a --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/apis/types.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Announcement } from '@procore-oss/backstage-plugin-announcements-common'; + +export type CreateAnnouncementRequest = Omit< + Announcement, + 'id' | 'category' | 'created_at' +> & { + category?: string; +}; + +export type CreateCategoryRequest = { + title: string; +}; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/index.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/index.ts new file mode 100644 index 0000000000..b8913f84a8 --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { useAnnouncements } from './useAnnouncements'; +export { useCategories } from './useCategories'; +export { useAnnouncementsTranslation } from './useAnnouncementsTranslation'; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts new file mode 100644 index 0000000000..77c3ddc3c4 --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts @@ -0,0 +1,54 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useApi } from '@backstage/core-plugin-api'; +import { announcementsApiRef } from '../apis'; +import { + AnnouncementsFilters, + AnnouncementsList, +} from '@procore-oss/backstage-plugin-announcements-common'; +import { useAsyncRetry } from 'react-use'; + +type UseAnnouncementsPropOptions = { + dependencies?: any[]; +}; + +export const useAnnouncements = ( + props: AnnouncementsFilters, + options?: UseAnnouncementsPropOptions, +): { + announcements: AnnouncementsList; + loading: boolean; + error: Error | undefined; + retry: () => void; +} => { + const api = useApi(announcementsApiRef); + + const { + value: announcementsList, + loading, + error, + retry, + } = useAsyncRetry(async () => { + return await api.announcements(props); + }, [api, ...(options?.dependencies ?? [])]); + + return { + announcements: announcementsList ?? { count: 0, results: [] }, + loading, + error, + retry, + }; +}; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts new file mode 100644 index 0000000000..ffeb78ae2b --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useTranslationRef } from '@backstage/core-plugin-api/alpha'; +import { translationRef } from '../translation'; + +export const useAnnouncementsTranslation = () => { + return useTranslationRef(translationRef); +}; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts new file mode 100644 index 0000000000..8245c4ab20 --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useApi } from '@backstage/core-plugin-api'; +import { announcementsApiRef } from '../apis'; +import { Category } from '@procore-oss/backstage-plugin-announcements-common'; +import { useAsyncRetry } from 'react-use'; + +export const useCategories = (): { + categories: Category[]; + loading: boolean; + error: Error | undefined; + retry: () => void; +} => { + const api = useApi(announcementsApiRef); + + const { + value: categories, + loading, + error, + retry, + } = useAsyncRetry(async () => { + return await api.categories(); + }); + + return { + categories: categories ?? [], + loading, + error, + retry, + }; +}; diff --git a/workspaces/announcements/plugins/announcements-react/src/index.ts b/workspaces/announcements/plugins/announcements-react/src/index.ts new file mode 100644 index 0000000000..4692ff938c --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Web library for the announcements plugin. + * + * @packageDocumentation + */ + +// In this package you might for example export components or hooks +// that are useful to other plugins or modules. + +export * from './apis'; +export * from './hooks'; diff --git a/workspaces/announcements/plugins/announcements-react/src/setupTests.ts b/workspaces/announcements/plugins/announcements-react/src/setupTests.ts new file mode 100644 index 0000000000..658016ffdd --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@testing-library/jest-dom'; diff --git a/workspaces/announcements/plugins/announcements-react/src/translation.ts b/workspaces/announcements/plugins/announcements-react/src/translation.ts new file mode 100644 index 0000000000..3f47170cfb --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/src/translation.ts @@ -0,0 +1,150 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createTranslationRef } from '@backstage/core-plugin-api/alpha'; + +/** @public */ +export const translationRef = createTranslationRef({ + id: 'announcements', + messages: { + announcementForm: { + title: 'Title', + excerpt: 'Excerpt', + active: 'Active', + submit: 'Submit', + editAnnouncement: 'Edit announcement', + newAnnouncement: 'New announcement', + categoryInput: { + create: 'Create', + label: 'Category', + }, + }, + announcementsPage: { + newAnnouncement: 'New announcement', + genericNew: 'New', + card: { + by: 'By', + in: 'in', + edit: 'EDIT', + delete: 'DELETE', + }, + grid: { + announcementDeleted: 'Announcement deleted.', + }, + contextMenu: { + admin: 'Admin', + categories: 'Categories', + }, + }, + deleteDialog: { + title: 'Are you sure you want to delete this announcement?', + cancel: 'Cancel', + delete: 'Delete', + }, + announcementsCard: { + seeAll: 'See all', + announcements: 'Announcements', + new: 'New', + in: 'in', + noAnnouncements: 'No announcements yet, want to', + addOne: 'add one', + }, + announcementSearchResultListItem: { + published: 'Published', + announcement: 'Announcement', + }, + announcementsTimeline: { + noAnnouncements: 'No announcements', + error: 'Error', + }, + categoriesForm: { + newCategory: 'New category', + editCategory: 'Edit category', + titleLabel: 'Title', + submit: 'Submit', + }, + categoriesTable: { + categoryDeleted: 'Category deleted.', + slug: 'Slug', + title: 'Title', + actions: 'Actions', + addTooltip: 'Add', + noCategoriesFound: 'No categories found.', + }, + categoriesPage: { + title: 'Categories', + subtitle: 'Manage announcement categories', + }, + createAnnouncementPage: { + alertMessage: 'Announcement created.', + alertMessageWithNewCategory: 'with new category', + }, + editAnnouncementPage: { + updatedMessage: 'Announcement updated.', + notFoundMessage: 'Unable to find announcement', + edit: 'Edit', + }, + newAnnouncementBanner: { + markAsSeen: 'Mark as seen', + }, + newCategoryDialog: { + createdMessage: 'Category created.', + newCategory: 'New category', + title: 'Title', + cancelButton: 'Cancel', + createButton: 'Create', + }, + admin: { + adminPortal: { + announcementsLabels: 'Announcements', + categoriesLabel: 'Categories', + title: 'Admin Portal for Announcements', + subtitle: 'Manage announcements and categories', + }, + announecementsContent: { + alertMessage: 'Announcement created.', + alertMessageWithNewCategory: 'with new category', + cancelButton: 'Cancel', + createButton: 'Create Announcement', + announcements: 'Announcements', + noAnnouncementsFound: 'No announcements found', + table: { + title: 'Title', + body: 'Body', + publisher: 'Publisher', + category: 'Category', + status: 'Status', + actions: 'Actions', + active: 'Active', + inactive: 'Inactive', + }, + }, + categoriesContent: { + createdMessage: 'created', + deletedMessage: 'Category deleted.', + cancelButton: 'Cancel', + createButton: 'Create category', + table: { + categoryDeleted: 'Category deleted.', + slug: 'Slug', + title: 'Title', + actions: 'Actions', + addTooltip: 'Add', + noCategoriesFound: 'No categories found.', + }, + }, + }, + }, +}); From d162cdeecf7ee168ea2bc3050803061a90911e50 Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 09:57:25 -0700 Subject: [PATCH 2/8] Update Backstage plugin packages Signed-off-by: Kurt King --- .../plugins/announcements-common/package.json | 3 +- .../plugins/announcements-node/package.json | 3 +- .../plugins/announcements/package.json | 3 +- workspaces/announcements/yarn.lock | 81 ++++++++++++++++++- 4 files changed, 84 insertions(+), 6 deletions(-) diff --git a/workspaces/announcements/plugins/announcements-common/package.json b/workspaces/announcements/plugins/announcements-common/package.json index f2be3598b4..f870b06b0c 100644 --- a/workspaces/announcements/plugins/announcements-common/package.json +++ b/workspaces/announcements/plugins/announcements-common/package.json @@ -23,7 +23,8 @@ "pluginPackages": [ "@backstage-community/plugin-announcements", "@backstage-community/plugin-announcements-common", - "@backstage-community/plugin-announcements-node" + "@backstage-community/plugin-announcements-node", + "@backstage-community/plugin-announcements-react" ] }, "sideEffects": false, diff --git a/workspaces/announcements/plugins/announcements-node/package.json b/workspaces/announcements/plugins/announcements-node/package.json index d0eee32d9d..d8ca7c68a5 100644 --- a/workspaces/announcements/plugins/announcements-node/package.json +++ b/workspaces/announcements/plugins/announcements-node/package.json @@ -22,7 +22,8 @@ "pluginPackages": [ "@backstage-community/plugin-announcements", "@backstage-community/plugin-announcements-common", - "@backstage-community/plugin-announcements-node" + "@backstage-community/plugin-announcements-node", + "@backstage-community/plugin-announcements-react" ] }, "scripts": { diff --git a/workspaces/announcements/plugins/announcements/package.json b/workspaces/announcements/plugins/announcements/package.json index c1508d359f..c67c8c7bff 100644 --- a/workspaces/announcements/plugins/announcements/package.json +++ b/workspaces/announcements/plugins/announcements/package.json @@ -34,7 +34,8 @@ "pluginPackages": [ "@backstage-community/plugin-announcements", "@backstage-community/plugin-announcements-common", - "@backstage-community/plugin-announcements-node" + "@backstage-community/plugin-announcements-node", + "@backstage-community/plugin-announcements-react" ] }, "sideEffects": false, diff --git a/workspaces/announcements/yarn.lock b/workspaces/announcements/yarn.lock index 518cc47806..50616aadde 100644 --- a/workspaces/announcements/yarn.lock +++ b/workspaces/announcements/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 6 cacheKey: 8 -"@adobe/css-tools@npm:^4.4.0": +"@adobe/css-tools@npm:^4.0.1, @adobe/css-tools@npm:^4.4.0": version: 4.4.1 resolution: "@adobe/css-tools@npm:4.4.1" checksum: bbded8a03c314afee0fb0b42922f664f437e0e2f0b86eeeb06dee9d02cd8fc958cf87aa3314952b00074e0b22fc5b8da23f45b61b6f8291c8aaa7cffc56a76e9 @@ -2536,6 +2536,25 @@ __metadata: languageName: unknown linkType: soft +"@backstage-community/plugin-announcements-react@workspace:plugins/announcements-react": + version: 0.0.0-use.local + resolution: "@backstage-community/plugin-announcements-react@workspace:plugins/announcements-react" + dependencies: + "@backstage-community/plugin-announcements-common": "workspace:^" + "@backstage/cli": ^0.29.2 + "@backstage/core-plugin-api": ^1.10.1 + "@backstage/errors": ^1.2.5 + "@procore-oss/backstage-plugin-announcements-common": ^0.2.9 + "@testing-library/jest-dom": ^5.10.1 + "@testing-library/react": ^12.1.3 + luxon: ^3.4.4 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-use: ^17.2.4 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + languageName: unknown + linkType: soft + "@backstage-community/plugin-announcements@workspace:plugins/announcements": version: 0.0.0-use.local resolution: "@backstage-community/plugin-announcements@workspace:plugins/announcements" @@ -8169,6 +8188,22 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:^8.0.0": + version: 8.20.1 + resolution: "@testing-library/dom@npm:8.20.1" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/runtime": ^7.12.5 + "@types/aria-query": ^5.0.1 + aria-query: 5.1.3 + chalk: ^4.1.0 + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: 06fc8dc67849aadb726cbbad0e7546afdf8923bd39acb64c576d706249bd7d0d05f08e08a31913fb621162e3b9c2bd0dce15964437f030f9fa4476326fdd3007 + languageName: node + linkType: hard + "@testing-library/dom@npm:^9.0.0": version: 9.3.4 resolution: "@testing-library/dom@npm:9.3.4" @@ -8185,6 +8220,23 @@ __metadata: languageName: node linkType: hard +"@testing-library/jest-dom@npm:^5.10.1": + version: 5.17.0 + resolution: "@testing-library/jest-dom@npm:5.17.0" + dependencies: + "@adobe/css-tools": ^4.0.1 + "@babel/runtime": ^7.9.2 + "@types/testing-library__jest-dom": ^5.9.1 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.5.6 + lodash: ^4.17.15 + redent: ^3.0.0 + checksum: 9f28dbca8b50d7c306aae40c3aa8e06f0e115f740360004bd87d57f95acf7ab4b4f4122a7399a76dbf2bdaaafb15c99cc137fdcb0ae457a92e2de0f3fbf9b03b + languageName: node + linkType: hard + "@testing-library/jest-dom@npm:^6.3.0": version: 6.6.3 resolution: "@testing-library/jest-dom@npm:6.6.3" @@ -8200,6 +8252,20 @@ __metadata: languageName: node linkType: hard +"@testing-library/react@npm:^12.1.3": + version: 12.1.5 + resolution: "@testing-library/react@npm:12.1.5" + dependencies: + "@babel/runtime": ^7.12.5 + "@testing-library/dom": ^8.0.0 + "@types/react-dom": <18.0.0 + peerDependencies: + react: <18.0.0 + react-dom: <18.0.0 + checksum: 4abd0490405e709a7df584a0db604e508a4612398bb1326e8fa32dd9393b15badc826dcf6d2f7525437886d507871f719f127b9860ed69ddd204d1fa834f576a + languageName: node + linkType: hard + "@testing-library/react@npm:^14.0.0": version: 14.3.1 resolution: "@testing-library/react@npm:14.3.1" @@ -8663,7 +8729,7 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.5.11": +"@types/jest@npm:*, @types/jest@npm:^29.5.11": version: 29.5.14 resolution: "@types/jest@npm:29.5.14" dependencies: @@ -9058,6 +9124,15 @@ __metadata: languageName: node linkType: hard +"@types/testing-library__jest-dom@npm:^5.9.1": + version: 5.14.9 + resolution: "@types/testing-library__jest-dom@npm:5.14.9" + dependencies: + "@types/jest": "*" + checksum: d364494fc2545316292e88861146146af1e3818792ca63b62a63758b2f737669b687f4aaddfcfbcb7d0e1ed7890a9bd05de23ff97f277d5e68de574497a9ee72 + languageName: node + linkType: hard + "@types/tough-cookie@npm:*": version: 4.0.5 resolution: "@types/tough-cookie@npm:4.0.5" @@ -13001,7 +13076,7 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.9": +"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 From 71ce0fc7d3b5d57e90fda27e3af2686eb1b87d7e Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 10:01:41 -0700 Subject: [PATCH 3/8] Use announcements-react from backstage-community Signed-off-by: Kurt King --- .../plugins/announcements/package.json | 2 +- .../plugins/announcements/src/alpha/apis.ts | 2 +- .../src/alpha/entityCards.test.tsx | 2 +- .../plugins/announcements/src/api.ts | 2 +- .../Admin/AdminPortal/AdminPortal.tsx | 2 +- .../AnnouncementsContent.tsx | 2 +- .../CategoriesContent/CategoriesContent.tsx | 2 +- .../AnnouncementForm/AnnouncementForm.tsx | 2 +- .../AnnouncementForm/CategoryInput.test.tsx | 2 +- .../AnnouncementForm/CategoryInput.tsx | 2 +- .../AnnouncementPage/AnnouncementPage.tsx | 2 +- .../AnnouncementSearchResultListItem.tsx | 2 +- .../AnnouncementsCard/AnnouncementsCard.tsx | 2 +- .../AnnouncementsPage.test.tsx | 2 +- .../AnnouncementsPage/AnnouncementsPage.tsx | 2 +- .../AnnouncementsPage/ContextMenu.tsx | 2 +- .../DeleteAnnouncementDialog.tsx | 2 +- .../AnnouncementsTimeline.test.tsx | 2 +- .../AnnouncementsTimeline.tsx | 2 +- .../CategoriesForm/CategoriesForm.tsx | 2 +- .../CategoriesPage/CategoriesPage.tsx | 2 +- .../CreateAnnouncementPage.tsx | 2 +- .../EditAnnouncementPage.tsx | 2 +- .../NewAnnouncementBanner.tsx | 2 +- .../NewCategoryDialog/NewCategoryDialog.tsx | 2 +- .../plugins/announcements/src/index.ts | 2 +- .../plugins/announcements/src/plugin.ts | 2 +- workspaces/announcements/yarn.lock | 19 ++----------------- 28 files changed, 29 insertions(+), 44 deletions(-) diff --git a/workspaces/announcements/plugins/announcements/package.json b/workspaces/announcements/plugins/announcements/package.json index c67c8c7bff..54b8f905af 100644 --- a/workspaces/announcements/plugins/announcements/package.json +++ b/workspaces/announcements/plugins/announcements/package.json @@ -50,6 +50,7 @@ }, "dependencies": { "@backstage-community/plugin-announcements-common": "workspace:^", + "@backstage-community/plugin-announcements-react": "workspace:^", "@backstage/catalog-model": "^1.7.1", "@backstage/core-app-api": "^1.15.2", "@backstage/core-compat-api": "^0.3.3", @@ -67,7 +68,6 @@ "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.57", "@mui/material": "^5.15.6", - "@procore-oss/backstage-plugin-announcements-react": "^0.5.0", "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", "@uiw/react-md-editor": "^4.0.3", "add": "^2.0.6", diff --git a/workspaces/announcements/plugins/announcements/src/alpha/apis.ts b/workspaces/announcements/plugins/announcements/src/alpha/apis.ts index 0433b3676f..8442898537 100644 --- a/workspaces/announcements/plugins/announcements/src/alpha/apis.ts +++ b/workspaces/announcements/plugins/announcements/src/alpha/apis.ts @@ -21,7 +21,7 @@ import { fetchApiRef, identityApiRef, } from '@backstage/frontend-plugin-api'; -import { announcementsApiRef } from '@procore-oss/backstage-plugin-announcements-react'; +import { announcementsApiRef } from '@backstage-community/plugin-announcements-react'; import { AnnouncementsClient } from '../api'; /** diff --git a/workspaces/announcements/plugins/announcements/src/alpha/entityCards.test.tsx b/workspaces/announcements/plugins/announcements/src/alpha/entityCards.test.tsx index 1661a3e9a5..d317d3945e 100644 --- a/workspaces/announcements/plugins/announcements/src/alpha/entityCards.test.tsx +++ b/workspaces/announcements/plugins/announcements/src/alpha/entityCards.test.tsx @@ -23,7 +23,7 @@ import { screen, waitFor } from '@testing-library/react'; import { AnnouncementsApi, announcementsApiRef, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { DateTime } from 'luxon'; import { EntityProvider } from '@backstage/plugin-catalog-react'; import React from 'react'; diff --git a/workspaces/announcements/plugins/announcements/src/api.ts b/workspaces/announcements/plugins/announcements/src/api.ts index 7859508201..ed1106855b 100644 --- a/workspaces/announcements/plugins/announcements/src/api.ts +++ b/workspaces/announcements/plugins/announcements/src/api.ts @@ -26,7 +26,7 @@ import { CreateAnnouncementRequest, CreateCategoryRequest, AnnouncementsApi, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Announcement, AnnouncementsList, diff --git a/workspaces/announcements/plugins/announcements/src/components/Admin/AdminPortal/AdminPortal.tsx b/workspaces/announcements/plugins/announcements/src/components/Admin/AdminPortal/AdminPortal.tsx index 8bfceacff2..88da8b008c 100644 --- a/workspaces/announcements/plugins/announcements/src/components/Admin/AdminPortal/AdminPortal.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/Admin/AdminPortal/AdminPortal.tsx @@ -18,7 +18,7 @@ import { Page, Header, Content } from '@backstage/core-components'; import { AnnouncementsContent } from '../AnnouncementsContent'; import { CategoriesContent } from '../CategoriesContent'; import { RequirePermission } from '@backstage/plugin-permission-react'; -import { useAnnouncementsTranslation } from '@procore-oss/backstage-plugin-announcements-react'; +import { useAnnouncementsTranslation } from '@backstage-community/plugin-announcements-react'; import { makeStyles, Tab } from '@material-ui/core'; import { TabContext, TabList, TabPanel } from '@material-ui/lab'; import { announcementCreatePermission } from '@backstage-community/plugin-announcements-common'; diff --git a/workspaces/announcements/plugins/announcements/src/components/Admin/AnnouncementsContent/AnnouncementsContent.tsx b/workspaces/announcements/plugins/announcements/src/components/Admin/AnnouncementsContent/AnnouncementsContent.tsx index 6071555cd8..6d0bc8ffa1 100644 --- a/workspaces/announcements/plugins/announcements/src/components/Admin/AnnouncementsContent/AnnouncementsContent.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/Admin/AnnouncementsContent/AnnouncementsContent.tsx @@ -26,7 +26,7 @@ import { CreateAnnouncementRequest, useAnnouncementsTranslation, useCategories, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Announcement, announcementCreatePermission, diff --git a/workspaces/announcements/plugins/announcements/src/components/Admin/CategoriesContent/CategoriesContent.tsx b/workspaces/announcements/plugins/announcements/src/components/Admin/CategoriesContent/CategoriesContent.tsx index 53b5c96bfe..082b1237c5 100644 --- a/workspaces/announcements/plugins/announcements/src/components/Admin/CategoriesContent/CategoriesContent.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/Admin/CategoriesContent/CategoriesContent.tsx @@ -25,7 +25,7 @@ import { announcementsApiRef, useAnnouncementsTranslation, useCategories, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { announcementCreatePermission, announcementDeletePermission, diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/AnnouncementForm.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/AnnouncementForm.tsx index c3b70e4abb..9c95e06e05 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/AnnouncementForm.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/AnnouncementForm.tsx @@ -20,7 +20,7 @@ import { identityApiRef, useApi } from '@backstage/core-plugin-api'; import { CreateAnnouncementRequest, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Announcement } from '@backstage-community/plugin-announcements-common'; import CategoryInput from './CategoryInput'; import { diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx index b72b0babad..9841b1d66b 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx @@ -18,7 +18,7 @@ import { screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { TestApiProvider, renderInTestApp } from '@backstage/test-utils'; import CategoryInput from './CategoryInput'; -import { announcementsApiRef } from '@procore-oss/backstage-plugin-announcements-react'; +import { announcementsApiRef } from '@backstage-community/plugin-announcements-react'; const categories = [ { title: 'Hello', slug: 'hello' }, diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.tsx index 4167bbe279..17bc6c1d83 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.tsx @@ -20,7 +20,7 @@ import { Category } from '@backstage-community/plugin-announcements-common'; import { useAnnouncementsTranslation, useCategories, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import CircularProgress from '@mui/material/CircularProgress'; type CategoryInputProps = { diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementPage/AnnouncementPage.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementPage/AnnouncementPage.tsx index 4a3866e0ee..20a11354ad 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementPage/AnnouncementPage.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementPage/AnnouncementPage.tsx @@ -37,7 +37,7 @@ import { entityRouteRef, } from '@backstage/plugin-catalog-react'; import { announcementViewRouteRef, rootRouteRef } from '../../routes'; -import { announcementsApiRef } from '@procore-oss/backstage-plugin-announcements-react'; +import { announcementsApiRef } from '@backstage-community/plugin-announcements-react'; import { Announcement } from '@backstage-community/plugin-announcements-common'; import { Grid } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.tsx index aeb89241af..f8ed86a5a9 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.tsx @@ -21,7 +21,7 @@ import { ResultHighlight, } from '@backstage/plugin-search-common'; import { HighlightedSearchResultText } from '@backstage/plugin-search-react'; -import { useAnnouncementsTranslation } from '@procore-oss/backstage-plugin-announcements-react'; +import { useAnnouncementsTranslation } from '@backstage-community/plugin-announcements-react'; import { makeStyles, ListItem, diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsCard/AnnouncementsCard.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsCard/AnnouncementsCard.tsx index e8453d338a..bc312cc02d 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsCard/AnnouncementsCard.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsCard/AnnouncementsCard.tsx @@ -33,7 +33,7 @@ import { announcementsApiRef, useAnnouncements, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { makeStyles, List, diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.test.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.test.tsx index 9870d28294..6e45b80e8c 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.test.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.test.tsx @@ -24,7 +24,7 @@ import { rootRouteRef } from '../../routes'; import { permissionApiRef } from '@backstage/plugin-permission-react'; import { catalogApiRef, entityRouteRef } from '@backstage/plugin-catalog-react'; import { fireEvent, screen } from '@testing-library/react'; -import { announcementsApiRef } from '@procore-oss/backstage-plugin-announcements-react'; +import { announcementsApiRef } from '@backstage-community/plugin-announcements-react'; const mockAnnouncements = [ { diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx index b763b3d19d..10068e25f4 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx @@ -56,7 +56,7 @@ import { announcementsApiRef, useAnnouncements, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Card, CardContent, diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/ContextMenu.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/ContextMenu.tsx index 5cbbfc25d1..7fd54197cd 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/ContextMenu.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/ContextMenu.tsx @@ -20,7 +20,7 @@ import { announcementAdminRouteRef, categoriesListRouteRef, } from '../../routes'; -import { useAnnouncementsTranslation } from '@procore-oss/backstage-plugin-announcements-react'; +import { useAnnouncementsTranslation } from '@backstage-community/plugin-announcements-react'; import { makeStyles, Box, diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/DeleteAnnouncementDialog.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/DeleteAnnouncementDialog.tsx index cea936405f..dab264aaa0 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/DeleteAnnouncementDialog.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsPage/DeleteAnnouncementDialog.tsx @@ -16,7 +16,7 @@ import { usePermission } from '@backstage/plugin-permission-react'; import { Button, Dialog, DialogActions, DialogTitle } from '@material-ui/core'; import { announcementDeletePermission } from '@backstage-community/plugin-announcements-common'; -import { useAnnouncementsTranslation } from '@procore-oss/backstage-plugin-announcements-react'; +import { useAnnouncementsTranslation } from '@backstage-community/plugin-announcements-react'; import React from 'react'; type DeleteAnnouncementDialogProps = { diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.test.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.test.tsx index d7ba5a2019..d3eca3d51e 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.test.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.test.tsx @@ -25,7 +25,7 @@ import { AnnouncementsList } from '@backstage-community/plugin-announcements-com import { AnnouncementsApi, announcementsApiRef, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; const renderMockTimelineComponent = async ({ announcements, diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.tsx index 4289f18cfc..b24f0c51c6 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementsTimeline/AnnouncementsTimeline.tsx @@ -21,7 +21,7 @@ import { announcementViewRouteRef } from '../../routes'; import { useAnnouncements, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Progress } from '@backstage/core-components'; import { Timeline, diff --git a/workspaces/announcements/plugins/announcements/src/components/CategoriesForm/CategoriesForm.tsx b/workspaces/announcements/plugins/announcements/src/components/CategoriesForm/CategoriesForm.tsx index 30cc60824c..5ebdfcf8be 100644 --- a/workspaces/announcements/plugins/announcements/src/components/CategoriesForm/CategoriesForm.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/CategoriesForm/CategoriesForm.tsx @@ -18,7 +18,7 @@ import { InfoCard } from '@backstage/core-components'; import { CreateCategoryRequest, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { announcementCreatePermission, Category, diff --git a/workspaces/announcements/plugins/announcements/src/components/CategoriesPage/CategoriesPage.tsx b/workspaces/announcements/plugins/announcements/src/components/CategoriesPage/CategoriesPage.tsx index 02ceca6899..b334ebb305 100644 --- a/workspaces/announcements/plugins/announcements/src/components/CategoriesPage/CategoriesPage.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/CategoriesPage/CategoriesPage.tsx @@ -27,7 +27,7 @@ import { useAnnouncementsTranslation, useCategories, announcementsApiRef, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Category } from '@backstage-community/plugin-announcements-common'; import { useDeleteCategoryDialogState } from './useDeleteCategoryDialogState'; import { alertApiRef, useApi } from '@backstage/core-plugin-api'; diff --git a/workspaces/announcements/plugins/announcements/src/components/CreateAnnouncementPage/CreateAnnouncementPage.tsx b/workspaces/announcements/plugins/announcements/src/components/CreateAnnouncementPage/CreateAnnouncementPage.tsx index 1628e8aeb4..c7216d09bd 100644 --- a/workspaces/announcements/plugins/announcements/src/components/CreateAnnouncementPage/CreateAnnouncementPage.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/CreateAnnouncementPage/CreateAnnouncementPage.tsx @@ -25,7 +25,7 @@ import { announcementsApiRef, useAnnouncementsTranslation, useCategories, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Announcement, Category, diff --git a/workspaces/announcements/plugins/announcements/src/components/EditAnnouncementPage/EditAnnouncementPage.tsx b/workspaces/announcements/plugins/announcements/src/components/EditAnnouncementPage/EditAnnouncementPage.tsx index 276ee62924..e8030f5909 100644 --- a/workspaces/announcements/plugins/announcements/src/components/EditAnnouncementPage/EditAnnouncementPage.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/EditAnnouncementPage/EditAnnouncementPage.tsx @@ -27,7 +27,7 @@ import { announcementsApiRef, CreateAnnouncementRequest, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Alert } from '@material-ui/lab'; type EditAnnouncementPageProps = { diff --git a/workspaces/announcements/plugins/announcements/src/components/NewAnnouncementBanner/NewAnnouncementBanner.tsx b/workspaces/announcements/plugins/announcements/src/components/NewAnnouncementBanner/NewAnnouncementBanner.tsx index 1c2d7e8e0e..4e568eefdb 100644 --- a/workspaces/announcements/plugins/announcements/src/components/NewAnnouncementBanner/NewAnnouncementBanner.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/NewAnnouncementBanner/NewAnnouncementBanner.tsx @@ -22,7 +22,7 @@ import { announcementsApiRef, useAnnouncements, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Announcement, AnnouncementSignal, diff --git a/workspaces/announcements/plugins/announcements/src/components/NewCategoryDialog/NewCategoryDialog.tsx b/workspaces/announcements/plugins/announcements/src/components/NewCategoryDialog/NewCategoryDialog.tsx index fd9e22f4c5..91c3729d7d 100644 --- a/workspaces/announcements/plugins/announcements/src/components/NewCategoryDialog/NewCategoryDialog.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/NewCategoryDialog/NewCategoryDialog.tsx @@ -18,7 +18,7 @@ import { alertApiRef, useApi } from '@backstage/core-plugin-api'; import { announcementsApiRef, useAnnouncementsTranslation, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; import { Button, Dialog, diff --git a/workspaces/announcements/plugins/announcements/src/index.ts b/workspaces/announcements/plugins/announcements/src/index.ts index 2de203bb12..94a35f6f21 100644 --- a/workspaces/announcements/plugins/announcements/src/index.ts +++ b/workspaces/announcements/plugins/announcements/src/index.ts @@ -18,7 +18,7 @@ export { announcementsPlugin, AnnouncementsPage } from './plugin'; import { announcementsApiRef as announcementsApiRef_, AnnouncementsApi as AnnouncementsApi_, -} from '@procore-oss/backstage-plugin-announcements-react'; +} from '@backstage-community/plugin-announcements-react'; /** @public diff --git a/workspaces/announcements/plugins/announcements/src/plugin.ts b/workspaces/announcements/plugins/announcements/src/plugin.ts index 05b478012f..944b2ee49e 100644 --- a/workspaces/announcements/plugins/announcements/src/plugin.ts +++ b/workspaces/announcements/plugins/announcements/src/plugin.ts @@ -29,7 +29,7 @@ import { } from '@backstage/plugin-search-react'; import { AnnouncementSearchResultProps } from './components/AnnouncementSearchResultListItem'; import { rootRouteRef } from './routes'; -import { announcementsApiRef } from '@procore-oss/backstage-plugin-announcements-react'; +import { announcementsApiRef } from '@backstage-community/plugin-announcements-react'; import { AnnouncementsClient } from './api'; /** diff --git a/workspaces/announcements/yarn.lock b/workspaces/announcements/yarn.lock index 50616aadde..9a73a74f46 100644 --- a/workspaces/announcements/yarn.lock +++ b/workspaces/announcements/yarn.lock @@ -2536,7 +2536,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage-community/plugin-announcements-react@workspace:plugins/announcements-react": +"@backstage-community/plugin-announcements-react@workspace:^, @backstage-community/plugin-announcements-react@workspace:plugins/announcements-react": version: 0.0.0-use.local resolution: "@backstage-community/plugin-announcements-react@workspace:plugins/announcements-react" dependencies: @@ -2560,6 +2560,7 @@ __metadata: resolution: "@backstage-community/plugin-announcements@workspace:plugins/announcements" dependencies: "@backstage-community/plugin-announcements-common": "workspace:^" + "@backstage-community/plugin-announcements-react": "workspace:^" "@backstage/catalog-model": ^1.7.1 "@backstage/cli": ^0.29.2 "@backstage/core-app-api": ^1.15.2 @@ -2582,7 +2583,6 @@ __metadata: "@material-ui/icons": ^4.11.3 "@material-ui/lab": 4.0.0-alpha.57 "@mui/material": ^5.15.6 - "@procore-oss/backstage-plugin-announcements-react": ^0.5.0 "@testing-library/jest-dom": ^6.3.0 "@testing-library/react": ^14.0.0 "@testing-library/user-event": ^14.5.1 @@ -6513,21 +6513,6 @@ __metadata: languageName: node linkType: hard -"@procore-oss/backstage-plugin-announcements-react@npm:^0.5.0": - version: 0.5.0 - resolution: "@procore-oss/backstage-plugin-announcements-react@npm:0.5.0" - dependencies: - "@backstage/core-plugin-api": ^1.10.1 - "@backstage/errors": ^1.2.5 - "@procore-oss/backstage-plugin-announcements-common": ^0.2.9 - luxon: ^3.4.4 - react-use: ^17.2.4 - peerDependencies: - react: ^17.0.0 || ^18.0.0 - checksum: ade94ab3d8617d0931f61b21c466edad53492f4fc9d101a65efe89a79580ffa731856376904bddc3b36c2515684414172e73dab73926ffda104d689310381a78 - languageName: node - linkType: hard - "@react-hookz/deep-equal@npm:^1.0.4": version: 1.0.4 resolution: "@react-hookz/deep-equal@npm:1.0.4" From 85ffbfb1aad13e893e7fa65fd48e1231a4f9b575 Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 10:18:12 -0700 Subject: [PATCH 4/8] Build api report Signed-off-by: Kurt King --- .../plugins/announcements-react/report.api.md | 172 ++++++++++++++++++ .../src/apis/AnnouncementsApi.ts | 8 + .../announcements-react/src/apis/types.ts | 10 + .../announcements-react/src/hooks/index.ts | 5 +- .../src/hooks/useAnnouncements.ts | 18 +- .../src/hooks/useAnnouncementsTranslation.ts | 11 +- .../src/hooks/useCategories.ts | 9 +- .../announcements-react/src/translation.ts | 2 +- .../plugins/announcements/report.api.md | 2 +- 9 files changed, 228 insertions(+), 9 deletions(-) create mode 100644 workspaces/announcements/plugins/announcements-react/report.api.md diff --git a/workspaces/announcements/plugins/announcements-react/report.api.md b/workspaces/announcements/plugins/announcements-react/report.api.md new file mode 100644 index 0000000000..2a40ab0f03 --- /dev/null +++ b/workspaces/announcements/plugins/announcements-react/report.api.md @@ -0,0 +1,172 @@ +## API Report File for "@backstage-community/plugin-announcements-react" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { Announcement } from '@procore-oss/backstage-plugin-announcements-common'; +import { AnnouncementsFilters } from '@procore-oss/backstage-plugin-announcements-common'; +import { AnnouncementsList } from '@procore-oss/backstage-plugin-announcements-common'; +import { ApiRef } from '@backstage/core-plugin-api'; +import { Category } from '@procore-oss/backstage-plugin-announcements-common'; +import { DateTime } from 'luxon'; +import { TranslationFunction } from '@backstage/core-plugin-api/alpha'; + +// @public +export interface AnnouncementsApi { + // (undocumented) + announcementByID(id: string): Promise; + // (undocumented) + announcements(opts: { + max?: number; + page?: number; + category?: string; + active?: boolean; + }): Promise; + // (undocumented) + categories(): Promise; + // (undocumented) + createAnnouncement(request: CreateAnnouncementRequest): Promise; + // (undocumented) + createCategory(request: CreateCategoryRequest): Promise; + // (undocumented) + deleteAnnouncementByID(id: string): Promise; + // (undocumented) + deleteCategory(slug: string): Promise; + // (undocumented) + lastSeenDate(): DateTime; + // (undocumented) + markLastSeenDate(date: DateTime): void; + // (undocumented) + updateAnnouncement( + id: string, + request: CreateAnnouncementRequest, + ): Promise; +} + +// @public (undocumented) +export const announcementsApiRef: ApiRef; + +// @public +export type AnnouncementsOptions = { + dependencies?: any[]; +}; + +// @public +export type CreateAnnouncementRequest = Omit< + Announcement, + 'id' | 'category' | 'created_at' +> & { + category?: string; +}; + +// @public +export type CreateCategoryRequest = { + title: string; +}; + +// @public +export const useAnnouncements: ( + props: AnnouncementsFilters, + options?: AnnouncementsOptions, +) => { + announcements: AnnouncementsList; + loading: boolean; + error: Error | undefined; + retry: () => void; +}; + +// @public +export const useAnnouncementsTranslation: () => { + t: TranslationFunction<{ + readonly 'announcementForm.active': 'Active'; + readonly 'announcementForm.title': 'Title'; + readonly 'announcementForm.submit': 'Submit'; + readonly 'announcementForm.excerpt': 'Excerpt'; + readonly 'announcementForm.editAnnouncement': 'Edit announcement'; + readonly 'announcementForm.newAnnouncement': 'New announcement'; + readonly 'announcementForm.categoryInput.label': 'Category'; + readonly 'announcementForm.categoryInput.create': 'Create'; + readonly 'announcementsPage.grid.announcementDeleted': 'Announcement deleted.'; + readonly 'announcementsPage.contextMenu.admin': 'Admin'; + readonly 'announcementsPage.contextMenu.categories': 'Categories'; + readonly 'announcementsPage.newAnnouncement': 'New announcement'; + readonly 'announcementsPage.genericNew': 'New'; + readonly 'announcementsPage.card.by': 'By'; + readonly 'announcementsPage.card.in': 'in'; + readonly 'announcementsPage.card.delete': 'DELETE'; + readonly 'announcementsPage.card.edit': 'EDIT'; + readonly 'admin.adminPortal.title': 'Admin Portal for Announcements'; + readonly 'admin.adminPortal.subtitle': 'Manage announcements and categories'; + readonly 'admin.adminPortal.announcementsLabels': 'Announcements'; + readonly 'admin.adminPortal.categoriesLabel': 'Categories'; + readonly 'admin.announecementsContent.table.active': 'Active'; + readonly 'admin.announecementsContent.table.inactive': 'Inactive'; + readonly 'admin.announecementsContent.table.body': 'Body'; + readonly 'admin.announecementsContent.table.title': 'Title'; + readonly 'admin.announecementsContent.table.status': 'Status'; + readonly 'admin.announecementsContent.table.actions': 'Actions'; + readonly 'admin.announecementsContent.table.category': 'Category'; + readonly 'admin.announecementsContent.table.publisher': 'Publisher'; + readonly 'admin.announecementsContent.announcements': 'Announcements'; + readonly 'admin.announecementsContent.alertMessage': 'Announcement created.'; + readonly 'admin.announecementsContent.alertMessageWithNewCategory': 'with new category'; + readonly 'admin.announecementsContent.cancelButton': 'Cancel'; + readonly 'admin.announecementsContent.createButton': 'Create Announcement'; + readonly 'admin.announecementsContent.noAnnouncementsFound': 'No announcements found'; + readonly 'admin.categoriesContent.table.title': 'Title'; + readonly 'admin.categoriesContent.table.actions': 'Actions'; + readonly 'admin.categoriesContent.table.categoryDeleted': 'Category deleted.'; + readonly 'admin.categoriesContent.table.slug': 'Slug'; + readonly 'admin.categoriesContent.table.addTooltip': 'Add'; + readonly 'admin.categoriesContent.table.noCategoriesFound': 'No categories found.'; + readonly 'admin.categoriesContent.createdMessage': 'created'; + readonly 'admin.categoriesContent.cancelButton': 'Cancel'; + readonly 'admin.categoriesContent.createButton': 'Create category'; + readonly 'admin.categoriesContent.deletedMessage': 'Category deleted.'; + readonly 'deleteDialog.cancel': 'Cancel'; + readonly 'deleteDialog.title': 'Are you sure you want to delete this announcement?'; + readonly 'deleteDialog.delete': 'Delete'; + readonly 'announcementsCard.new': 'New'; + readonly 'announcementsCard.in': 'in'; + readonly 'announcementsCard.announcements': 'Announcements'; + readonly 'announcementsCard.seeAll': 'See all'; + readonly 'announcementsCard.noAnnouncements': 'No announcements yet, want to'; + readonly 'announcementsCard.addOne': 'add one'; + readonly 'announcementSearchResultListItem.published': 'Published'; + readonly 'announcementSearchResultListItem.announcement': 'Announcement'; + readonly 'announcementsTimeline.error': 'Error'; + readonly 'announcementsTimeline.noAnnouncements': 'No announcements'; + readonly 'categoriesForm.submit': 'Submit'; + readonly 'categoriesForm.newCategory': 'New category'; + readonly 'categoriesForm.editCategory': 'Edit category'; + readonly 'categoriesForm.titleLabel': 'Title'; + readonly 'categoriesTable.title': 'Title'; + readonly 'categoriesTable.actions': 'Actions'; + readonly 'categoriesTable.categoryDeleted': 'Category deleted.'; + readonly 'categoriesTable.slug': 'Slug'; + readonly 'categoriesTable.addTooltip': 'Add'; + readonly 'categoriesTable.noCategoriesFound': 'No categories found.'; + readonly 'categoriesPage.title': 'Categories'; + readonly 'categoriesPage.subtitle': 'Manage announcement categories'; + readonly 'createAnnouncementPage.alertMessage': 'Announcement created.'; + readonly 'createAnnouncementPage.alertMessageWithNewCategory': 'with new category'; + readonly 'editAnnouncementPage.edit': 'Edit'; + readonly 'editAnnouncementPage.updatedMessage': 'Announcement updated.'; + readonly 'editAnnouncementPage.notFoundMessage': 'Unable to find announcement'; + readonly 'newAnnouncementBanner.markAsSeen': 'Mark as seen'; + readonly 'newCategoryDialog.title': 'Title'; + readonly 'newCategoryDialog.newCategory': 'New category'; + readonly 'newCategoryDialog.createdMessage': 'Category created.'; + readonly 'newCategoryDialog.cancelButton': 'Cancel'; + readonly 'newCategoryDialog.createButton': 'Create'; + }>; +}; + +// @public +export const useCategories: () => { + categories: Category[]; + loading: boolean; + error: Error | undefined; + retry: () => void; +}; +``` diff --git a/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts b/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts index 69c9ea427c..65258c3ac7 100644 --- a/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts +++ b/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts @@ -22,10 +22,18 @@ import { Category, } from '@procore-oss/backstage-plugin-announcements-common'; +/** + * @public + */ export const announcementsApiRef = createApiRef({ id: 'plugin.announcements.service', }); +/** + * API interface for managing announcements and categories. + * + * @public + */ export interface AnnouncementsApi { announcements(opts: { max?: number; diff --git a/workspaces/announcements/plugins/announcements-react/src/apis/types.ts b/workspaces/announcements/plugins/announcements-react/src/apis/types.ts index fe85b62b2a..ea786ccb53 100644 --- a/workspaces/announcements/plugins/announcements-react/src/apis/types.ts +++ b/workspaces/announcements/plugins/announcements-react/src/apis/types.ts @@ -15,6 +15,11 @@ */ import { Announcement } from '@procore-oss/backstage-plugin-announcements-common'; +/** + * Request to create an announcement + * + * @public + */ export type CreateAnnouncementRequest = Omit< Announcement, 'id' | 'category' | 'created_at' @@ -22,6 +27,11 @@ export type CreateAnnouncementRequest = Omit< category?: string; }; +/** + * Request to create a category + * + * @public + */ export type CreateCategoryRequest = { title: string; }; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/index.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/index.ts index b8913f84a8..f312a56ea4 100644 --- a/workspaces/announcements/plugins/announcements-react/src/hooks/index.ts +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/index.ts @@ -13,6 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { useAnnouncements } from './useAnnouncements'; +export { + useAnnouncements, + type AnnouncementsOptions, +} from './useAnnouncements'; export { useCategories } from './useCategories'; export { useAnnouncementsTranslation } from './useAnnouncementsTranslation'; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts index 77c3ddc3c4..657f46362d 100644 --- a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts @@ -19,15 +19,27 @@ import { AnnouncementsFilters, AnnouncementsList, } from '@procore-oss/backstage-plugin-announcements-common'; -import { useAsyncRetry } from 'react-use'; +import useAsyncRetry from 'react-use/esm/useAsyncRetry'; -type UseAnnouncementsPropOptions = { +/** + * Options for the useAnnouncements hook + * + * @public + */ +export type AnnouncementsOptions = { dependencies?: any[]; }; +/** + * Hook to retrieve list of announcements. + * + * @returns A list of announcements and loading state + * + * @public + */ export const useAnnouncements = ( props: AnnouncementsFilters, - options?: UseAnnouncementsPropOptions, + options?: AnnouncementsOptions, ): { announcements: AnnouncementsList; loading: boolean; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts index ffeb78ae2b..dcd3d46210 100644 --- a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncementsTranslation.ts @@ -14,8 +14,15 @@ * limitations under the License. */ import { useTranslationRef } from '@backstage/core-plugin-api/alpha'; -import { translationRef } from '../translation'; +import { announcementsTranslationRef } from '../translation'; +/** + * Hook to get the announcements translation API. + * + * @returns The announcements translation API + * + * @public + */ export const useAnnouncementsTranslation = () => { - return useTranslationRef(translationRef); + return useTranslationRef(announcementsTranslationRef); }; diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts index 8245c4ab20..1ebeaeb43f 100644 --- a/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts @@ -16,8 +16,15 @@ import { useApi } from '@backstage/core-plugin-api'; import { announcementsApiRef } from '../apis'; import { Category } from '@procore-oss/backstage-plugin-announcements-common'; -import { useAsyncRetry } from 'react-use'; +import useAsyncRetry from 'react-use/esm/useAsyncRetry'; +/** + * Hook to get all categories. + * + * @returns a list of all categories + * + * @public + */ export const useCategories = (): { categories: Category[]; loading: boolean; diff --git a/workspaces/announcements/plugins/announcements-react/src/translation.ts b/workspaces/announcements/plugins/announcements-react/src/translation.ts index 3f47170cfb..566f64449f 100644 --- a/workspaces/announcements/plugins/announcements-react/src/translation.ts +++ b/workspaces/announcements/plugins/announcements-react/src/translation.ts @@ -16,7 +16,7 @@ import { createTranslationRef } from '@backstage/core-plugin-api/alpha'; /** @public */ -export const translationRef = createTranslationRef({ +export const announcementsTranslationRef = createTranslationRef({ id: 'announcements', messages: { announcementForm: { diff --git a/workspaces/announcements/plugins/announcements/report.api.md b/workspaces/announcements/plugins/announcements/report.api.md index 88d24369e7..304d05c24d 100644 --- a/workspaces/announcements/plugins/announcements/report.api.md +++ b/workspaces/announcements/plugins/announcements/report.api.md @@ -5,7 +5,7 @@ ```ts /// -import { AnnouncementsApi as AnnouncementsApi_2 } from '@procore-oss/backstage-plugin-announcements-react'; +import { AnnouncementsApi as AnnouncementsApi_2 } from '@backstage-community/plugin-announcements-react'; import { ApiRef } from '@backstage/core-plugin-api/index'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { JSX as JSX_2 } from 'react'; From b414ae265ee6b22801c0c1a7b178719ed210734d Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 14:28:33 -0700 Subject: [PATCH 5/8] improve readme Signed-off-by: Kurt King --- .../announcements/plugins/announcements-react/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/workspaces/announcements/plugins/announcements-react/README.md b/workspaces/announcements/plugins/announcements-react/README.md index af91ebdabc..f0d2975d79 100644 --- a/workspaces/announcements/plugins/announcements-react/README.md +++ b/workspaces/announcements/plugins/announcements-react/README.md @@ -1,7 +1,11 @@ # @backstage-community/plugin-announcements-react -This library provides reusable components for displaying announcements in a Backstage plugin. +This library provides reusable components and frontend utilities for displaying and interacting with announcements in a Backstage plugin. ## Hooks There are multiple [hooks](./src/hooks/index.ts) you may use in your Backstage plugin to fetch and use announcements however you see fit. + +## Previously maintained by + +- [procore-oss](https://github.com/procore-oss/backstage-plugin-announcements/tree/main/plugins/announcements-react) From a31cec027c7a35681dca9878a0bdbe4e9e999754 Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 14:32:43 -0700 Subject: [PATCH 6/8] update imports to use backstage-community Signed-off-by: Kurt King --- .../plugins/announcements-react/package.json | 1 - .../plugins/announcements-react/report.api.md | 8 ++++---- .../announcements-react/src/apis/AnnouncementsApi.ts | 2 +- .../plugins/announcements-react/src/apis/types.ts | 2 +- .../announcements-react/src/hooks/useAnnouncements.ts | 2 +- .../announcements-react/src/hooks/useCategories.ts | 2 +- .../components/AnnouncementForm/CategoryInput.test.tsx | 4 ++-- .../announcements/plugins/announcements/src/index.ts | 4 ++-- workspaces/announcements/yarn.lock | 10 ---------- 9 files changed, 12 insertions(+), 23 deletions(-) diff --git a/workspaces/announcements/plugins/announcements-react/package.json b/workspaces/announcements/plugins/announcements-react/package.json index 150875b3b2..473ae88507 100644 --- a/workspaces/announcements/plugins/announcements-react/package.json +++ b/workspaces/announcements/plugins/announcements-react/package.json @@ -41,7 +41,6 @@ "@backstage-community/plugin-announcements-common": "workspace:^", "@backstage/core-plugin-api": "^1.10.1", "@backstage/errors": "^1.2.5", - "@procore-oss/backstage-plugin-announcements-common": "^0.2.9", "luxon": "^3.4.4", "react-use": "^17.2.4" }, diff --git a/workspaces/announcements/plugins/announcements-react/report.api.md b/workspaces/announcements/plugins/announcements-react/report.api.md index 2a40ab0f03..5060859990 100644 --- a/workspaces/announcements/plugins/announcements-react/report.api.md +++ b/workspaces/announcements/plugins/announcements-react/report.api.md @@ -3,11 +3,11 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { Announcement } from '@procore-oss/backstage-plugin-announcements-common'; -import { AnnouncementsFilters } from '@procore-oss/backstage-plugin-announcements-common'; -import { AnnouncementsList } from '@procore-oss/backstage-plugin-announcements-common'; +import { Announcement } from '@backstage-community/plugin-announcements-common'; +import { AnnouncementsFilters } from '@backstage-community/plugin-announcements-common'; +import { AnnouncementsList } from '@backstage-community/plugin-announcements-common'; import { ApiRef } from '@backstage/core-plugin-api'; -import { Category } from '@procore-oss/backstage-plugin-announcements-common'; +import { Category } from '@backstage-community/plugin-announcements-common'; import { DateTime } from 'luxon'; import { TranslationFunction } from '@backstage/core-plugin-api/alpha'; diff --git a/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts b/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts index 65258c3ac7..9ef614857d 100644 --- a/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts +++ b/workspaces/announcements/plugins/announcements-react/src/apis/AnnouncementsApi.ts @@ -20,7 +20,7 @@ import { Announcement, AnnouncementsList, Category, -} from '@procore-oss/backstage-plugin-announcements-common'; +} from '@backstage-community/plugin-announcements-common'; /** * @public diff --git a/workspaces/announcements/plugins/announcements-react/src/apis/types.ts b/workspaces/announcements/plugins/announcements-react/src/apis/types.ts index ea786ccb53..1e6cca981a 100644 --- a/workspaces/announcements/plugins/announcements-react/src/apis/types.ts +++ b/workspaces/announcements/plugins/announcements-react/src/apis/types.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Announcement } from '@procore-oss/backstage-plugin-announcements-common'; +import { Announcement } from '@backstage-community/plugin-announcements-common'; /** * Request to create an announcement diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts index 657f46362d..406d8d3536 100644 --- a/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useAnnouncements.ts @@ -18,7 +18,7 @@ import { announcementsApiRef } from '../apis'; import { AnnouncementsFilters, AnnouncementsList, -} from '@procore-oss/backstage-plugin-announcements-common'; +} from '@backstage-community/plugin-announcements-common'; import useAsyncRetry from 'react-use/esm/useAsyncRetry'; /** diff --git a/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts b/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts index 1ebeaeb43f..e70e55f832 100644 --- a/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts +++ b/workspaces/announcements/plugins/announcements-react/src/hooks/useCategories.ts @@ -15,7 +15,7 @@ */ import { useApi } from '@backstage/core-plugin-api'; import { announcementsApiRef } from '../apis'; -import { Category } from '@procore-oss/backstage-plugin-announcements-common'; +import { Category } from '@backstage-community/plugin-announcements-common'; import useAsyncRetry from 'react-use/esm/useAsyncRetry'; /** diff --git a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx index 9841b1d66b..2e75c9d17d 100644 --- a/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx +++ b/workspaces/announcements/plugins/announcements/src/components/AnnouncementForm/CategoryInput.test.tsx @@ -25,8 +25,8 @@ const categories = [ { title: 'World', slug: 'world' }, ]; -jest.mock('@procore-oss/backstage-plugin-announcements-react', () => ({ - ...jest.requireActual('@procore-oss/backstage-plugin-announcements-react'), +jest.mock('@backstage-community/plugin-announcements-react', () => ({ + ...jest.requireActual('@backstage-community/plugin-announcements-react'), useCategories: () => { return { categories, diff --git a/workspaces/announcements/plugins/announcements/src/index.ts b/workspaces/announcements/plugins/announcements/src/index.ts index 94a35f6f21..27abbdaf32 100644 --- a/workspaces/announcements/plugins/announcements/src/index.ts +++ b/workspaces/announcements/plugins/announcements/src/index.ts @@ -22,12 +22,12 @@ import { /** @public - * @deprecated Use `AnnouncementsApi` from `@procore-oss/backstage-plugin-announcements-react` instead + * @deprecated Use `AnnouncementsApi` from `@backstage-community/plugin-announcements-react` instead */ export type AnnouncementsApi = AnnouncementsApi_; /** * @public - * @deprecated Use `announcementsApiRef` from `@procore-oss/backstage-plugin-announcements-react` instead + * @deprecated Use `announcementsApiRef` from `@backstage-community/plugin-announcements-react` instead */ export const announcementsApiRef = announcementsApiRef_; diff --git a/workspaces/announcements/yarn.lock b/workspaces/announcements/yarn.lock index 0e48bc8db8..9f0657ebe7 100644 --- a/workspaces/announcements/yarn.lock +++ b/workspaces/announcements/yarn.lock @@ -2603,7 +2603,6 @@ __metadata: "@backstage/cli": ^0.29.2 "@backstage/core-plugin-api": ^1.10.1 "@backstage/errors": ^1.2.5 - "@procore-oss/backstage-plugin-announcements-common": ^0.2.9 "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 luxon: ^3.4.4 @@ -7239,15 +7238,6 @@ __metadata: languageName: node linkType: hard -"@procore-oss/backstage-plugin-announcements-common@npm:^0.2.9": - version: 0.2.9 - resolution: "@procore-oss/backstage-plugin-announcements-common@npm:0.2.9" - dependencies: - "@backstage/plugin-permission-common": ^0.8.2 - checksum: 04c01a04174e175d121f4becdb08a3539731dfe09788d25417c344d316626d72801d781b6f5b4b5188b0e5e64649ead7e6efe35e319f0a091201d47bef78f0fa - languageName: node - linkType: hard - "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" From a57a6f7ae234f5015709f8360837bccc2c068cef Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 14:35:05 -0700 Subject: [PATCH 7/8] remove additional references to procore-oss Signed-off-by: Kurt King --- .../announcements/plugins/announcements-react/src/index.ts | 2 ++ .../plugins/search-backend-module-announcements/config.d.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/workspaces/announcements/plugins/announcements-react/src/index.ts b/workspaces/announcements/plugins/announcements-react/src/index.ts index 4692ff938c..0932db9500 100644 --- a/workspaces/announcements/plugins/announcements-react/src/index.ts +++ b/workspaces/announcements/plugins/announcements-react/src/index.ts @@ -25,3 +25,5 @@ export * from './apis'; export * from './hooks'; + +export { announcementsTranslationRef } from './translation'; diff --git a/workspaces/announcements/plugins/search-backend-module-announcements/config.d.ts b/workspaces/announcements/plugins/search-backend-module-announcements/config.d.ts index c36af1b7c9..f1f2ca237b 100644 --- a/workspaces/announcements/plugins/search-backend-module-announcements/config.d.ts +++ b/workspaces/announcements/plugins/search-backend-module-announcements/config.d.ts @@ -19,7 +19,7 @@ export interface Config { search?: { collators?: { /** - * Configuration options for `@procore-oss/backstage-plugin-search-backend-module-announcements` + * Configuration options for `@backstage-community/plugin-search-backend-module-announcements` */ announcements?: { /** From 83b8c1c7a668fee1819165087c832889223796fa Mon Sep 17 00:00:00 2001 From: Kurt King Date: Wed, 25 Dec 2024 14:42:43 -0700 Subject: [PATCH 8/8] fix api report Signed-off-by: Kurt King --- .../plugins/announcements-react/report.api.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/workspaces/announcements/plugins/announcements-react/report.api.md b/workspaces/announcements/plugins/announcements-react/report.api.md index 5060859990..bda8c8db08 100644 --- a/workspaces/announcements/plugins/announcements-react/report.api.md +++ b/workspaces/announcements/plugins/announcements-react/report.api.md @@ -10,6 +10,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { Category } from '@backstage-community/plugin-announcements-common'; import { DateTime } from 'luxon'; import { TranslationFunction } from '@backstage/core-plugin-api/alpha'; +import { TranslationRef } from '@backstage/core-plugin-api/alpha'; // @public export interface AnnouncementsApi { @@ -51,6 +52,94 @@ export type AnnouncementsOptions = { dependencies?: any[]; }; +// @public (undocumented) +export const announcementsTranslationRef: TranslationRef< + 'announcements', + { + readonly 'announcementForm.active': 'Active'; + readonly 'announcementForm.title': 'Title'; + readonly 'announcementForm.submit': 'Submit'; + readonly 'announcementForm.excerpt': 'Excerpt'; + readonly 'announcementForm.editAnnouncement': 'Edit announcement'; + readonly 'announcementForm.newAnnouncement': 'New announcement'; + readonly 'announcementForm.categoryInput.label': 'Category'; + readonly 'announcementForm.categoryInput.create': 'Create'; + readonly 'announcementsPage.grid.announcementDeleted': 'Announcement deleted.'; + readonly 'announcementsPage.contextMenu.admin': 'Admin'; + readonly 'announcementsPage.contextMenu.categories': 'Categories'; + readonly 'announcementsPage.newAnnouncement': 'New announcement'; + readonly 'announcementsPage.genericNew': 'New'; + readonly 'announcementsPage.card.by': 'By'; + readonly 'announcementsPage.card.in': 'in'; + readonly 'announcementsPage.card.delete': 'DELETE'; + readonly 'announcementsPage.card.edit': 'EDIT'; + readonly 'admin.adminPortal.title': 'Admin Portal for Announcements'; + readonly 'admin.adminPortal.subtitle': 'Manage announcements and categories'; + readonly 'admin.adminPortal.announcementsLabels': 'Announcements'; + readonly 'admin.adminPortal.categoriesLabel': 'Categories'; + readonly 'admin.announecementsContent.table.active': 'Active'; + readonly 'admin.announecementsContent.table.inactive': 'Inactive'; + readonly 'admin.announecementsContent.table.body': 'Body'; + readonly 'admin.announecementsContent.table.title': 'Title'; + readonly 'admin.announecementsContent.table.status': 'Status'; + readonly 'admin.announecementsContent.table.actions': 'Actions'; + readonly 'admin.announecementsContent.table.category': 'Category'; + readonly 'admin.announecementsContent.table.publisher': 'Publisher'; + readonly 'admin.announecementsContent.announcements': 'Announcements'; + readonly 'admin.announecementsContent.alertMessage': 'Announcement created.'; + readonly 'admin.announecementsContent.alertMessageWithNewCategory': 'with new category'; + readonly 'admin.announecementsContent.cancelButton': 'Cancel'; + readonly 'admin.announecementsContent.createButton': 'Create Announcement'; + readonly 'admin.announecementsContent.noAnnouncementsFound': 'No announcements found'; + readonly 'admin.categoriesContent.table.title': 'Title'; + readonly 'admin.categoriesContent.table.actions': 'Actions'; + readonly 'admin.categoriesContent.table.categoryDeleted': 'Category deleted.'; + readonly 'admin.categoriesContent.table.slug': 'Slug'; + readonly 'admin.categoriesContent.table.addTooltip': 'Add'; + readonly 'admin.categoriesContent.table.noCategoriesFound': 'No categories found.'; + readonly 'admin.categoriesContent.createdMessage': 'created'; + readonly 'admin.categoriesContent.cancelButton': 'Cancel'; + readonly 'admin.categoriesContent.createButton': 'Create category'; + readonly 'admin.categoriesContent.deletedMessage': 'Category deleted.'; + readonly 'deleteDialog.cancel': 'Cancel'; + readonly 'deleteDialog.title': 'Are you sure you want to delete this announcement?'; + readonly 'deleteDialog.delete': 'Delete'; + readonly 'announcementsCard.new': 'New'; + readonly 'announcementsCard.in': 'in'; + readonly 'announcementsCard.announcements': 'Announcements'; + readonly 'announcementsCard.seeAll': 'See all'; + readonly 'announcementsCard.noAnnouncements': 'No announcements yet, want to'; + readonly 'announcementsCard.addOne': 'add one'; + readonly 'announcementSearchResultListItem.published': 'Published'; + readonly 'announcementSearchResultListItem.announcement': 'Announcement'; + readonly 'announcementsTimeline.error': 'Error'; + readonly 'announcementsTimeline.noAnnouncements': 'No announcements'; + readonly 'categoriesForm.submit': 'Submit'; + readonly 'categoriesForm.newCategory': 'New category'; + readonly 'categoriesForm.editCategory': 'Edit category'; + readonly 'categoriesForm.titleLabel': 'Title'; + readonly 'categoriesTable.title': 'Title'; + readonly 'categoriesTable.actions': 'Actions'; + readonly 'categoriesTable.categoryDeleted': 'Category deleted.'; + readonly 'categoriesTable.slug': 'Slug'; + readonly 'categoriesTable.addTooltip': 'Add'; + readonly 'categoriesTable.noCategoriesFound': 'No categories found.'; + readonly 'categoriesPage.title': 'Categories'; + readonly 'categoriesPage.subtitle': 'Manage announcement categories'; + readonly 'createAnnouncementPage.alertMessage': 'Announcement created.'; + readonly 'createAnnouncementPage.alertMessageWithNewCategory': 'with new category'; + readonly 'editAnnouncementPage.edit': 'Edit'; + readonly 'editAnnouncementPage.updatedMessage': 'Announcement updated.'; + readonly 'editAnnouncementPage.notFoundMessage': 'Unable to find announcement'; + readonly 'newAnnouncementBanner.markAsSeen': 'Mark as seen'; + readonly 'newCategoryDialog.title': 'Title'; + readonly 'newCategoryDialog.newCategory': 'New category'; + readonly 'newCategoryDialog.createdMessage': 'Category created.'; + readonly 'newCategoryDialog.cancelButton': 'Cancel'; + readonly 'newCategoryDialog.createButton': 'Create'; + } +>; + // @public export type CreateAnnouncementRequest = Omit< Announcement,