@backstage-community/plugin-bazaar 0.9.0 → 0.10.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 (55) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/About/About.esm.js +21 -9
  3. package/dist/components/About/About.esm.js.map +1 -1
  4. package/dist/components/AddProjectDialog/AddProjectDialog.esm.js +4 -3
  5. package/dist/components/AddProjectDialog/AddProjectDialog.esm.js.map +1 -1
  6. package/dist/components/BazaarOverviewCard/BazaarOverviewCard.esm.js +18 -17
  7. package/dist/components/BazaarOverviewCard/BazaarOverviewCard.esm.js.map +1 -1
  8. package/dist/components/CardContentFields/AboutField.esm.js +6 -3
  9. package/dist/components/CardContentFields/AboutField.esm.js.map +1 -1
  10. package/dist/components/CardContentFields/CardContentFields.esm.js +65 -51
  11. package/dist/components/CardContentFields/CardContentFields.esm.js.map +1 -1
  12. package/dist/components/ConfirmationDialog/ConfirmationDialog.esm.js +12 -7
  13. package/dist/components/ConfirmationDialog/ConfirmationDialog.esm.js.map +1 -1
  14. package/dist/components/CustomDialogTitle/CustomDialogTitle.esm.js +13 -10
  15. package/dist/components/CustomDialogTitle/CustomDialogTitle.esm.js.map +1 -1
  16. package/dist/components/DateSelector/DateSelector.esm.js +5 -5
  17. package/dist/components/DateSelector/DateSelector.esm.js.map +1 -1
  18. package/dist/components/DoubleDateSelector/DoubleDateSelector.esm.js +6 -2
  19. package/dist/components/DoubleDateSelector/DoubleDateSelector.esm.js.map +1 -1
  20. package/dist/components/EditProjectDialog/EditProjectDialog.esm.js +40 -36
  21. package/dist/components/EditProjectDialog/EditProjectDialog.esm.js.map +1 -1
  22. package/dist/components/EntityBazaarInfoCard/EntityBazaarInfoCard.esm.js +4 -3
  23. package/dist/components/EntityBazaarInfoCard/EntityBazaarInfoCard.esm.js.map +1 -1
  24. package/dist/components/EntityBazaarInfoContent/EntityBazaarInfoContent.esm.js +61 -54
  25. package/dist/components/EntityBazaarInfoContent/EntityBazaarInfoContent.esm.js.map +1 -1
  26. package/dist/components/HomePage/HomePage.esm.js +13 -10
  27. package/dist/components/HomePage/HomePage.esm.js.map +1 -1
  28. package/dist/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.esm.js +72 -59
  29. package/dist/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.esm.js.map +1 -1
  30. package/dist/components/InputField/InputField.esm.js +3 -3
  31. package/dist/components/InputField/InputField.esm.js.map +1 -1
  32. package/dist/components/InputSelector/InputSelector.esm.js +28 -25
  33. package/dist/components/InputSelector/InputSelector.esm.js.map +1 -1
  34. package/dist/components/LinkProjectDialog/LinkProjectDialog.esm.js +23 -18
  35. package/dist/components/LinkProjectDialog/LinkProjectDialog.esm.js.map +1 -1
  36. package/dist/components/ProjectCard/ProjectCard.esm.js +31 -20
  37. package/dist/components/ProjectCard/ProjectCard.esm.js.map +1 -1
  38. package/dist/components/ProjectDialog/ProjectDialog.esm.js +112 -96
  39. package/dist/components/ProjectDialog/ProjectDialog.esm.js.map +1 -1
  40. package/dist/components/ProjectPreview/ProjectPreview.esm.js +32 -28
  41. package/dist/components/ProjectPreview/ProjectPreview.esm.js.map +1 -1
  42. package/dist/components/ProjectSelector/ProjectSelector.esm.js +5 -5
  43. package/dist/components/ProjectSelector/ProjectSelector.esm.js.map +1 -1
  44. package/dist/components/SortMethodSelector/SortMethodSelector.esm.js +11 -9
  45. package/dist/components/SortMethodSelector/SortMethodSelector.esm.js.map +1 -1
  46. package/dist/components/SortView/SortView.esm.js +63 -52
  47. package/dist/components/SortView/SortView.esm.js.map +1 -1
  48. package/dist/components/StatusTag/StatusTag.esm.js +5 -5
  49. package/dist/components/StatusTag/StatusTag.esm.js.map +1 -1
  50. package/dist/components/UserSelector/UserSelector.esm.js +7 -6
  51. package/dist/components/UserSelector/UserSelector.esm.js.map +1 -1
  52. package/dist/components/VirtualizedListbox/VirtualizedListbox.esm.js +8 -7
  53. package/dist/components/VirtualizedListbox/VirtualizedListbox.esm.js.map +1 -1
  54. package/dist/index.d.ts +5 -7
  55. package/package.json +14 -8
@@ -1,4 +1,5 @@
1
- import React, { useState, useEffect } from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
2
3
  import Card from '@material-ui/core/Card';
3
4
  import CardHeader from '@material-ui/core/CardHeader';
4
5
  import Divider from '@material-ui/core/Divider';
