@backstage-community/plugin-announcements 0.16.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/dist/alpha/entityCards.esm.js +1 -0
  3. package/dist/alpha/entityCards.esm.js.map +1 -1
  4. package/dist/alpha.d.ts +10 -9
  5. package/dist/components/Admin/AnnouncementsContent/AnnouncementForm/AnnouncementForm.esm.js.map +1 -0
  6. package/dist/components/Admin/AnnouncementsContent/AnnouncementForm/CategoryInput.esm.js.map +1 -0
  7. package/dist/components/Admin/AnnouncementsContent/AnnouncementForm/OnBehalfTeamDropdown.esm.js.map +1 -0
  8. package/dist/components/Admin/AnnouncementsContent/AnnouncementForm/TagsInput.esm.js.map +1 -0
  9. package/dist/components/Admin/AnnouncementsContent/AnnouncementsContent.esm.js +70 -7
  10. package/dist/components/Admin/AnnouncementsContent/AnnouncementsContent.esm.js.map +1 -1
  11. package/dist/components/Admin/AnnouncementsContent/DeleteAnnouncementDialog.esm.js.map +1 -0
  12. package/dist/components/Admin/AnnouncementsContent/useDeleteAnnouncementDialogState.esm.js.map +1 -0
  13. package/dist/components/Admin/CategoriesContent/CategoriesContent.esm.js +3 -3
  14. package/dist/components/Admin/CategoriesContent/CategoriesContent.esm.js.map +1 -1
  15. package/dist/components/Admin/CategoriesContent/CategoriesForm.esm.js.map +1 -0
  16. package/dist/components/Admin/CategoriesContent/DeleteCategoryDialog.esm.js.map +1 -0
  17. package/dist/components/Admin/CategoriesContent/useDeleteCategoryDialogState.esm.js.map +1 -0
  18. package/dist/components/Admin/TagsContent/DeleteTagDialog.esm.js.map +1 -0
  19. package/dist/components/Admin/TagsContent/TagsContent.esm.js +3 -3
  20. package/dist/components/Admin/TagsContent/TagsContent.esm.js.map +1 -1
  21. package/dist/components/Admin/TagsContent/TagsForm.esm.js.map +1 -0
  22. package/dist/components/Admin/TagsContent/useDeleteTagDialogState.esm.js.map +1 -0
  23. package/dist/components/AnnouncementPage/AnnouncementPage.esm.js +1 -1
  24. package/dist/components/AnnouncementPage/AnnouncementPage.esm.js.map +1 -1
  25. package/dist/components/AnnouncementsCard/AnnouncementsCard.esm.js +3 -3
  26. package/dist/components/AnnouncementsCard/AnnouncementsCard.esm.js.map +1 -1
  27. package/dist/components/AnnouncementsPage/AnnouncementsPage.esm.js +24 -138
  28. package/dist/components/AnnouncementsPage/AnnouncementsPage.esm.js.map +1 -1
  29. package/dist/components/AnnouncementsPage/ContextMenu.esm.js +5 -22
  30. package/dist/components/AnnouncementsPage/ContextMenu.esm.js.map +1 -1
  31. package/dist/components/AnnouncementsTimeline/AnnouncementsTimeline.esm.js +1 -1
  32. package/dist/components/AnnouncementsTimeline/AnnouncementsTimeline.esm.js.map +1 -1
  33. package/dist/components/NewAnnouncementBanner/NewAnnouncementBanner.esm.js +1 -1
  34. package/dist/components/NewAnnouncementBanner/NewAnnouncementBanner.esm.js.map +1 -1
  35. package/dist/components/Router.esm.js +6 -31
  36. package/dist/components/Router.esm.js.map +1 -1
  37. package/dist/index.d.ts +3 -3
  38. package/dist/routes.esm.js +1 -21
  39. package/dist/routes.esm.js.map +1 -1
  40. package/package.json +19 -19
  41. package/dist/components/AnnouncementForm/AnnouncementForm.esm.js.map +0 -1
  42. package/dist/components/AnnouncementForm/CategoryInput.esm.js.map +0 -1
  43. package/dist/components/AnnouncementForm/OnBehalfTeamDropdown.esm.js.map +0 -1
  44. package/dist/components/AnnouncementForm/TagsInput.esm.js.map +0 -1
  45. package/dist/components/AnnouncementsPage/DeleteAnnouncementDialog.esm.js.map +0 -1
  46. package/dist/components/AnnouncementsPage/useDeleteAnnouncementDialogState.esm.js.map +0 -1
  47. package/dist/components/CategoriesForm/CategoriesForm.esm.js.map +0 -1
  48. package/dist/components/CategoriesPage/CategoriesPage.esm.js +0 -129
  49. package/dist/components/CategoriesPage/CategoriesPage.esm.js.map +0 -1
  50. package/dist/components/CategoriesPage/DeleteCategoryDialog.esm.js.map +0 -1
  51. package/dist/components/CategoriesPage/useDeleteCategoryDialogState.esm.js.map +0 -1
  52. package/dist/components/CreateAnnouncementPage/CreateAnnouncementPage.esm.js +0 -63
  53. package/dist/components/CreateAnnouncementPage/CreateAnnouncementPage.esm.js.map +0 -1
  54. package/dist/components/EditAnnouncementPage/EditAnnouncementPage.esm.js +0 -72
  55. package/dist/components/EditAnnouncementPage/EditAnnouncementPage.esm.js.map +0 -1
  56. package/dist/components/NewCategoryDialog/NewCategoryDialog.esm.js +0 -58
  57. package/dist/components/NewCategoryDialog/NewCategoryDialog.esm.js.map +0 -1
  58. package/dist/components/NewTagDialog/NewTagDialog.esm.js +0 -71
  59. package/dist/components/NewTagDialog/NewTagDialog.esm.js.map +0 -1
  60. package/dist/components/TagsForm/TagsForm.esm.js.map +0 -1
  61. package/dist/components/TagsPage/DeleteTagDialog.esm.js.map +0 -1
  62. package/dist/components/TagsPage/TagsPage.esm.js +0 -122
  63. package/dist/components/TagsPage/TagsPage.esm.js.map +0 -1
  64. package/dist/components/TagsPage/useDeleteTagDialogState.esm.js.map +0 -1
  65. /package/dist/components/{AnnouncementForm → Admin/AnnouncementsContent/AnnouncementForm}/AnnouncementForm.esm.js +0 -0
  66. /package/dist/components/{AnnouncementForm → Admin/AnnouncementsContent/AnnouncementForm}/CategoryInput.esm.js +0 -0
  67. /package/dist/components/{AnnouncementForm → Admin/AnnouncementsContent/AnnouncementForm}/OnBehalfTeamDropdown.esm.js +0 -0
  68. /package/dist/components/{AnnouncementForm → Admin/AnnouncementsContent/AnnouncementForm}/TagsInput.esm.js +0 -0
  69. /package/dist/components/{AnnouncementsPage → Admin/AnnouncementsContent}/DeleteAnnouncementDialog.esm.js +0 -0
  70. /package/dist/components/{AnnouncementsPage → Admin/AnnouncementsContent}/useDeleteAnnouncementDialogState.esm.js +0 -0
  71. /package/dist/components/{CategoriesForm → Admin/CategoriesContent}/CategoriesForm.esm.js +0 -0
  72. /package/dist/components/{CategoriesPage → Admin/CategoriesContent}/DeleteCategoryDialog.esm.js +0 -0
  73. /package/dist/components/{CategoriesPage → Admin/CategoriesContent}/useDeleteCategoryDialogState.esm.js +0 -0
  74. /package/dist/components/{TagsPage → Admin/TagsContent}/DeleteTagDialog.esm.js +0 -0
  75. /package/dist/components/{TagsForm → Admin/TagsContent}/TagsForm.esm.js +0 -0
  76. /package/dist/components/{TagsPage → Admin/TagsContent}/useDeleteTagDialogState.esm.js +0 -0