@@ -112,18 +113,18 @@ const HomePageBazaarInfoCard = ({
112
113
  const links = [
113
114
  {
114
115
  label: "Entity page",
115
- icon: /* @__PURE__ */ React.createElement(DashboardIcon, null),
116
+ icon: /* @__PURE__ */ jsx(DashboardIcon, {}),
116
117
  href: bazaarProject.value?.entityRef ? getEntityPageLink() : "",
117
118
  disabled: bazaarProject.value?.entityRef === null
118
119
  },
119
120
  {
120
121
  label: bazaarProject.value?.entityRef ? "Unlink project" : "Link project",
121
- icon: bazaarProject.value?.entityRef ? /* @__PURE__ */ React.createElement(LinkOffIcon, null) : /* @__PURE__ */ React.createElement(InsertLinkIcon, null),
122
+ icon: bazaarProject.value?.entityRef ? /* @__PURE__ */ jsx(LinkOffIcon, {}) : /* @__PURE__ */ jsx(InsertLinkIcon, {}),
122
123
  onClick: handleLink
123
124
  },
124
125
  {
125
126
  label: isMember ? "Leave" : "Join",
126
- icon: isMember ? /* @__PURE__ */ React.createElement(ExitToAppIcon, null) : /* @__PURE__ */ React.createElement(PersonAddIcon, null),
127
+ icon: isMember ? /* @__PURE__ */ jsx(ExitToAppIcon, {}) : /* @__PURE__ */ jsx(PersonAddIcon, {}),
127
128
  href: "",
128
129
  onClick: async () => {
129
130
  handleMembersClick();
@@ -131,13 +132,13 @@ const HomePageBazaarInfoCard = ({
131
132
  },
132
133
  {
133
134
  label: "Community",
134
- icon: /* @__PURE__ */ React.createElement(ChatIcon, null),
135
+ icon: /* @__PURE__ */ jsx(ChatIcon, {}),
135
136
  href: bazaarProject.value?.community,
136
137
  disabled: !bazaarProject.value?.community || !isMember
137
138
  },
138
139
  {
139
140
  label: "Docs",
140
- icon: /* @__PURE__ */ React.createElement(Description, null),
141
+ icon: /* @__PURE__ */ jsx(Description, {}),
141
142
  href: bazaarProject.value?.docs,
142
143
  disabled: bazaarProject.value?.docs === null || bazaarProject.value?.docs === ""
143
144
  }
@@ -158,61 +159,73 @@ const HomePageBazaarInfoCard = ({
158
159
  }
159
160
  };
160
161
  if (bazaarProject.error) {
161
- return /* @__PURE__ */ React.createElement(Alert, { severity: "error" }, bazaarProject?.error?.message);
162
+ return /* @__PURE__ */ jsx(Alert, { severity: "error", children: bazaarProject?.error?.message });
162
163
  } else if (members.error) {
163
- return /* @__PURE__ */ React.createElement(Alert, { severity: "error" }, members?.error?.message);
164
+ return /* @__PURE__ */ jsx(Alert, { severity: "error", children: members?.error?.message });
164
165
  }
165
- return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
166
- LinkProjectDialog,
167
- {
168
- openProjectSelector,
169
- handleProjectSelectorClose: () => setOpenProjectSelector(false),
170
- catalogEntities: catalogEntities.value || [],
171
- bazaarProject: bazaarProject.value || initProject,
172
- fetchBazaarProject,
173
- initEntity
174
- }
175
- ), openUnlink && /* @__PURE__ */ React.createElement(
176
- ConfirmationDialog,
177
- {
178
- open: openUnlink,
179
- handleClose: () => setOpenUnlink(false),
180
- message: [
181
- "Are you sure you want to unlink ",
182
- /* @__PURE__ */ React.createElement("b", { className: classes.wordBreak }, parseEntityRef(bazaarProject.value?.entityRef).name),
183
- " from ",
184
- /* @__PURE__ */ React.createElement("b", { className: classes.wordBreak }, bazaarProject.value?.title),
185
- " ?"
186
- ],
187
- type: "unlink",
188
- handleSubmit: handleUnlinkSubmit
189
- }
190
- ), /* @__PURE__ */ React.createElement(Card, null, /* @__PURE__ */ React.createElement(
191
- EditProjectDialog,
192
- {
193
- bazaarProject: bazaarProject.value || initProject,
194
- openEdit,
195
- handleEditClose: () => setOpenEdit(false),
196
- handleCardClose: handleClose,
197
- fetchBazaarProject
198
- }
199
- ), /* @__PURE__ */ React.createElement(
200
- CardHeader,
201
- {
202
- title: /* @__PURE__ */ React.createElement(Typography, { paragraph: true, className: classes.wordBreak }, bazaarProject.value?.title || initProject.title),
203
- action: /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(IconButton, { onClick: () => setOpenEdit(true) }, /* @__PURE__ */ React.createElement(EditIcon, null)), /* @__PURE__ */ React.createElement(IconButton, { onClick: handleClose }, /* @__PURE__ */ React.createElement(CloseIcon, null))),
204
- subheader: /* @__PURE__ */ React.createElement(HeaderIconLinkRow, { links })
205
- }
206
- ), /* @__PURE__ */ React.createElement(Divider, null), /* @__PURE__ */ React.createElement(
207
- CardContentFields,
208
- {
209
- bazaarProject: bazaarProject.value || initProject,
210
- members: members.value || [],
211
- descriptionSize: 9,
212
- membersSize: 3,
213
- isMember
214
- }
215
- )));
166
+ return /* @__PURE__ */ jsxs("div", { children: [
167
+ /* @__PURE__ */ jsx(
168
+ LinkProjectDialog,
169
+ {
170
+ openProjectSelector,
171
+ handleProjectSelectorClose: () => setOpenProjectSelector(false),
172
+ catalogEntities: catalogEntities.value || [],
173
+ bazaarProject: bazaarProject.value || initProject,
174
+ fetchBazaarProject,
175
+ initEntity
176
+ }
177
+ ),
178
+ openUnlink && /* @__PURE__ */ jsx(
179
+ ConfirmationDialog,
180
+ {
181
+ open: openUnlink,
182
+ handleClose: () => setOpenUnlink(false),
183
+ message: [
184
+ "Are you sure you want to unlink ",
185
+ /* @__PURE__ */ jsx("b", { className: classes.wordBreak, children: parseEntityRef(bazaarProject.value?.entityRef).name }),
186
+ " from ",
187
+ /* @__PURE__ */ jsx("b", { className: classes.wordBreak, children: bazaarProject.value?.title }),
188
+ " ?"
189
+ ],
190
+ type: "unlink",
191
+ handleSubmit: handleUnlinkSubmit
192
+ }
193
+ ),
194
+ /* @__PURE__ */ jsxs(Card, { children: [
195
+ /* @__PURE__ */ jsx(
196
+ EditProjectDialog,
197
+ {
198
+ bazaarProject: bazaarProject.value || initProject,
199
+ openEdit,
200
+ handleEditClose: () => setOpenEdit(false),
201
+ handleCardClose: handleClose,
202
+ fetchBazaarProject
203
+ }
204
+ ),
205
+ /* @__PURE__ */ jsx(
206
+ CardHeader,
207
+ {
208
+ title: /* @__PURE__ */ jsx(Typography, { paragraph: true, className: classes.wordBreak, children: bazaarProject.value?.title || initProject.title }),
209
+ action: /* @__PURE__ */ jsxs("div", { children: [
210
+ /* @__PURE__ */ jsx(IconButton, { onClick: () => setOpenEdit(true), children: /* @__PURE__ */ jsx(EditIcon, {}) }),
211
+ /* @__PURE__ */ jsx(IconButton, { onClick: handleClose, children: /* @__PURE__ */ jsx(CloseIcon, {}) })
212
+ ] }),
213
+ subheader: /* @__PURE__ */ jsx(HeaderIconLinkRow, { links })
214
+ }
215
+ ),
216
+ /* @__PURE__ */ jsx(Divider, {}),
217
+ /* @__PURE__ */ jsx(
218
+ CardContentFields,
219
+ {
220
+ bazaarProject: bazaarProject.value || initProject,
221
+ members: members.value || [],
222
+ descriptionSize: 9,
223
+ membersSize: 3,
224
+ isMember
225
+ }
226
+ )
227
+ ] })
228
+ ] });
216
229
  };
217
230
 
218
231
  export { HomePageBazaarInfoCard };
@@ -1 +1 @@
1
- {"version":3,"file":"HomePageBazaarInfoCard.esm.js","sources":["../../../src/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport React, { useState, useEffect } from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Divider from '@material-ui/core/Divider';\nimport IconButton from '@material-ui/core/IconButton';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport {\n HeaderIconLinkRow,\n IconLinkVerticalProps,\n} from '@backstage/core-components';\nimport EditIcon from '@material-ui/icons/Edit';\nimport ChatIcon from '@material-ui/icons/Chat';\nimport PersonAddIcon from '@material-ui/icons/PersonAdd';\nimport InsertLinkIcon from '@material-ui/icons/InsertLink';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport CloseIcon from '@material-ui/icons/Close';\nimport LinkOffIcon from '@material-ui/icons/LinkOff';\nimport Description from '@material-ui/icons/Description';\nimport { EditProjectDialog } from '../EditProjectDialog';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport {\n useApi,\n identityApiRef,\n useRouteRef,\n alertApiRef,\n} from '@backstage/core-plugin-api';\nimport { Member, BazaarProject } from '../../types';\nimport { bazaarApiRef } from '../../api';\nimport Alert from '@material-ui/lab/Alert';\nimport useAsyncFn from 'react-use/esm/useAsyncFn';\nimport { catalogApiRef, entityRouteRef } from '@backstage/plugin-catalog-react';\n\nimport {\n stringifyEntityRef,\n Entity,\n parseEntityRef,\n} from '@backstage/catalog-model';\n\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog';\nimport { CardContentFields } from '../CardContentFields/CardContentFields';\nimport { LinkProjectDialog } from '../LinkProjectDialog';\nimport {\n fetchCatalogItems,\n fetchProjectMembers,\n} from '../../util/fetchMethods';\nimport { parseBazaarResponse } from '../../util/parseMethods';\n\nconst useStyles = makeStyles({\n wordBreak: {\n wordBreak: 'break-all',\n whiteSpace: 'normal',\n margin: '-0.25rem 0',\n },\n});\n\ntype Props = {\n initProject: BazaarProject;\n handleClose: () => void;\n initEntity: Entity;\n};\n\nexport const HomePageBazaarInfoCard = ({\n initProject,\n handleClose,\n initEntity,\n}: Props) => {\n const classes = useStyles();\n const entityLink = useRouteRef(entityRouteRef);\n const bazaarApi = useApi(bazaarApiRef);\n const identity = useApi(identityApiRef);\n const alertApi = useApi(alertApiRef);\n const catalogApi = useApi(catalogApiRef);\n const [openEdit, setOpenEdit] = useState(false);\n const [openProjectSelector, setOpenProjectSelector] = useState(false);\n const [openUnlink, setOpenUnlink] = useState(false);\n const [isMember, setIsMember] = useState(false);\n\n const [catalogEntities, fetchCatalogEntities] = useAsyncFn(async () => {\n const entities = await fetchCatalogItems(catalogApi);\n const bazaarProjects = await bazaarApi.getProjects();\n const bazaarLinkedRefs: string[] = bazaarProjects.data\n .filter((entity: any) => entity.entity_ref !== null)\n .map((entity: any) => entity.entity_ref);\n\n return entities.filter(\n (entity: Entity) =>\n !bazaarLinkedRefs.includes(stringifyEntityRef(entity)),\n );\n });\n\n const [bazaarProject, fetchBazaarProject] = useAsyncFn(async () => {\n const response = await bazaarApi.getProjectById(initProject.id);\n return await parseBazaarResponse(response);\n });\n\n const [members, fetchMembers] = useAsyncFn(async () => {\n return fetchProjectMembers(bazaarApi, bazaarProject.value ?? initProject);\n });\n\n const [userId, fetchUserId] = useAsyncFn(async () => {\n return await (\n await identity.getProfileInfo()\n ).displayName;\n });\n\n useEffect(() => {\n fetchMembers();\n fetchBazaarProject();\n fetchCatalogEntities();\n fetchUserId();\n }, [fetchMembers, fetchBazaarProject, fetchCatalogEntities, fetchUserId]);\n\n useEffect(() => {\n if (members.value && userId.value) {\n setIsMember(\n members.value\n ?.map((member: Member) => member.userId)\n .indexOf(userId.value) >= 0,\n );\n }\n }, [bazaarProject.value, members, identity, userId.value]);\n\n const handleMembersClick = async () => {\n if (userId.value) {\n if (!isMember) {\n await bazaarApi.addMember(bazaarProject.value!.id, userId.value);\n } else {\n await bazaarApi.deleteMember(bazaarProject.value!.id, userId.value);\n }\n setIsMember(!isMember);\n fetchMembers();\n }\n };\n\n const getEntityPageLink = () => {\n if (bazaarProject?.value?.entityRef) {\n const { name, kind, namespace } = parseEntityRef(\n bazaarProject.value.entityRef,\n );\n return entityLink({ kind, namespace, name });\n }\n return '';\n };\n\n const handleLink = () => {\n if (bazaarProject.value?.entityRef) {\n setOpenUnlink(true);\n } else {\n fetchCatalogEntities();\n setOpenProjectSelector(true);\n }\n };\n\n const links: IconLinkVerticalProps[] = [\n {\n label: 'Entity page',\n icon: <DashboardIcon />,\n href: bazaarProject.value?.entityRef ? getEntityPageLink() : '',\n disabled: bazaarProject.value?.entityRef === null,\n },\n {\n label: bazaarProject.value?.entityRef ? 'Unlink project' : 'Link project',\n icon: bazaarProject.value?.entityRef ? (\n <LinkOffIcon />\n ) : (\n <InsertLinkIcon />\n ),\n onClick: handleLink,\n },\n {\n label: isMember ? 'Leave' : 'Join',\n icon: isMember ? <ExitToAppIcon /> : <PersonAddIcon />,\n href: '',\n onClick: async () => {\n handleMembersClick();\n },\n },\n {\n label: 'Community',\n icon: <ChatIcon />,\n href: bazaarProject.value?.community,\n disabled: !bazaarProject.value?.community || !isMember,\n },\n {\n label: 'Docs',\n icon: <Description />,\n href: bazaarProject.value?.docs,\n disabled:\n bazaarProject.value?.docs === null || bazaarProject.value?.docs === '',\n },\n ];\n\n const handleUnlinkSubmit = async () => {\n const updateResponse = await bazaarApi.updateProject({\n ...bazaarProject.value,\n entityRef: null,\n });\n\n if (updateResponse.status === 'ok') {\n setOpenUnlink(false);\n fetchBazaarProject();\n alertApi.post({\n message: `Unlinked entity '${\n parseEntityRef(bazaarProject.value?.entityRef!).name\n }' from the project ${bazaarProject.value?.title}`,\n severity: 'success',\n display: 'transient',\n });\n }\n };\n\n if (bazaarProject.error) {\n return <Alert severity=\"error\">{bazaarProject?.error?.message}</Alert>;\n } else if (members.error) {\n return <Alert severity=\"error\">{members?.error?.message}</Alert>;\n }\n\n return (\n <div>\n <LinkProjectDialog\n openProjectSelector={openProjectSelector}\n handleProjectSelectorClose={() => setOpenProjectSelector(false)}\n catalogEntities={catalogEntities.value || []}\n bazaarProject={bazaarProject.value || initProject}\n fetchBazaarProject={fetchBazaarProject}\n initEntity={initEntity}\n />\n\n {openUnlink && (\n <ConfirmationDialog\n open={openUnlink}\n handleClose={() => setOpenUnlink(false)}\n message={[\n 'Are you sure you want to unlink ',\n <b className={classes.wordBreak}>\n {parseEntityRef(bazaarProject.value?.entityRef!).name}\n </b>,\n ' from ',\n <b className={classes.wordBreak}>{bazaarProject.value?.title}</b>,\n ' ?',\n ]}\n type=\"unlink\"\n handleSubmit={handleUnlinkSubmit}\n />\n )}\n\n <Card>\n <EditProjectDialog\n bazaarProject={bazaarProject.value || initProject}\n openEdit={openEdit}\n handleEditClose={() => setOpenEdit(false)}\n handleCardClose={handleClose}\n fetchBazaarProject={fetchBazaarProject}\n />\n\n <CardHeader\n title={\n <Typography paragraph className={classes.wordBreak}>\n {bazaarProject.value?.title || initProject.title}\n </Typography>\n }\n action={\n <div>\n <IconButton onClick={() => setOpenEdit(true)}>\n <EditIcon />\n </IconButton>\n <IconButton onClick={handleClose}>\n <CloseIcon />\n </IconButton>\n </div>\n }\n subheader={<HeaderIconLinkRow links={links} />}\n />\n <Divider />\n\n <CardContentFields\n bazaarProject={bazaarProject.value || initProject}\n members={members.value || []}\n descriptionSize={9}\n membersSize={3}\n isMember={isMember}\n />\n </Card>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HomePageBazaarInfoCard.esm.js","sources":["../../../src/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport { useState, useEffect } from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Divider from '@material-ui/core/Divider';\nimport IconButton from '@material-ui/core/IconButton';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport {\n HeaderIconLinkRow,\n IconLinkVerticalProps,\n} from '@backstage/core-components';\nimport EditIcon from '@material-ui/icons/Edit';\nimport ChatIcon from '@material-ui/icons/Chat';\nimport PersonAddIcon from '@material-ui/icons/PersonAdd';\nimport InsertLinkIcon from '@material-ui/icons/InsertLink';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport CloseIcon from '@material-ui/icons/Close';\nimport LinkOffIcon from '@material-ui/icons/LinkOff';\nimport Description from '@material-ui/icons/Description';\nimport { EditProjectDialog } from '../EditProjectDialog';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport {\n useApi,\n identityApiRef,\n useRouteRef,\n alertApiRef,\n} from '@backstage/core-plugin-api';\nimport { Member, BazaarProject } from '../../types';\nimport { bazaarApiRef } from '../../api';\nimport Alert from '@material-ui/lab/Alert';\nimport useAsyncFn from 'react-use/esm/useAsyncFn';\nimport { catalogApiRef, entityRouteRef } from '@backstage/plugin-catalog-react';\n\nimport {\n stringifyEntityRef,\n Entity,\n parseEntityRef,\n} from '@backstage/catalog-model';\n\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog';\nimport { CardContentFields } from '../CardContentFields/CardContentFields';\nimport { LinkProjectDialog } from '../LinkProjectDialog';\nimport {\n fetchCatalogItems,\n fetchProjectMembers,\n} from '../../util/fetchMethods';\nimport { parseBazaarResponse } from '../../util/parseMethods';\n\nconst useStyles = makeStyles({\n wordBreak: {\n wordBreak: 'break-all',\n whiteSpace: 'normal',\n margin: '-0.25rem 0',\n },\n});\n\ntype Props = {\n initProject: BazaarProject;\n handleClose: () => void;\n initEntity: Entity;\n};\n\nexport const HomePageBazaarInfoCard = ({\n initProject,\n handleClose,\n initEntity,\n}: Props) => {\n const classes = useStyles();\n const entityLink = useRouteRef(entityRouteRef);\n const bazaarApi = useApi(bazaarApiRef);\n const identity = useApi(identityApiRef);\n const alertApi = useApi(alertApiRef);\n const catalogApi = useApi(catalogApiRef);\n const [openEdit, setOpenEdit] = useState(false);\n const [openProjectSelector, setOpenProjectSelector] = useState(false);\n const [openUnlink, setOpenUnlink] = useState(false);\n const [isMember, setIsMember] = useState(false);\n\n const [catalogEntities, fetchCatalogEntities] = useAsyncFn(async () => {\n const entities = await fetchCatalogItems(catalogApi);\n const bazaarProjects = await bazaarApi.getProjects();\n const bazaarLinkedRefs: string[] = bazaarProjects.data\n .filter((entity: any) => entity.entity_ref !== null)\n .map((entity: any) => entity.entity_ref);\n\n return entities.filter(\n (entity: Entity) =>\n !bazaarLinkedRefs.includes(stringifyEntityRef(entity)),\n );\n });\n\n const [bazaarProject, fetchBazaarProject] = useAsyncFn(async () => {\n const response = await bazaarApi.getProjectById(initProject.id);\n return await parseBazaarResponse(response);\n });\n\n const [members, fetchMembers] = useAsyncFn(async () => {\n return fetchProjectMembers(bazaarApi, bazaarProject.value ?? initProject);\n });\n\n const [userId, fetchUserId] = useAsyncFn(async () => {\n return await (\n await identity.getProfileInfo()\n ).displayName;\n });\n\n useEffect(() => {\n fetchMembers();\n fetchBazaarProject();\n fetchCatalogEntities();\n fetchUserId();\n }, [fetchMembers, fetchBazaarProject, fetchCatalogEntities, fetchUserId]);\n\n useEffect(() => {\n if (members.value && userId.value) {\n setIsMember(\n members.value\n ?.map((member: Member) => member.userId)\n .indexOf(userId.value) >= 0,\n );\n }\n }, [bazaarProject.value, members, identity, userId.value]);\n\n const handleMembersClick = async () => {\n if (userId.value) {\n if (!isMember) {\n await bazaarApi.addMember(bazaarProject.value!.id, userId.value);\n } else {\n await bazaarApi.deleteMember(bazaarProject.value!.id, userId.value);\n }\n setIsMember(!isMember);\n fetchMembers();\n }\n };\n\n const getEntityPageLink = () => {\n if (bazaarProject?.value?.entityRef) {\n const { name, kind, namespace } = parseEntityRef(\n bazaarProject.value.entityRef,\n );\n return entityLink({ kind, namespace, name });\n }\n return '';\n };\n\n const handleLink = () => {\n if (bazaarProject.value?.entityRef) {\n setOpenUnlink(true);\n } else {\n fetchCatalogEntities();\n setOpenProjectSelector(true);\n }\n };\n\n const links: IconLinkVerticalProps[] = [\n {\n label: 'Entity page',\n icon: <DashboardIcon />,\n href: bazaarProject.value?.entityRef ? getEntityPageLink() : '',\n disabled: bazaarProject.value?.entityRef === null,\n },\n {\n label: bazaarProject.value?.entityRef ? 'Unlink project' : 'Link project',\n icon: bazaarProject.value?.entityRef ? (\n <LinkOffIcon />\n ) : (\n <InsertLinkIcon />\n ),\n onClick: handleLink,\n },\n {\n label: isMember ? 'Leave' : 'Join',\n icon: isMember ? <ExitToAppIcon /> : <PersonAddIcon />,\n href: '',\n onClick: async () => {\n handleMembersClick();\n },\n },\n {\n label: 'Community',\n icon: <ChatIcon />,\n href: bazaarProject.value?.community,\n disabled: !bazaarProject.value?.community || !isMember,\n },\n {\n label: 'Docs',\n icon: <Description />,\n href: bazaarProject.value?.docs,\n disabled:\n bazaarProject.value?.docs === null || bazaarProject.value?.docs === '',\n },\n ];\n\n const handleUnlinkSubmit = async () => {\n const updateResponse = await bazaarApi.updateProject({\n ...bazaarProject.value,\n entityRef: null,\n });\n\n if (updateResponse.status === 'ok') {\n setOpenUnlink(false);\n fetchBazaarProject();\n alertApi.post({\n message: `Unlinked entity '${\n parseEntityRef(bazaarProject.value?.entityRef!).name\n }' from the project ${bazaarProject.value?.title}`,\n severity: 'success',\n display: 'transient',\n });\n }\n };\n\n if (bazaarProject.error) {\n return <Alert severity=\"error\">{bazaarProject?.error?.message}</Alert>;\n } else if (members.error) {\n return <Alert severity=\"error\">{members?.error?.message}</Alert>;\n }\n\n return (\n <div>\n <LinkProjectDialog\n openProjectSelector={openProjectSelector}\n handleProjectSelectorClose={() => setOpenProjectSelector(false)}\n catalogEntities={catalogEntities.value || []}\n bazaarProject={bazaarProject.value || initProject}\n fetchBazaarProject={fetchBazaarProject}\n initEntity={initEntity}\n />\n\n {openUnlink && (\n <ConfirmationDialog\n open={openUnlink}\n handleClose={() => setOpenUnlink(false)}\n message={[\n 'Are you sure you want to unlink ',\n <b className={classes.wordBreak}>\n {parseEntityRef(bazaarProject.value?.entityRef!).name}\n </b>,\n ' from ',\n <b className={classes.wordBreak}>{bazaarProject.value?.title}</b>,\n ' ?',\n ]}\n type=\"unlink\"\n handleSubmit={handleUnlinkSubmit}\n />\n )}\n\n <Card>\n <EditProjectDialog\n bazaarProject={bazaarProject.value || initProject}\n openEdit={openEdit}\n handleEditClose={() => setOpenEdit(false)}\n handleCardClose={handleClose}\n fetchBazaarProject={fetchBazaarProject}\n />\n\n <CardHeader\n title={\n <Typography paragraph className={classes.wordBreak}>\n {bazaarProject.value?.title || initProject.title}\n </Typography>\n }\n action={\n <div>\n <IconButton onClick={() => setOpenEdit(true)}>\n <EditIcon />\n </IconButton>\n <IconButton onClick={handleClose}>\n <CloseIcon />\n </IconButton>\n </div>\n }\n subheader={<HeaderIconLinkRow links={links} />}\n />\n <Divider />\n\n <CardContentFields\n bazaarProject={bazaarProject.value || initProject}\n members={members.value || []}\n descriptionSize={9}\n membersSize={3}\n isMember={isMember}\n />\n </Card>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { Controller } from 'react-hook-form';
3
3
  import TextField from '@material-ui/core/TextField';
4
4
 
@@ -11,13 +11,13 @@ const InputField = ({
11
11
  rules
12
12
  }) => {
13
13
  const label = inputType.charAt(0).toLocaleUpperCase("en-US") + inputType.slice(1);
14
- return /* @__PURE__ */ React.createElement(
14
+ return /* @__PURE__ */ jsx(
15
15
  Controller,
16
16
  {
17
17
  name: inputType,
18
18
  control,
19
19
  rules,
20
- render: ({ field }) => /* @__PURE__ */ React.createElement(
20
+ render: ({ field }) => /* @__PURE__ */ jsx(
21
21
  TextField,
22
22
  {
23
23
  ...field,
@@ -1 +1 @@
1
- {"version":3,"file":"InputField.esm.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport React from 'react';\nimport {\n Controller,\n Control,\n FieldError,\n ValidationRule,\n} from 'react-hook-form';\nimport TextField from '@material-ui/core/TextField';\nimport { FormValues } from '../../types';\n\ntype Rules = {\n required: boolean;\n pattern?: ValidationRule<RegExp> | undefined;\n};\n\ntype Props = {\n inputType: 'description' | 'community' | 'responsible' | 'title' | 'docs';\n error?: FieldError | undefined;\n control: Control<FormValues, object>;\n helperText?: string;\n placeholder?: string;\n rules?: Rules | undefined;\n};\n\nexport const InputField = ({\n inputType,\n error,\n control,\n helperText,\n placeholder,\n rules,\n}: Props) => {\n const label =\n inputType.charAt(0).toLocaleUpperCase('en-US') + inputType.slice(1);\n\n return (\n <Controller\n name={inputType}\n control={control}\n rules={rules}\n render={({ field }) => (\n <TextField\n {...field}\n required={rules?.required}\n margin=\"dense\"\n multiline\n id=\"title\"\n type=\"text\"\n fullWidth\n label={label}\n placeholder={placeholder}\n error={!!error}\n helperText={error && helperText}\n />\n )}\n />\n );\n};\n"],"names":[],"mappings":";;;;AAwCO,MAAM,aAAa,CAAC;AAAA,EACzB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAa,KAAA;AACX,EAAM,MAAA,KAAA,GACJ,SAAU,CAAA,MAAA,CAAO,CAAC,CAAA,CAAE,kBAAkB,OAAO,CAAA,GAAI,SAAU,CAAA,KAAA,CAAM,CAAC,CAAA;AAEpE,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAM,EAAA,SAAA;AAAA,MACN,OAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EACT,qBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,UAAU,KAAO,EAAA,QAAA;AAAA,UACjB,MAAO,EAAA,OAAA;AAAA,UACP,SAAS,EAAA,IAAA;AAAA,UACT,EAAG,EAAA,OAAA;AAAA,UACH,IAAK,EAAA,MAAA;AAAA,UACL,SAAS,EAAA,IAAA;AAAA,UACT,KAAA;AAAA,UACA,WAAA;AAAA,UACA,KAAA,EAAO,CAAC,CAAC,KAAA;AAAA,UACT,YAAY,KAAS,IAAA;AAAA;AAAA;AACvB;AAAA,GAEJ;AAEJ;;;;"}
1
+ {"version":3,"file":"InputField.esm.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport {\n Controller,\n Control,\n FieldError,\n ValidationRule,\n} from 'react-hook-form';\nimport TextField from '@material-ui/core/TextField';\nimport { FormValues } from '../../types';\n\ntype Rules = {\n required: boolean;\n pattern?: ValidationRule<RegExp> | undefined;\n};\n\ntype Props = {\n inputType: 'description' | 'community' | 'responsible' | 'title' | 'docs';\n error?: FieldError | undefined;\n control: Control<FormValues, object>;\n helperText?: string;\n placeholder?: string;\n rules?: Rules | undefined;\n};\n\nexport const InputField = ({\n inputType,\n error,\n control,\n helperText,\n placeholder,\n rules,\n}: Props) => {\n const label =\n inputType.charAt(0).toLocaleUpperCase('en-US') + inputType.slice(1);\n\n return (\n <Controller\n name={inputType}\n control={control}\n rules={rules}\n render={({ field }) => (\n <TextField\n {...field}\n required={rules?.required}\n margin=\"dense\"\n multiline\n id=\"title\"\n type=\"text\"\n fullWidth\n label={label}\n placeholder={placeholder}\n error={!!error}\n helperText={error && helperText}\n />\n )}\n />\n );\n};\n"],"names":[],"mappings":";;;;AAuCO,MAAM,aAAa,CAAC;AAAA,EACzB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAa,KAAA;AACX,EAAM,MAAA,KAAA,GACJ,SAAU,CAAA,MAAA,CAAO,CAAC,CAAA,CAAE,kBAAkB,OAAO,CAAA,GAAI,SAAU,CAAA,KAAA,CAAM,CAAC,CAAA;AAEpE,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAM,EAAA,SAAA;AAAA,MACN,OAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EACT,qBAAA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,UAAU,KAAO,EAAA,QAAA;AAAA,UACjB,MAAO,EAAA,OAAA;AAAA,UACP,SAAS,EAAA,IAAA;AAAA,UACT,EAAG,EAAA,OAAA;AAAA,UACH,IAAK,EAAA,MAAA;AAAA,UACL,SAAS,EAAA,IAAA;AAAA,UACT,KAAA;AAAA,UACA,WAAA;AAAA,UACA,KAAA,EAAO,CAAC,CAAC,KAAA;AAAA,UACT,YAAY,KAAS,IAAA;AAAA;AAAA;AACvB;AAAA,GAEJ;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import InputLabel from '@material-ui/core/InputLabel';
3
3
  import MenuItem from '@material-ui/core/MenuItem';
4
4
  import FormControl from '@material-ui/core/FormControl';
@@ -7,7 +7,7 @@ import { Controller } from 'react-hook-form';
7
7
 
8
8
  const InputSelector = ({ name, options, control, error }) => {
9
9
  const label = name.charAt(0).toLocaleUpperCase("en-US") + name.slice(1);
10
- return /* @__PURE__ */ React.createElement(
10
+ return /* @__PURE__ */ jsx(
11
11
  Controller,
12
12
  {
13
13
  name,
@@ -15,30 +15,33 @@ const InputSelector = ({ name, options, control, error }) => {
15
15
  rules: {
16
16
  required: true
17
17
  },
18
- render: ({ field }) => /* @__PURE__ */ React.createElement(FormControl, { fullWidth: true }, /* @__PURE__ */ React.createElement(
19
- InputLabel,
20
- {
21
- required: true,
22
- htmlFor: "demo-simple-select-outlined",
23
- id: "demo-simple-select-outlined-label",
24
- style: {
25
- marginTop: "0.25rem"
18
+ render: ({ field }) => /* @__PURE__ */ jsxs(FormControl, { fullWidth: true, children: [
19
+ /* @__PURE__ */ jsx(
20
+ InputLabel,
21
+ {
22
+ required: true,
23
+ htmlFor: "demo-simple-select-outlined",
24
+ id: "demo-simple-select-outlined-label",
25
+ style: {
26
+ marginTop: "0.25rem"
27
+ },
28
+ children: label
26
29
  }
27
- },
28
- label
29
- ), /* @__PURE__ */ React.createElement(
30
- Select,
31
- {
32
- ...field,
33
- labelId: "demo-simple-select-outlined-label",
34
- id: "demo-simple-select-outlined",
35
- label,
36
- error: !!error
37
- },
38
- options.map((option) => {
39
- return /* @__PURE__ */ React.createElement(MenuItem, { key: option, value: option }, option);
40
- })
41
- ))
30
+ ),
31
+ /* @__PURE__ */ jsx(
32
+ Select,
33
+ {
34
+ ...field,
35
+ labelId: "demo-simple-select-outlined-label",
36
+ id: "demo-simple-select-outlined",
37
+ label,
38
+ error: !!error,
39
+ children: options.map((option) => {
40
+ return /* @__PURE__ */ jsx(MenuItem, { value: option, children: option }, option);
41
+ })
42
+ }
43
+ )
44
+ ] })
42
45
  }
43
46
  );
44
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InputSelector.esm.js","sources":["../../../src/components/InputSelector/InputSelector.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport React from 'react';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport { Controller, Control, FieldError } from 'react-hook-form';\nimport { FormValues } from '../../types';\n\ntype Props = {\n options: string[];\n control: Control<FormValues, object>;\n name: 'status' | 'size';\n error?: FieldError | undefined;\n};\n\nexport const InputSelector = ({ name, options, control, error }: Props) => {\n const label = name.charAt(0).toLocaleUpperCase('en-US') + name.slice(1);\n\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n required: true,\n }}\n render={({ field }) => (\n <FormControl fullWidth>\n <InputLabel\n required\n htmlFor=\"demo-simple-select-outlined\"\n id=\"demo-simple-select-outlined-label\"\n style={{\n marginTop: '0.25rem',\n }}\n >\n {label}\n </InputLabel>\n <Select\n {...field}\n labelId=\"demo-simple-select-outlined-label\"\n id=\"demo-simple-select-outlined\"\n label={label}\n error={!!error}\n >\n {options.map(option => {\n return (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n );\n })}\n </Select>\n </FormControl>\n )}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AA+BO,MAAM,gBAAgB,CAAC,EAAE,MAAM,OAAS,EAAA,OAAA,EAAS,OAAmB,KAAA;AACzE,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,MAAA,CAAO,CAAC,CAAA,CAAE,kBAAkB,OAAO,CAAA,GAAI,IAAK,CAAA,KAAA,CAAM,CAAC,CAAA;AAEtE,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACL,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,uBACR,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,WAAS,IACpB,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,QAAQ,EAAA,IAAA;AAAA,UACR,OAAQ,EAAA,6BAAA;AAAA,UACR,EAAG,EAAA,mCAAA;AAAA,UACH,KAAO,EAAA;AAAA,YACL,SAAW,EAAA;AAAA;AACb,SAAA;AAAA,QAEC;AAAA,OAEH,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,OAAQ,EAAA,mCAAA;AAAA,UACR,EAAG,EAAA,6BAAA;AAAA,UACH,KAAA;AAAA,UACA,KAAA,EAAO,CAAC,CAAC;AAAA,SAAA;AAAA,QAER,OAAA,CAAQ,IAAI,CAAU,MAAA,KAAA;AACrB,UAAA,2CACG,QAAS,EAAA,EAAA,GAAA,EAAK,MAAQ,EAAA,KAAA,EAAO,UAC3B,MACH,CAAA;AAAA,SAEH;AAAA,OAEL;AAAA;AAAA,GAEJ;AAEJ;;;;"}
1
+ {"version":3,"file":"InputSelector.esm.js","sources":["../../../src/components/InputSelector/InputSelector.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport { Controller, Control, FieldError } from 'react-hook-form';\nimport { FormValues } from '../../types';\n\ntype Props = {\n options: string[];\n control: Control<FormValues, object>;\n name: 'status' | 'size';\n error?: FieldError | undefined;\n};\n\nexport const InputSelector = ({ name, options, control, error }: Props) => {\n const label = name.charAt(0).toLocaleUpperCase('en-US') + name.slice(1);\n\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n required: true,\n }}\n render={({ field }) => (\n <FormControl fullWidth>\n <InputLabel\n required\n htmlFor=\"demo-simple-select-outlined\"\n id=\"demo-simple-select-outlined-label\"\n style={{\n marginTop: '0.25rem',\n }}\n >\n {label}\n </InputLabel>\n <Select\n {...field}\n labelId=\"demo-simple-select-outlined-label\"\n id=\"demo-simple-select-outlined\"\n label={label}\n error={!!error}\n >\n {options.map(option => {\n return (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n );\n })}\n </Select>\n </FormControl>\n )}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AA8BO,MAAM,gBAAgB,CAAC,EAAE,MAAM,OAAS,EAAA,OAAA,EAAS,OAAmB,KAAA;AACzE,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,MAAA,CAAO,CAAC,CAAA,CAAE,kBAAkB,OAAO,CAAA,GAAI,IAAK,CAAA,KAAA,CAAM,CAAC,CAAA;AAEtE,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACL,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,uBACR,IAAA,CAAA,WAAA,EAAA,EAAY,WAAS,IACpB,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,QAAQ,EAAA,IAAA;AAAA,YACR,OAAQ,EAAA,6BAAA;AAAA,YACR,EAAG,EAAA,mCAAA;AAAA,YACH,KAAO,EAAA;AAAA,cACL,SAAW,EAAA;AAAA,aACb;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACE,GAAG,KAAA;AAAA,YACJ,OAAQ,EAAA,mCAAA;AAAA,YACR,EAAG,EAAA,6BAAA;AAAA,YACH,KAAA;AAAA,YACA,KAAA,EAAO,CAAC,CAAC,KAAA;AAAA,YAER,QAAA,EAAA,OAAA,CAAQ,IAAI,CAAU,MAAA,KAAA;AACrB,cAAA,uBACG,GAAA,CAAA,QAAA,EAAA,EAAsB,KAAO,EAAA,MAAA,EAC3B,oBADY,MAEf,CAAA;AAAA,aAEH;AAAA;AAAA;AACH,OACF,EAAA;AAAA;AAAA,GAEJ;AAEJ;;;;"}
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
2
3
  import Dialog from '@material-ui/core/Dialog';
3
4
  import MuiDialogActions from '@material-ui/core/DialogActions';
4
5
  import Button from '@material-ui/core/Button';
@@ -45,23 +46,27 @@ const LinkProjectDialog = ({
45
46
  });
46
47
  }
47
48
  };
48
- return /* @__PURE__ */ React.createElement(Dialog, { onClose: handleProjectSelectorClose, open: openProjectSelector }, /* @__PURE__ */ React.createElement(
49
- CustomDialogTitle,
50
- {
51
- id: "customized-dialog-title",
52
- onClose: handleProjectSelectorClose
53
- },
54
- "Select entity"
55
- ), /* @__PURE__ */ React.createElement(MuiDialogContent, { className: classes.content, dividers: true }, /* @__PURE__ */ React.createElement(
56
- ProjectSelector,
57
- {
58
- label: "",
59
- onChange: handleEntityClick,
60
- catalogEntities: catalogEntities || [],
61
- disableClearable: true,
62
- defaultValue: catalogEntities[0] || null
63
- }
64
- )), /* @__PURE__ */ React.createElement(MuiDialogActions, null, /* @__PURE__ */ React.createElement(Button, { onClick: handleSubmit, color: "primary", type: "submit" }, "OK")));
49
+ return /* @__PURE__ */ jsxs(Dialog, { onClose: handleProjectSelectorClose, open: openProjectSelector, children: [
50
+ /* @__PURE__ */ jsx(
51
+ CustomDialogTitle,
52
+ {
53
+ id: "customized-dialog-title",
54
+ onClose: handleProjectSelectorClose,
55
+ children: "Select entity"
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx(MuiDialogContent, { className: classes.content, dividers: true, children: /* @__PURE__ */ jsx(
59
+ ProjectSelector,
60
+ {
61
+ label: "",
62
+ onChange: handleEntityClick,
63
+ catalogEntities: catalogEntities || [],
64
+ disableClearable: true,
65
+ defaultValue: catalogEntities[0] || null
66
+ }
67
+ ) }),
68
+ /* @__PURE__ */ jsx(MuiDialogActions, { children: /* @__PURE__ */ jsx(Button, { onClick: handleSubmit, color: "primary", type: "submit", children: "OK" }) })
69
+ ] });
65
70
  };
66
71
 
67
72
  export { LinkProjectDialog };
@@ -1 +1 @@
1
- {"version":3,"file":"LinkProjectDialog.esm.js","sources":["../../../src/components/LinkProjectDialog/LinkProjectDialog.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport React, { useState } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ProjectSelector } from '../ProjectSelector';\nimport { CustomDialogTitle } from '../CustomDialogTitle';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\n\nimport { bazaarApiRef } from '../../api';\nimport { useApi, alertApiRef } from '@backstage/core-plugin-api';\n\nimport { BazaarProject } from '../../types';\n\ntype Props = {\n openProjectSelector: boolean;\n handleProjectSelectorClose: () => void;\n catalogEntities: Entity[];\n bazaarProject: BazaarProject;\n fetchBazaarProject: () => Promise<BazaarProject | null>;\n initEntity: Entity;\n};\n\nconst useStyles = makeStyles({\n content: { padding: '0 1rem' },\n});\n\nexport const LinkProjectDialog = ({\n openProjectSelector,\n handleProjectSelectorClose,\n catalogEntities,\n bazaarProject,\n fetchBazaarProject,\n initEntity,\n}: Props) => {\n const classes = useStyles();\n const bazaarApi = useApi(bazaarApiRef);\n const alertApi = useApi(alertApiRef);\n const [selectedEntity, setSelectedEntity] = useState(initEntity);\n const [selectedEntityName, setSelectedEntityName] = useState('');\n const handleEntityClick = (entity: Entity) => {\n setSelectedEntity(entity);\n setSelectedEntityName(entity.metadata.name);\n };\n\n const handleSubmit = async () => {\n handleProjectSelectorClose();\n\n const updateResponse = await bazaarApi.updateProject({\n ...bazaarProject,\n entityRef: stringifyEntityRef(selectedEntity!),\n });\n if (updateResponse.status === 'ok') {\n fetchBazaarProject();\n alertApi.post({\n message: `linked entity '${selectedEntityName}' to the project ${bazaarProject.title}`,\n severity: 'success',\n display: 'transient',\n });\n }\n };\n\n return (\n <Dialog onClose={handleProjectSelectorClose} open={openProjectSelector}>\n <CustomDialogTitle\n id=\"customized-dialog-title\"\n onClose={handleProjectSelectorClose}\n >\n Select entity\n </CustomDialogTitle>\n <DialogContent className={classes.content} dividers>\n <ProjectSelector\n label=\"\"\n onChange={handleEntityClick}\n catalogEntities={catalogEntities || []}\n disableClearable\n defaultValue={catalogEntities[0] || null}\n />\n </DialogContent>\n\n <DialogActions>\n <Button onClick={handleSubmit} color=\"primary\" type=\"submit\">\n OK\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":["DialogContent","DialogActions"],"mappings":";;;;;;;;;;;;AAwCA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,OAAA,EAAS,EAAE,OAAA,EAAS,QAAS;AAC/B,CAAC,CAAA;AAEM,MAAM,oBAAoB,CAAC;AAAA,EAChC,mBAAA;AAAA,EACA,0BAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAa,KAAA;AACX,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,SAAA,GAAY,OAAO,YAAY,CAAA;AACrC,EAAM,MAAA,QAAA,GAAW,OAAO,WAAW,CAAA;AACnC,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,UAAU,CAAA;AAC/D,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,SAAS,EAAE,CAAA;AAC/D,EAAM,MAAA,iBAAA,GAAoB,CAAC,MAAmB,KAAA;AAC5C,IAAA,iBAAA,CAAkB,MAAM,CAAA;AACxB,IAAsB,qBAAA,CAAA,MAAA,CAAO,SAAS,IAAI,CAAA;AAAA,GAC5C;AAEA,EAAA,MAAM,eAAe,YAAY;AAC/B,IAA2B,0BAAA,EAAA;AAE3B,IAAM,MAAA,cAAA,GAAiB,MAAM,SAAA,CAAU,aAAc,CAAA;AAAA,MACnD,GAAG,aAAA;AAAA,MACH,SAAA,EAAW,mBAAmB,cAAe;AAAA,KAC9C,CAAA;AACD,IAAI,IAAA,cAAA,CAAe,WAAW,IAAM,EAAA;AAClC,MAAmB,kBAAA,EAAA;AACnB,MAAA,QAAA,CAAS,IAAK,CAAA;AAAA,QACZ,OAAS,EAAA,CAAA,eAAA,EAAkB,kBAAkB,CAAA,iBAAA,EAAoB,cAAc,KAAK,CAAA,CAAA;AAAA,QACpF,QAAU,EAAA,SAAA;AAAA,QACV,OAAS,EAAA;AAAA,OACV,CAAA;AAAA;AACH,GACF;AAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAS,EAAA,0BAAA,EAA4B,MAAM,mBACjD,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,EAAG,EAAA,yBAAA;AAAA,MACH,OAAS,EAAA;AAAA,KAAA;AAAA,IACV;AAAA,qBAGA,KAAA,CAAA,aAAA,CAAAA,gBAAA,EAAA,EAAc,WAAW,OAAQ,CAAA,OAAA,EAAS,UAAQ,IACjD,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,KAAM,EAAA,EAAA;AAAA,MACN,QAAU,EAAA,iBAAA;AAAA,MACV,eAAA,EAAiB,mBAAmB,EAAC;AAAA,MACrC,gBAAgB,EAAA,IAAA;AAAA,MAChB,YAAA,EAAc,eAAgB,CAAA,CAAC,CAAK,IAAA;AAAA;AAAA,GAExC,CAAA,kBAEC,KAAA,CAAA,aAAA,CAAAC,gBAAA,EAAA,IAAA,sCACE,MAAO,EAAA,EAAA,OAAA,EAAS,YAAc,EAAA,KAAA,EAAM,SAAU,EAAA,IAAA,EAAK,QAAS,EAAA,EAAA,IAE7D,CACF,CACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"LinkProjectDialog.esm.js","sources":["../../../src/components/LinkProjectDialog/LinkProjectDialog.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport { useState } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ProjectSelector } from '../ProjectSelector';\nimport { CustomDialogTitle } from '../CustomDialogTitle';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\n\nimport { bazaarApiRef } from '../../api';\nimport { useApi, alertApiRef } from '@backstage/core-plugin-api';\n\nimport { BazaarProject } from '../../types';\n\ntype Props = {\n openProjectSelector: boolean;\n handleProjectSelectorClose: () => void;\n catalogEntities: Entity[];\n bazaarProject: BazaarProject;\n fetchBazaarProject: () => Promise<BazaarProject | null>;\n initEntity: Entity;\n};\n\nconst useStyles = makeStyles({\n content: { padding: '0 1rem' },\n});\n\nexport const LinkProjectDialog = ({\n openProjectSelector,\n handleProjectSelectorClose,\n catalogEntities,\n bazaarProject,\n fetchBazaarProject,\n initEntity,\n}: Props) => {\n const classes = useStyles();\n const bazaarApi = useApi(bazaarApiRef);\n const alertApi = useApi(alertApiRef);\n const [selectedEntity, setSelectedEntity] = useState(initEntity);\n const [selectedEntityName, setSelectedEntityName] = useState('');\n const handleEntityClick = (entity: Entity) => {\n setSelectedEntity(entity);\n setSelectedEntityName(entity.metadata.name);\n };\n\n const handleSubmit = async () => {\n handleProjectSelectorClose();\n\n const updateResponse = await bazaarApi.updateProject({\n ...bazaarProject,\n entityRef: stringifyEntityRef(selectedEntity!),\n });\n if (updateResponse.status === 'ok') {\n fetchBazaarProject();\n alertApi.post({\n message: `linked entity '${selectedEntityName}' to the project ${bazaarProject.title}`,\n severity: 'success',\n display: 'transient',\n });\n }\n };\n\n return (\n <Dialog onClose={handleProjectSelectorClose} open={openProjectSelector}>\n <CustomDialogTitle\n id=\"customized-dialog-title\"\n onClose={handleProjectSelectorClose}\n >\n Select entity\n </CustomDialogTitle>\n <DialogContent className={classes.content} dividers>\n <ProjectSelector\n label=\"\"\n onChange={handleEntityClick}\n catalogEntities={catalogEntities || []}\n disableClearable\n defaultValue={catalogEntities[0] || null}\n />\n </DialogContent>\n\n <DialogActions>\n <Button onClick={handleSubmit} color=\"primary\" type=\"submit\">\n OK\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":["DialogContent","DialogActions"],"mappings":";;;;;;;;;;;;;AAwCA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,OAAA,EAAS,EAAE,OAAA,EAAS,QAAS;AAC/B,CAAC,CAAA;AAEM,MAAM,oBAAoB,CAAC;AAAA,EAChC,mBAAA;AAAA,EACA,0BAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAa,KAAA;AACX,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,SAAA,GAAY,OAAO,YAAY,CAAA;AACrC,EAAM,MAAA,QAAA,GAAW,OAAO,WAAW,CAAA;AACnC,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,UAAU,CAAA;AAC/D,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,SAAS,EAAE,CAAA;AAC/D,EAAM,MAAA,iBAAA,GAAoB,CAAC,MAAmB,KAAA;AAC5C,IAAA,iBAAA,CAAkB,MAAM,CAAA;AACxB,IAAsB,qBAAA,CAAA,MAAA,CAAO,SAAS,IAAI,CAAA;AAAA,GAC5C;AAEA,EAAA,MAAM,eAAe,YAAY;AAC/B,IAA2B,0BAAA,EAAA;AAE3B,IAAM,MAAA,cAAA,GAAiB,MAAM,SAAA,CAAU,aAAc,CAAA;AAAA,MACnD,GAAG,aAAA;AAAA,MACH,SAAA,EAAW,mBAAmB,cAAe;AAAA,KAC9C,CAAA;AACD,IAAI,IAAA,cAAA,CAAe,WAAW,IAAM,EAAA;AAClC,MAAmB,kBAAA,EAAA;AACnB,MAAA,QAAA,CAAS,IAAK,CAAA;AAAA,QACZ,OAAS,EAAA,CAAA,eAAA,EAAkB,kBAAkB,CAAA,iBAAA,EAAoB,cAAc,KAAK,CAAA,CAAA;AAAA,QACpF,QAAU,EAAA,SAAA;AAAA,QACV,OAAS,EAAA;AAAA,OACV,CAAA;AAAA;AACH,GACF;AAEA,EAAA,uBACG,IAAA,CAAA,MAAA,EAAA,EAAO,OAAS,EAAA,0BAAA,EAA4B,MAAM,mBACjD,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,EAAG,EAAA,yBAAA;AAAA,QACH,OAAS,EAAA,0BAAA;AAAA,QACV,QAAA,EAAA;AAAA;AAAA,KAED;AAAA,wBACCA,gBAAc,EAAA,EAAA,SAAA,EAAW,OAAQ,CAAA,OAAA,EAAS,UAAQ,IACjD,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,KAAM,EAAA,EAAA;AAAA,QACN,QAAU,EAAA,iBAAA;AAAA,QACV,eAAA,EAAiB,mBAAmB,EAAC;AAAA,QACrC,gBAAgB,EAAA,IAAA;AAAA,QAChB,YAAA,EAAc,eAAgB,CAAA,CAAC,CAAK,IAAA;AAAA;AAAA,KAExC,EAAA,CAAA;AAAA,oBAEA,GAAA,CAACC,gBACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,MAAO,EAAA,EAAA,OAAA,EAAS,YAAc,EAAA,KAAA,EAAM,SAAU,EAAA,IAAA,EAAK,QAAS,EAAA,QAAA,EAAA,IAAA,EAE7D,CACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
2
3
  import { ItemCardHeader } from '@backstage/core-components';
3
4
  import Card from '@material-ui/core/Card';
4
5
  import CardActionArea from '@material-ui/core/CardActionArea';
@@ -45,25 +46,35 @@ const ProjectCard = ({
45
46
  setOpenCard(false);
46
47
  fetchBazaarProjects();
47
48
  };
48
- return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Dialog, { fullWidth: true, onClose: handleClose, open: openCard }, /* @__PURE__ */ React.createElement(
49
- HomePageBazaarInfoCard,
50
- {
51
- initProject: project,
52
- handleClose,
53
- initEntity: catalogEntities[0] || null
54
- }
55
- )), /* @__PURE__ */ React.createElement(Card, { key: id }, /* @__PURE__ */ React.createElement(CardActionArea, { onClick: () => setOpenCard(true) }, /* @__PURE__ */ React.createElement(
56
- ItemCardHeader,
57
- {
58
- classes: { root: classes.header },
59
- title,
60
- subtitle: `updated ${DateTime.fromISO(
61
- new Date(updatedAt).toISOString()
62
- ).toRelative({
63
- base: DateTime.now()
64
- })}`
65
- }
66
- ), /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(StatusTag, { styles: classes.statusTag, status }), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.memberCount }, Number(membersCount) === Number(1) ? `${membersCount} member` : `${membersCount} members`), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.description }, description)))));
49
+ return /* @__PURE__ */ jsxs("div", { children: [
50
+ /* @__PURE__ */ jsx(Dialog, { fullWidth: true, onClose: handleClose, open: openCard, children: /* @__PURE__ */ jsx(
51
+ HomePageBazaarInfoCard,
52
+ {
53
+ initProject: project,
54
+ handleClose,
55
+ initEntity: catalogEntities[0] || null
56
+ }
57
+ ) }),
58
+ /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs(CardActionArea, { onClick: () => setOpenCard(true), children: [
59
+ /* @__PURE__ */ jsx(
60
+ ItemCardHeader,
61
+ {
62
+ classes: { root: classes.header },
63
+ title,
64
+ subtitle: `updated ${DateTime.fromISO(
65
+ new Date(updatedAt).toISOString()
66
+ ).toRelative({
67
+ base: DateTime.now()
68
+ })}`
69
+ }
70
+ ),
71
+ /* @__PURE__ */ jsxs(CardContent, { children: [
72
+ /* @__PURE__ */ jsx(StatusTag, { styles: classes.statusTag, status }),
73
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.memberCount, children: Number(membersCount) === Number(1) ? `${membersCount} member` : `${membersCount} members` }),
74
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.description, children: description })
75
+ ] })
76
+ ] }) }, id)
77
+ ] });
67
78
  };
68
79
 
69
80
  export { ProjectCard };
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectCard.esm.js","sources":["../../../src/components/ProjectCard/ProjectCard.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport React, { useState } from 'react';\nimport { ItemCardHeader } from '@backstage/core-components';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardContent from '@material-ui/core/CardContent';\nimport Dialog from '@material-ui/core/Dialog';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { StatusTag } from '../StatusTag/StatusTag';\nimport { BazaarProject } from '../../types';\nimport { DateTime } from 'luxon';\nimport { HomePageBazaarInfoCard } from '../HomePageBazaarInfoCard';\nimport { Entity } from '@backstage/catalog-model';\n\ntype Props = {\n project: BazaarProject;\n fetchBazaarProjects: () => Promise<BazaarProject[]>;\n catalogEntities: Entity[];\n height: 'large' | 'small';\n};\n\ntype StyleProps = {\n height: 'large' | 'small';\n};\n\nconst useStyles = makeStyles(theme => ({\n description: (props: StyleProps) => ({\n height: props.height === 'large' ? '10rem' : '4rem',\n WebkitBackgroundClip: 'text',\n backgroundImage: `linear-gradient(180deg, ${theme.palette.textContrast} 0%, ${theme.palette.textContrast} 60%, transparent 100%)`,\n color: 'transparent',\n }),\n statusTag: {\n display: 'inline-block',\n whiteSpace: 'nowrap',\n marginBottom: '0.8rem',\n },\n memberCount: {\n float: 'right',\n },\n header: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n height: '5rem',\n },\n}));\n\nexport const ProjectCard = ({\n project,\n fetchBazaarProjects,\n catalogEntities,\n height,\n}: Props) => {\n const classes = useStyles({ height });\n const [openCard, setOpenCard] = useState(false);\n const { id, title, status, updatedAt, description, membersCount } = project;\n\n const handleClose = () => {\n setOpenCard(false);\n fetchBazaarProjects();\n };\n\n return (\n <div>\n <Dialog fullWidth onClose={handleClose} open={openCard}>\n <HomePageBazaarInfoCard\n initProject={project}\n handleClose={handleClose}\n initEntity={catalogEntities[0] || null}\n />\n </Dialog>\n\n <Card key={id}>\n <CardActionArea onClick={() => setOpenCard(true)}>\n <ItemCardHeader\n classes={{ root: classes.header }}\n title={title}\n subtitle={`updated ${DateTime.fromISO(\n new Date(updatedAt!).toISOString(),\n ).toRelative({\n base: DateTime.now(),\n })}`}\n />\n <CardContent>\n <StatusTag styles={classes.statusTag} status={status} />\n <Typography variant=\"body2\" className={classes.memberCount}>\n {Number(membersCount) === Number(1)\n ? `${membersCount} member`\n : `${membersCount} members`}\n </Typography>\n <Typography variant=\"body2\" className={classes.description}>\n {description}\n </Typography>\n </CardContent>\n </CardActionArea>\n </Card>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectCard.esm.js","sources":["../../../src/components/ProjectCard/ProjectCard.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 */\n\nimport { useState } from 'react';\nimport { ItemCardHeader } from '@backstage/core-components';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardContent from '@material-ui/core/CardContent';\nimport Dialog from '@material-ui/core/Dialog';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { StatusTag } from '../StatusTag/StatusTag';\nimport { BazaarProject } from '../../types';\nimport { DateTime } from 'luxon';\nimport { HomePageBazaarInfoCard } from '../HomePageBazaarInfoCard';\nimport { Entity } from '@backstage/catalog-model';\n\ntype Props = {\n project: BazaarProject;\n fetchBazaarProjects: () => Promise<BazaarProject[]>;\n catalogEntities: Entity[];\n height: 'large' | 'small';\n};\n\ntype StyleProps = {\n height: 'large' | 'small';\n};\n\nconst useStyles = makeStyles(theme => ({\n description: (props: StyleProps) => ({\n height: props.height === 'large' ? '10rem' : '4rem',\n WebkitBackgroundClip: 'text',\n backgroundImage: `linear-gradient(180deg, ${theme.palette.textContrast} 0%, ${theme.palette.textContrast} 60%, transparent 100%)`,\n color: 'transparent',\n }),\n statusTag: {\n display: 'inline-block',\n whiteSpace: 'nowrap',\n marginBottom: '0.8rem',\n },\n memberCount: {\n float: 'right',\n },\n header: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n height: '5rem',\n },\n}));\n\nexport const ProjectCard = ({\n project,\n fetchBazaarProjects,\n catalogEntities,\n height,\n}: Props) => {\n const classes = useStyles({ height });\n const [openCard, setOpenCard] = useState(false);\n const { id, title, status, updatedAt, description, membersCount } = project;\n\n const handleClose = () => {\n setOpenCard(false);\n fetchBazaarProjects();\n };\n\n return (\n <div>\n <Dialog fullWidth onClose={handleClose} open={openCard}>\n <HomePageBazaarInfoCard\n initProject={project}\n handleClose={handleClose}\n initEntity={catalogEntities[0] || null}\n />\n </Dialog>\n\n <Card key={id}>\n <CardActionArea onClick={() => setOpenCard(true)}>\n <ItemCardHeader\n classes={{ root: classes.header }}\n title={title}\n subtitle={`updated ${DateTime.fromISO(\n new Date(updatedAt!).toISOString(),\n ).toRelative({\n base: DateTime.now(),\n })}`}\n />\n <CardContent>\n <StatusTag styles={classes.statusTag} status={status} />\n <Typography variant=\"body2\" className={classes.memberCount}>\n {Number(membersCount) === Number(1)\n ? `${membersCount} member`\n : `${membersCount} members`}\n </Typography>\n <Typography variant=\"body2\" className={classes.description}>\n {description}\n </Typography>\n </CardContent>\n </CardActionArea>\n </Card>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}