@@ -1,122 +0,0 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { useState } from 'react';
3
- import { Page, Header, Content, ErrorPanel, Table } from '@backstage/core-components';
4
- import { NewTagDialog } from '../NewTagDialog/NewTagDialog.esm.js';
5
- import { useAnnouncementsTranslation, announcementsApiRef, useTags } from '@backstage-community/plugin-announcements-react';
6
- import { announcementCreatePermission } from '@backstage-community/plugin-announcements-common';
7
- import { useDeleteTagDialogState } from './useDeleteTagDialogState.esm.js';
8
- import { useApi, alertApiRef } from '@backstage/core-plugin-api';
9
- import { DeleteTagDialog } from './DeleteTagDialog.esm.js';
10
- import { IconButton, Typography } from '@material-ui/core';
11
- import AddIcon from '@material-ui/icons/Add';
12
- import DeleteIcon from '@material-ui/icons/Delete';
13
- import { ContextMenu } from '../AnnouncementsPage/ContextMenu.esm.js';
14
- import { usePermission } from '@backstage/plugin-permission-react';
15
-
16
- const TagsTable = () => {
17
- const [newTagDialogOpen, setNewTagDialogOpen] = useState(false);
18
- const announcementsApi = useApi(announcementsApiRef);
19
- const alertApi = useApi(alertApiRef);
20
- const { tags, loading, error, retry: refresh } = useTags();
21
- const {
22
- isOpen: isDeleteDialogOpen,
23
- open: openDeleteDialog,
24
- close: closeDeleteDialog,
25
- tag: tagToDelete
26
- } = useDeleteTagDialogState();
27
- const { t } = useAnnouncementsTranslation();
28
- if (error) {
29
- return /* @__PURE__ */ jsx(ErrorPanel, { error });
30
- }
31
- const onNewTagDialogClose = () => {
32
- setNewTagDialogOpen(false);
33
- refresh();
34
- };
35
- const onCancelDelete = () => {
36
- closeDeleteDialog();
37
- };
38
- const onConfirmDelete = async () => {
39
- closeDeleteDialog();
40
- try {
41
- await announcementsApi.deleteTag(tagToDelete.slug);
42
- alertApi.post({
43
- message: t("tagsTable.tagDeleted"),
44
- severity: "success"
45
- });
46
- } catch (err) {
47
- alertApi.post({
48
- message: err.body.error.message,
49
- severity: "error"
50
- });
51
- }
52
- refresh();
53
- };
54
- const columns = [
55
- {
56
- title: t("tagsTable.slug"),
57
- field: "slug"
58
- },
59
- {
60
- title: t("tagsTable.title"),
61
- field: "title"
62
- },
63
- {
64
- title: t("tagsTable.actions"),
65
- field: "actions",
66
- render: (tag) => {
67
- return /* @__PURE__ */ jsx(IconButton, { onClick: () => openDeleteDialog(tag), children: /* @__PURE__ */ jsx(DeleteIcon, {}) });
68
- }
69
- }
70
- ];
71
- return /* @__PURE__ */ jsxs(Fragment, { children: [
72
- /* @__PURE__ */ jsx(
73
- Table,
74
- {
75
- options: { paging: false },
76
- data: tags || [],
77
- columns,
78
- isLoading: loading,
79
- title: "Tags",
80
- actions: [
81
- {
82
- icon: () => /* @__PURE__ */ jsx(AddIcon, {}),
83
- tooltip: t("tagsTable.addTooltip"),
84
- isFreeAction: true,
85
- onClick: (_event) => setNewTagDialogOpen(true)
86
- }
87
- ],
88
- emptyContent: /* @__PURE__ */ jsx(Typography, { style: { padding: 2, textAlign: "center" }, children: t("tagsTable.noTagsFound") })
89
- }
90
- ),
91
- /* @__PURE__ */ jsx(
92
- NewTagDialog,
93
- {
94
- open: newTagDialogOpen,
95
- onClose: onNewTagDialogClose,
96
- onSubmit: refresh
97
- }
98
- ),
99
- /* @__PURE__ */ jsx(
100
- DeleteTagDialog,
101
- {
102
- open: isDeleteDialogOpen,
103
- onCancel: onCancelDelete,
104
- onConfirm: onConfirmDelete
105
- }
106
- )
107
- ] });
108
- };
109
- const TagsPage = (props) => {
110
- const { t } = useAnnouncementsTranslation();
111
- const { allowed: canCreate } = usePermission({
112
- permission: announcementCreatePermission
113
- });
114
- const { themeId, hideContextMenu } = props;
115
- return /* @__PURE__ */ jsxs(Page, { themeId, children: [
116
- /* @__PURE__ */ jsx(Header, { title: t("tagsPage.title"), subtitle: t("tagsPage.subtitle"), children: !hideContextMenu && canCreate && /* @__PURE__ */ jsx(ContextMenu, {}) }),
117
- /* @__PURE__ */ jsx(Content, { children: /* @__PURE__ */ jsx(TagsTable, {}) })
118
- ] });
119
- };
120
-
121
- export { TagsPage };
122
- //# sourceMappingURL=TagsPage.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TagsPage.esm.js","sources":["../../../src/components/TagsPage/TagsPage.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useState } from 'react';\nimport {\n Page,\n Header,\n Content,\n Table,\n TableColumn,\n ErrorPanel,\n} from '@backstage/core-components';\nimport { NewTagDialog } from '../NewTagDialog';\nimport {\n useAnnouncementsTranslation,\n useTags,\n announcementsApiRef,\n} from '@backstage-community/plugin-announcements-react';\nimport {\n announcementCreatePermission,\n Tag,\n} from '@backstage-community/plugin-announcements-common';\nimport { useDeleteTagDialogState } from './useDeleteTagDialogState';\nimport { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport { DeleteTagDialog } from './DeleteTagDialog';\nimport { ResponseError } from '@backstage/errors';\nimport { IconButton, Typography } from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { ContextMenu } from '../AnnouncementsPage/ContextMenu';\nimport { usePermission } from '@backstage/plugin-permission-react';\n\nconst TagsTable = () => {\n const [newTagDialogOpen, setNewTagDialogOpen] = useState(false);\n const announcementsApi = useApi(announcementsApiRef);\n const alertApi = useApi(alertApiRef);\n\n const { tags, loading, error, retry: refresh } = useTags();\n\n const {\n isOpen: isDeleteDialogOpen,\n open: openDeleteDialog,\n close: closeDeleteDialog,\n tag: tagToDelete,\n } = useDeleteTagDialogState();\n const { t } = useAnnouncementsTranslation();\n\n if (error) {\n return <ErrorPanel error={error} />;\n }\n\n const onNewTagDialogClose = () => {\n setNewTagDialogOpen(false);\n refresh();\n };\n\n const onCancelDelete = () => {\n closeDeleteDialog();\n };\n const onConfirmDelete = async () => {\n closeDeleteDialog();\n\n try {\n await announcementsApi.deleteTag(tagToDelete!.slug);\n\n alertApi.post({\n message: t('tagsTable.tagDeleted'),\n severity: 'success',\n });\n } catch (err) {\n alertApi.post({\n message: (err as ResponseError).body.error.message,\n severity: 'error',\n });\n }\n\n refresh();\n };\n\n const columns: TableColumn<Tag>[] = [\n {\n title: t('tagsTable.slug'),\n field: 'slug',\n },\n {\n title: t('tagsTable.title'),\n field: 'title',\n },\n {\n title: t('tagsTable.actions'),\n field: 'actions',\n render: tag => {\n return (\n <IconButton onClick={() => openDeleteDialog(tag)}>\n <DeleteIcon />\n </IconButton>\n );\n },\n },\n ];\n\n return (\n <>\n <Table\n options={{ paging: false }}\n data={tags || []}\n columns={columns}\n isLoading={loading}\n title=\"Tags\"\n actions={[\n {\n icon: () => <AddIcon />,\n tooltip: t('tagsTable.addTooltip'),\n isFreeAction: true,\n onClick: _event => setNewTagDialogOpen(true),\n },\n ]}\n emptyContent={\n <Typography style={{ padding: 2, textAlign: 'center' }}>\n {t('tagsTable.noTagsFound')}\n </Typography>\n }\n />\n <NewTagDialog\n open={newTagDialogOpen}\n onClose={onNewTagDialogClose}\n onSubmit={refresh}\n />\n <DeleteTagDialog\n open={isDeleteDialogOpen}\n onCancel={onCancelDelete}\n onConfirm={onConfirmDelete}\n />\n </>\n );\n};\n\ntype TagsPageProps = {\n themeId: string;\n hideContextMenu?: boolean;\n};\n\nexport const TagsPage = (props: TagsPageProps) => {\n const { t } = useAnnouncementsTranslation();\n const { allowed: canCreate } = usePermission({\n permission: announcementCreatePermission,\n });\n const { themeId, hideContextMenu } = props;\n\n return (\n <Page themeId={themeId}>\n <Header title={t('tagsPage.title')} subtitle={t('tagsPage.subtitle')}>\n {!hideContextMenu && canCreate && <ContextMenu />}\n </Header>\n\n <Content>\n <TagsTable />\n </Content>\n </Page>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDeleteTagDialogState.esm.js","sources":["../../../src/components/TagsPage/useDeleteTagDialogState.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Tag } from '@backstage-community/plugin-announcements-common';\nimport { useCallback, useState } from 'react';\n\ntype DeleteTagDialogState = {\n open: (t: Tag) => void;\n close: () => void;\n\n isOpen: boolean;\n tag?: Tag;\n};\n\nexport function useDeleteTagDialogState(): DeleteTagDialogState {\n const [state, setState] = useState<{\n open: boolean;\n tag?: Tag;\n }>({ open: false });\n\n const setOpen = useCallback(\n (t: Tag) => {\n setState({\n open: true,\n tag: t,\n });\n },\n [setState],\n );\n\n const setClosed = useCallback(() => {\n setState({\n open: false,\n tag: undefined,\n });\n }, [setState]);\n\n return {\n open: setOpen,\n close: setClosed,\n\n tag: state.tag,\n isOpen: state.open,\n };\n}\n"],"names":[],"mappings":";;AA0BO,SAAS,uBAAgD,GAAA;AAC9D,EAAM,MAAA,CAAC,OAAO,QAAQ,CAAA,GAAI,SAGvB,EAAE,IAAA,EAAM,OAAO,CAAA;AAElB,EAAA,MAAM,OAAU,GAAA,WAAA;AAAA,IACd,CAAC,CAAW,KAAA;AACV,MAAS,QAAA,CAAA;AAAA,QACP,IAAM,EAAA,IAAA;AAAA,QACN,GAAK,EAAA;AAAA,OACN,CAAA;AAAA,KACH;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAM,MAAA,SAAA,GAAY,YAAY,MAAM;AAClC,IAAS,QAAA,CAAA;AAAA,MACP,IAAM,EAAA,KAAA;AAAA,MACN,GAAK,EAAA,KAAA;AAAA,KACN,CAAA;AAAA,GACH,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,KAAO,EAAA,SAAA;AAAA,IAEP,KAAK,KAAM,CAAA,GAAA;AAAA,IACX,QAAQ,KAAM,CAAA;AAAA,GAChB;AACF;;;;"}