@burdenoff/microfe-planmagnet 2026.509.103
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.
- package/README.md +12 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +21253 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +8370 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +4182 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +24 -0
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
- package/dist/node_modules/@apollo/client/errors/utils.js +16 -0
- package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -0
- package/dist/planmagnet/PlanMagnetRoot.d.ts +5 -0
- package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -0
- package/dist/planmagnet/PlanMagnetRoot.js +292 -0
- package/dist/planmagnet/PlanMagnetRoot.js.map +1 -0
- package/dist/planmagnet/PlanMagnetRoutes.d.ts +2 -0
- package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -0
- package/dist/planmagnet/PlanMagnetRoutes.js +211 -0
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -0
- package/dist/planmagnet/index.d.ts +5 -0
- package/dist/planmagnet/index.d.ts.map +1 -0
- package/dist/planmagnet/index.js +3 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js +312 -0
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.js +110 -0
- package/dist/planmagnet/pages/CollaborationCollaborationPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.js +96 -0
- package/dist/planmagnet/pages/CollaborationCreateChannelPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.js +112 -0
- package/dist/planmagnet/pages/CollaborationFilesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.js +141 -0
- package/dist/planmagnet/pages/CollaborationMessagesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.js +124 -0
- package/dist/planmagnet/pages/CollaborationNewDiscussionPagePage.js.map +1 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js +350 -0
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +1 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.js +290 -0
- package/dist/planmagnet/pages/MeetingsScheduleMeetingPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.js +189 -0
- package/dist/planmagnet/pages/ProductsCreateProductPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js +151 -0
- package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.js +257 -0
- package/dist/planmagnet/pages/ProductsEditProductPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.js +221 -0
- package/dist/planmagnet/pages/ProductsEditReleasePagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js +284 -0
- package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +291 -0
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js +257 -0
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js +222 -0
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +288 -0
- package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.js +225 -0
- package/dist/planmagnet/pages/ProductsProductsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +262 -0
- package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.js +162 -0
- package/dist/planmagnet/pages/ProductsReleasesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js +342 -0
- package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +233 -0
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js +193 -0
- package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js +116 -0
- package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.js +199 -0
- package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +197 -0
- package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +173 -0
- package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js +119 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +257 -0
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +222 -0
- package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.js +142 -0
- package/dist/planmagnet/pages/ProjectsPlanningPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +363 -0
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +176 -0
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.js +173 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.js +221 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +282 -0
- package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +227 -0
- package/dist/planmagnet/pages/TasksCreateTaskPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js +234 -0
- package/dist/planmagnet/pages/TasksEditTaskPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +232 -0
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.js +206 -0
- package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.js +138 -0
- package/dist/planmagnet/pages/TeamCreateTeamPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.js +161 -0
- package/dist/planmagnet/pages/TeamInviteMemberPagePage.js.map +1 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.js +203 -0
- package/dist/planmagnet/pages/TeamTeamPagePage.js.map +1 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.d.ts +2 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js +97 -0
- package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js.map +1 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.d.ts +31 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.d.ts.map +1 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.js +119 -0
- package/dist/planmagnet/providers/PlanMagnetProvider.js.map +1 -0
- package/dist/planmagnet/store/planmagnetStore.d.ts +30 -0
- package/dist/planmagnet/store/planmagnetStore.d.ts.map +1 -0
- package/dist/planmagnet/store/planmagnetStore.js +42 -0
- package/dist/planmagnet/store/planmagnetStore.js.map +1 -0
- package/dist/planmagnet/types/index.d.ts +317 -0
- package/dist/planmagnet/types/index.d.ts.map +1 -0
- package/dist/planmagnet/utils/cn.d.ts +4 -0
- package/dist/planmagnet/utils/cn.d.ts.map +1 -0
- package/dist/planmagnet/utils/navigation.d.ts +2 -0
- package/dist/planmagnet/utils/navigation.d.ts.map +1 -0
- package/dist/planmagnet/utils/navigation.js +8 -0
- package/dist/planmagnet/utils/navigation.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { usePlanMagnet as e } from "../providers/PlanMagnetProvider.js";
|
|
2
|
+
import { Calendar as t, File as n, FolderKanban as r } from "lucide-react";
|
|
3
|
+
import { gql as i } from "@apollo/client";
|
|
4
|
+
import { useQuery as a } from "@apollo/client/react";
|
|
5
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
6
|
+
import { Card as c, CardContent as l } from "@burdenoff/fe-libs/ui";
|
|
7
|
+
//#region src/planmagnet/pages/CollaborationFilesPagePage.tsx
|
|
8
|
+
var u = i`
|
|
9
|
+
query GetProjectsForFiles($workspaceId: ID!, $pagination: PaginationInput) {
|
|
10
|
+
planmagnetProjects(workspaceId: $workspaceId, pagination: $pagination) {
|
|
11
|
+
items {
|
|
12
|
+
id
|
|
13
|
+
name
|
|
14
|
+
key
|
|
15
|
+
status
|
|
16
|
+
methodology
|
|
17
|
+
tags
|
|
18
|
+
startDate
|
|
19
|
+
endDate
|
|
20
|
+
}
|
|
21
|
+
totalCount
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
function d() {
|
|
26
|
+
let { workspaceId: i } = e(), { data: d, loading: f, error: p } = a(u, {
|
|
27
|
+
variables: {
|
|
28
|
+
workspaceId: i,
|
|
29
|
+
pagination: { first: 100 }
|
|
30
|
+
},
|
|
31
|
+
skip: !i
|
|
32
|
+
});
|
|
33
|
+
if (f) return /* @__PURE__ */ o("div", {
|
|
34
|
+
className: "flex items-center justify-center p-12",
|
|
35
|
+
children: /* @__PURE__ */ o("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
|
|
36
|
+
});
|
|
37
|
+
if (p) return /* @__PURE__ */ s("div", {
|
|
38
|
+
className: "p-6 text-red-500",
|
|
39
|
+
children: ["Error: ", p.message]
|
|
40
|
+
});
|
|
41
|
+
let m = d?.planmagnetProjects?.items ?? [], h = m.map((e) => ({
|
|
42
|
+
id: e.id,
|
|
43
|
+
name: e.name,
|
|
44
|
+
key: e.key,
|
|
45
|
+
status: e.status,
|
|
46
|
+
methodology: e.methodology,
|
|
47
|
+
tags: e.tags,
|
|
48
|
+
startDate: e.startDate,
|
|
49
|
+
endDate: e.endDate
|
|
50
|
+
}));
|
|
51
|
+
return /* @__PURE__ */ s("div", {
|
|
52
|
+
className: "space-y-6 p-6",
|
|
53
|
+
children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
54
|
+
className: "text-2xl font-semibold",
|
|
55
|
+
children: "Shared Files"
|
|
56
|
+
}), /* @__PURE__ */ s("p", {
|
|
57
|
+
className: "text-sm text-muted-foreground",
|
|
58
|
+
children: [m.length, " projects with associated resources"]
|
|
59
|
+
})] }), /* @__PURE__ */ s("div", {
|
|
60
|
+
className: "space-y-2",
|
|
61
|
+
children: [h.map((e) => /* @__PURE__ */ o(c, {
|
|
62
|
+
className: "hover:bg-muted/30 cursor-pointer transition-colors",
|
|
63
|
+
children: /* @__PURE__ */ s(l, {
|
|
64
|
+
className: "py-3 flex items-center justify-between",
|
|
65
|
+
children: [/* @__PURE__ */ s("div", {
|
|
66
|
+
className: "flex items-center gap-3",
|
|
67
|
+
children: [/* @__PURE__ */ o(r, { className: "h-5 w-5 text-muted-foreground" }), /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
|
|
68
|
+
className: "text-sm font-medium",
|
|
69
|
+
children: e.name
|
|
70
|
+
}), /* @__PURE__ */ s("p", {
|
|
71
|
+
className: "text-xs text-muted-foreground",
|
|
72
|
+
children: [
|
|
73
|
+
e.key,
|
|
74
|
+
" · ",
|
|
75
|
+
e.methodology ?? "No methodology"
|
|
76
|
+
]
|
|
77
|
+
})] })]
|
|
78
|
+
}), /* @__PURE__ */ s("div", {
|
|
79
|
+
className: "flex items-center gap-6 text-xs text-muted-foreground",
|
|
80
|
+
children: [
|
|
81
|
+
/* @__PURE__ */ o("span", {
|
|
82
|
+
className: "capitalize",
|
|
83
|
+
children: e.status.toLowerCase()
|
|
84
|
+
}),
|
|
85
|
+
e.tags.length > 0 && /* @__PURE__ */ o("div", {
|
|
86
|
+
className: "flex gap-1",
|
|
87
|
+
children: e.tags.slice(0, 3).map((e) => /* @__PURE__ */ o("span", {
|
|
88
|
+
className: "px-1.5 py-0.5 bg-muted rounded text-[10px]",
|
|
89
|
+
children: e
|
|
90
|
+
}, e))
|
|
91
|
+
}),
|
|
92
|
+
e.startDate && /* @__PURE__ */ s("span", {
|
|
93
|
+
className: "flex items-center gap-1",
|
|
94
|
+
children: [/* @__PURE__ */ o(t, { className: "h-3 w-3" }), e.startDate]
|
|
95
|
+
})
|
|
96
|
+
]
|
|
97
|
+
})]
|
|
98
|
+
})
|
|
99
|
+
}, e.id)), h.length === 0 && /* @__PURE__ */ s("div", {
|
|
100
|
+
className: "text-center py-12",
|
|
101
|
+
children: [/* @__PURE__ */ o(n, { className: "h-12 w-12 text-muted-foreground mx-auto mb-3" }), /* @__PURE__ */ o("p", {
|
|
102
|
+
className: "text-sm text-muted-foreground",
|
|
103
|
+
children: "No projects found. Files will appear once projects are created."
|
|
104
|
+
})]
|
|
105
|
+
})]
|
|
106
|
+
})]
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
//#endregion
|
|
110
|
+
export { d as CollaborationFilesPagePage };
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=CollaborationFilesPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollaborationFilesPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/CollaborationFilesPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { FileText, File, FolderKanban, Calendar } from 'lucide-react';\nimport { usePlanMagnet } from '../providers/PlanMagnetProvider';\n\nconst GET_PROJECTS_FOR_FILES = gql`\n query GetProjectsForFiles($workspaceId: ID!, $pagination: PaginationInput) {\n planmagnetProjects(workspaceId: $workspaceId, pagination: $pagination) {\n items {\n id\n name\n key\n status\n methodology\n tags\n startDate\n endDate\n }\n totalCount\n }\n }\n`;\n\ninterface ProjectNode {\n id: string;\n name: string;\n key: string;\n status: string;\n methodology: string | null;\n tags: string[];\n startDate: string | null;\n endDate: string | null;\n}\n\ninterface ProjectsData {\n projects: { items: ProjectNode[]; totalCount: number };\n}\n\nexport function CollaborationFilesPagePage() {\n const { workspaceId } = usePlanMagnet();\n\n const { data, loading, error } = useQuery<ProjectsData>(GET_PROJECTS_FOR_FILES, {\n variables: {\n workspaceId,\n pagination: { first: 100 },\n },\n skip: !workspaceId,\n });\n\n if (loading) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full\" />\n </div>\n );\n }\n\n if (error) {\n return <div className=\"p-6 text-red-500\">Error: {error.message}</div>;\n }\n\n const projects = data?.planmagnetProjects?.items ?? [];\n\n const projectFiles = projects.map((project) => ({\n id: project.id,\n name: project.name,\n key: project.key,\n status: project.status,\n methodology: project.methodology,\n tags: project.tags,\n startDate: project.startDate,\n endDate: project.endDate,\n }));\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Shared Files</h1>\n <p className=\"text-sm text-muted-foreground\">\n {projects.length} projects with associated resources\n </p>\n </div>\n <div className=\"space-y-2\">\n {projectFiles.map((pf) => (\n <Card key={pf.id} className=\"hover:bg-muted/30 cursor-pointer transition-colors\">\n <CardContent className=\"py-3 flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <FolderKanban className=\"h-5 w-5 text-muted-foreground\" />\n <div>\n <p className=\"text-sm font-medium\">{pf.name}</p>\n <p className=\"text-xs text-muted-foreground\">\n {pf.key} · {pf.methodology ?? 'No methodology'}\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-6 text-xs text-muted-foreground\">\n <span className=\"capitalize\">{pf.status.toLowerCase()}</span>\n {pf.tags.length > 0 && (\n <div className=\"flex gap-1\">\n {pf.tags.slice(0, 3).map((tag) => (\n <span key={tag} className=\"px-1.5 py-0.5 bg-muted rounded text-[10px]\">\n {tag}\n </span>\n ))}\n </div>\n )}\n {pf.startDate && (\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n {pf.startDate}\n </span>\n )}\n </div>\n </CardContent>\n </Card>\n ))}\n {projectFiles.length === 0 && (\n <div className=\"text-center py-12\">\n <File className=\"h-12 w-12 text-muted-foreground mx-auto mb-3\" />\n <p className=\"text-sm text-muted-foreground\">\n No projects found. Files will appear once projects are created.\n </p>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAQA,IAAM,IAAyB,CAAG;;;;;;;;;;;;;;;;;AAiClC,SAAgB,IAA6B;CAC3C,IAAM,EAAE,mBAAgB,GAAe,EAEjC,EAAE,SAAM,YAAS,aAAU,EAAuB,GAAwB;EAC9E,WAAW;GACT;GACA,YAAY,EAAE,OAAO,KAAK;GAC3B;EACD,MAAM,CAAC;EACR,CAAC;AAEF,KAAI,EACF,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD,EAAK,WAAU,kFAAmF,CAAA;EAC9F,CAAA;AAIV,KAAI,EACF,QAAO,kBAAC,OAAD;EAAK,WAAU;YAAf,CAAkC,WAAQ,EAAM,QAAc;;CAGvE,IAAM,IAAW,GAAM,oBAAoB,SAAS,EAAE,EAEhD,IAAe,EAAS,KAAK,OAAa;EAC9C,IAAI,EAAQ;EACZ,MAAM,EAAQ;EACd,KAAK,EAAQ;EACb,QAAQ,EAAQ;EAChB,aAAa,EAAQ;EACrB,MAAM,EAAQ;EACd,WAAW,EAAQ;EACnB,SAAS,EAAQ;EAClB,EAAE;AAEH,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GAAI,WAAU;aAAyB;GAAiB,CAAA,EACxD,kBAAC,KAAD;GAAG,WAAU;aAAb,CACG,EAAS,QAAO,sCACf;KACA,EAAA,CAAA,EACN,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,EAAa,KAAK,MACjB,kBAAC,GAAD;IAAkB,WAAU;cAC1B,kBAAC,GAAD;KAAa,WAAU;eAAvB,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD,EAAc,WAAU,iCAAkC,CAAA,EAC1D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAuB,EAAG;OAAS,CAAA,EAChD,kBAAC,KAAD;OAAG,WAAU;iBAAb;QACG,EAAG;QAAI;QAAW,EAAG,eAAe;QACnC;SACA,EAAA,CAAA,CACF;SACN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,QAAD;QAAM,WAAU;kBAAc,EAAG,OAAO,aAAa;QAAQ,CAAA;OAC5D,EAAG,KAAK,SAAS,KAChB,kBAAC,OAAD;QAAK,WAAU;kBACZ,EAAG,KAAK,MAAM,GAAG,EAAE,CAAC,KAAK,MACxB,kBAAC,QAAD;SAAgB,WAAU;mBACvB;SACI,EAFI,EAEJ,CACP;QACE,CAAA;OAEP,EAAG,aACF,kBAAC,QAAD;QAAM,WAAU;kBAAhB,CACE,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA,EAC/B,EAAG,UACC;;OAEL;QACM;;IACT,EA9BI,EAAG,GA8BP,CACP,EACD,EAAa,WAAW,KACvB,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAM,WAAU,gDAAiD,CAAA,EACjE,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAEzC,CAAA,CACA;MAEJ;KACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollaborationMessagesPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/CollaborationMessagesPagePage.tsx"],"names":[],"mappings":"AA0DA,wBAAgB,6BAA6B,4CAqG5C"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { usePlanMagnet as e } from "../providers/PlanMagnetProvider.js";
|
|
2
|
+
import { Hash as t, MessageSquare as n } from "lucide-react";
|
|
3
|
+
import { gql as r } from "@apollo/client";
|
|
4
|
+
import { useQuery as i } from "@apollo/client/react";
|
|
5
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
|
+
import { Card as s, CardContent as c } from "@burdenoff/fe-libs/ui";
|
|
7
|
+
//#region src/planmagnet/pages/CollaborationMessagesPagePage.tsx
|
|
8
|
+
var l = r`
|
|
9
|
+
query GetRecentWorkItemsForMessages($workspaceId: ID!, $pagination: PaginationInput) {
|
|
10
|
+
planmagnetWorkItems(workspaceId: $workspaceId, pagination: $pagination) {
|
|
11
|
+
items {
|
|
12
|
+
id
|
|
13
|
+
key
|
|
14
|
+
title
|
|
15
|
+
status
|
|
16
|
+
priority
|
|
17
|
+
assigneeId
|
|
18
|
+
labels
|
|
19
|
+
tags
|
|
20
|
+
createdAt
|
|
21
|
+
}
|
|
22
|
+
totalCount
|
|
23
|
+
}
|
|
24
|
+
planmagnetProjects(workspaceId: $workspaceId, pagination: $pagination) {
|
|
25
|
+
items {
|
|
26
|
+
id
|
|
27
|
+
name
|
|
28
|
+
key
|
|
29
|
+
}
|
|
30
|
+
totalCount
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
34
|
+
function u() {
|
|
35
|
+
let { workspaceId: r } = e(), { data: u, loading: d, error: f } = i(l, {
|
|
36
|
+
variables: {
|
|
37
|
+
workspaceId: r,
|
|
38
|
+
pagination: { first: 50 }
|
|
39
|
+
},
|
|
40
|
+
skip: !r
|
|
41
|
+
});
|
|
42
|
+
if (d) return /* @__PURE__ */ a("div", {
|
|
43
|
+
className: "flex items-center justify-center p-12",
|
|
44
|
+
children: /* @__PURE__ */ a("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
|
|
45
|
+
});
|
|
46
|
+
if (f) return /* @__PURE__ */ o("div", {
|
|
47
|
+
className: "p-6 text-red-500",
|
|
48
|
+
children: ["Error: ", f.message]
|
|
49
|
+
});
|
|
50
|
+
let p = u?.planmagnetWorkItems?.items ?? [], m = u?.planmagnetProjects?.items ?? [];
|
|
51
|
+
new Map(m.map((e) => [e.id, e]));
|
|
52
|
+
let h = p.slice(0, 20).map((e) => ({
|
|
53
|
+
id: e.id,
|
|
54
|
+
key: e.key,
|
|
55
|
+
title: e.title,
|
|
56
|
+
status: e.status,
|
|
57
|
+
priority: e.priority,
|
|
58
|
+
assigneeId: e.assigneeId,
|
|
59
|
+
createdAt: e.createdAt,
|
|
60
|
+
labels: e.labels
|
|
61
|
+
}));
|
|
62
|
+
return /* @__PURE__ */ o("div", {
|
|
63
|
+
className: "space-y-6 p-6",
|
|
64
|
+
children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
65
|
+
className: "text-2xl font-semibold",
|
|
66
|
+
children: "Messages"
|
|
67
|
+
}), /* @__PURE__ */ a("p", {
|
|
68
|
+
className: "text-sm text-muted-foreground",
|
|
69
|
+
children: "Recent activity across all projects"
|
|
70
|
+
})] }), /* @__PURE__ */ o("div", {
|
|
71
|
+
className: "space-y-4",
|
|
72
|
+
children: [h.map((e) => /* @__PURE__ */ a(s, { children: /* @__PURE__ */ a(c, {
|
|
73
|
+
className: "py-3",
|
|
74
|
+
children: /* @__PURE__ */ o("div", {
|
|
75
|
+
className: "flex items-start gap-3",
|
|
76
|
+
children: [/* @__PURE__ */ a("div", {
|
|
77
|
+
className: "h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center text-xs font-medium text-primary shrink-0 mt-0.5",
|
|
78
|
+
children: e.key.slice(0, 2)
|
|
79
|
+
}), /* @__PURE__ */ o("div", {
|
|
80
|
+
className: "flex-1",
|
|
81
|
+
children: [
|
|
82
|
+
/* @__PURE__ */ o("div", {
|
|
83
|
+
className: "flex items-center gap-2",
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ a("span", {
|
|
86
|
+
className: "text-sm font-medium",
|
|
87
|
+
children: e.title
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ o("span", {
|
|
90
|
+
className: "text-xs text-muted-foreground flex items-center gap-0.5",
|
|
91
|
+
children: [/* @__PURE__ */ a(t, { className: "h-3 w-3" }), e.key]
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ a("span", {
|
|
94
|
+
className: "text-xs text-muted-foreground",
|
|
95
|
+
children: new Date(e.createdAt).toLocaleTimeString([], {
|
|
96
|
+
hour: "2-digit",
|
|
97
|
+
minute: "2-digit"
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
]
|
|
101
|
+
}),
|
|
102
|
+
/* @__PURE__ */ o("p", {
|
|
103
|
+
className: "text-sm mt-1 text-muted-foreground",
|
|
104
|
+
children: [
|
|
105
|
+
"Status: ",
|
|
106
|
+
e.status.toLowerCase().replace("_", " "),
|
|
107
|
+
" · Priority:",
|
|
108
|
+
" ",
|
|
109
|
+
e.priority.toLowerCase()
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ o("div", {
|
|
113
|
+
className: "flex items-center gap-3 mt-2",
|
|
114
|
+
children: [/* @__PURE__ */ a("div", {
|
|
115
|
+
className: "flex gap-1",
|
|
116
|
+
children: e.labels.slice(0, 3).map((e) => /* @__PURE__ */ a("span", {
|
|
117
|
+
className: "text-xs bg-muted px-1.5 py-0.5 rounded-full",
|
|
118
|
+
children: e
|
|
119
|
+
}, e))
|
|
120
|
+
}), e.assigneeId && /* @__PURE__ */ o("span", {
|
|
121
|
+
className: "text-xs text-primary flex items-center gap-1",
|
|
122
|
+
children: [/* @__PURE__ */ a(n, { className: "h-3 w-3" }), "Assigned"]
|
|
123
|
+
})]
|
|
124
|
+
})
|
|
125
|
+
]
|
|
126
|
+
})]
|
|
127
|
+
})
|
|
128
|
+
}) }, e.id)), h.length === 0 && /* @__PURE__ */ o("div", {
|
|
129
|
+
className: "text-center py-12",
|
|
130
|
+
children: [/* @__PURE__ */ a(n, { className: "h-12 w-12 text-muted-foreground mx-auto mb-3" }), /* @__PURE__ */ a("p", {
|
|
131
|
+
className: "text-sm text-muted-foreground",
|
|
132
|
+
children: "No recent activity. Create work items to see updates here."
|
|
133
|
+
})]
|
|
134
|
+
})]
|
|
135
|
+
})]
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
//#endregion
|
|
139
|
+
export { u as CollaborationMessagesPagePage };
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=CollaborationMessagesPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollaborationMessagesPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/CollaborationMessagesPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { MessageSquare, Hash } from 'lucide-react';\nimport { usePlanMagnet } from '../providers/PlanMagnetProvider';\n\nconst GET_RECENT_WORK_ITEMS = gql`\n query GetRecentWorkItemsForMessages($workspaceId: ID!, $pagination: PaginationInput) {\n planmagnetWorkItems(workspaceId: $workspaceId, pagination: $pagination) {\n items {\n id\n key\n title\n status\n priority\n assigneeId\n labels\n tags\n createdAt\n }\n totalCount\n }\n planmagnetProjects(workspaceId: $workspaceId, pagination: $pagination) {\n items {\n id\n name\n key\n }\n totalCount\n }\n }\n`;\n\ninterface WorkItemNode {\n id: string;\n key: string;\n title: string;\n status: string;\n priority: string;\n assigneeId: string | null;\n labels: string[];\n tags: string[];\n createdAt: string;\n}\n\ninterface ProjectNode {\n id: string;\n name: string;\n key: string;\n}\n\ninterface MessagesData {\n workItems: { items: WorkItemNode[]; totalCount: number };\n projects: { items: ProjectNode[]; totalCount: number };\n}\n\nexport function CollaborationMessagesPagePage() {\n const { workspaceId } = usePlanMagnet();\n\n const { data, loading, error } = useQuery<MessagesData>(GET_RECENT_WORK_ITEMS, {\n variables: {\n workspaceId,\n pagination: { first: 50 },\n },\n skip: !workspaceId,\n });\n\n if (loading) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full\" />\n </div>\n );\n }\n\n if (error) {\n return <div className=\"p-6 text-red-500\">Error: {error.message}</div>;\n }\n\n const workItems = data?.planmagnetWorkItems?.items ?? [];\n const projects = data?.planmagnetProjects?.items ?? [];\n const projectMap = new Map(projects.map((p) => [p.id, p]));\n\n const recentActivity = workItems.slice(0, 20).map((wi) => ({\n id: wi.id,\n key: wi.key,\n title: wi.title,\n status: wi.status,\n priority: wi.priority,\n assigneeId: wi.assigneeId,\n createdAt: wi.createdAt,\n labels: wi.labels,\n }));\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Messages</h1>\n <p className=\"text-sm text-muted-foreground\">Recent activity across all projects</p>\n </div>\n <div className=\"space-y-4\">\n {recentActivity.map((activity) => (\n <Card key={activity.id}>\n <CardContent className=\"py-3\">\n <div className=\"flex items-start gap-3\">\n <div className=\"h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center text-xs font-medium text-primary shrink-0 mt-0.5\">\n {activity.key.slice(0, 2)}\n </div>\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">{activity.title}</span>\n <span className=\"text-xs text-muted-foreground flex items-center gap-0.5\">\n <Hash className=\"h-3 w-3\" />\n {activity.key}\n </span>\n <span className=\"text-xs text-muted-foreground\">\n {new Date(activity.createdAt).toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n })}\n </span>\n </div>\n <p className=\"text-sm mt-1 text-muted-foreground\">\n Status: {activity.status.toLowerCase().replace('_', ' ')} · Priority:{' '}\n {activity.priority.toLowerCase()}\n </p>\n <div className=\"flex items-center gap-3 mt-2\">\n <div className=\"flex gap-1\">\n {activity.labels.slice(0, 3).map((label) => (\n <span key={label} className=\"text-xs bg-muted px-1.5 py-0.5 rounded-full\">\n {label}\n </span>\n ))}\n </div>\n {activity.assigneeId && (\n <span className=\"text-xs text-primary flex items-center gap-1\">\n <MessageSquare className=\"h-3 w-3\" />\n Assigned\n </span>\n )}\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\n {recentActivity.length === 0 && (\n <div className=\"text-center py-12\">\n <MessageSquare className=\"h-12 w-12 text-muted-foreground mx-auto mb-3\" />\n <p className=\"text-sm text-muted-foreground\">\n No recent activity. Create work items to see updates here.\n </p>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAQA,IAAM,IAAwB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDjC,SAAgB,IAAgC;CAC9C,IAAM,EAAE,mBAAgB,GAAe,EAEjC,EAAE,SAAM,YAAS,aAAU,EAAuB,GAAuB;EAC7E,WAAW;GACT;GACA,YAAY,EAAE,OAAO,IAAI;GAC1B;EACD,MAAM,CAAC;EACR,CAAC;AAEF,KAAI,EACF,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD,EAAK,WAAU,kFAAmF,CAAA;EAC9F,CAAA;AAIV,KAAI,EACF,QAAO,kBAAC,OAAD;EAAK,WAAU;YAAf,CAAkC,WAAQ,EAAM,QAAc;;CAGvE,IAAM,IAAY,GAAM,qBAAqB,SAAS,EAAE,EAClD,IAAW,GAAM,oBAAoB,SAAS,EAAE;AACnC,KAAI,IAAI,EAAS,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;CAE1D,IAAM,IAAiB,EAAU,MAAM,GAAG,GAAG,CAAC,KAAK,OAAQ;EACzD,IAAI,EAAG;EACP,KAAK,EAAG;EACR,OAAO,EAAG;EACV,QAAQ,EAAG;EACX,UAAU,EAAG;EACb,YAAY,EAAG;EACf,WAAW,EAAG;EACd,QAAQ,EAAG;EACZ,EAAE;AAEH,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GAAI,WAAU;aAAyB;GAAa,CAAA,EACpD,kBAAC,KAAD;GAAG,WAAU;aAAgC;GAAuC,CAAA,CAChF,EAAA,CAAA,EACN,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,EAAe,KAAK,MACnB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cACrB,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBACZ,EAAS,IAAI,MAAM,GAAG,EAAE;MACrB,CAAA,EACN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,kBAAC,QAAD;UAAM,WAAU;oBAAuB,EAAS;UAAa,CAAA;SAC7D,kBAAC,QAAD;UAAM,WAAU;oBAAhB,CACE,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,EAAS,IACL;;SACP,kBAAC,QAAD;UAAM,WAAU;oBACb,IAAI,KAAK,EAAS,UAAU,CAAC,mBAAmB,EAAE,EAAE;WACnD,MAAM;WACN,QAAQ;WACT,CAAC;UACG,CAAA;SACH;;OACN,kBAAC,KAAD;QAAG,WAAU;kBAAb;SAAkD;SACvC,EAAS,OAAO,aAAa,CAAC,QAAQ,KAAK,IAAI;SAAC;SAAoB;SAC5E,EAAS,SAAS,aAAa;SAC9B;;OACJ,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAS,OAAO,MAAM,GAAG,EAAE,CAAC,KAAK,MAChC,kBAAC,QAAD;UAAkB,WAAU;oBACzB;UACI,EAFI,EAEJ,CACP;SACE,CAAA,EACL,EAAS,cACR,kBAAC,QAAD;SAAM,WAAU;mBAAhB,CACE,kBAAC,GAAD,EAAe,WAAU,WAAY,CAAA,EAAA,WAEhC;WAEL;;OACF;QACF;;IACM,CAAA,EACT,EA1CI,EAAS,GA0Cb,CACP,EACD,EAAe,WAAW,KACzB,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAe,WAAU,gDAAiD,CAAA,EAC1E,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAEzC,CAAA,CACA;MAEJ;KACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollaborationNewDiscussionPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/CollaborationNewDiscussionPagePage.tsx"],"names":[],"mappings":"AAgCA,wBAAgB,kCAAkC,4CAiGjD"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
|
|
2
|
+
import { useState as n } from "react";
|
|
3
|
+
import { MessageCircle as r, Save as i, X as a } from "lucide-react";
|
|
4
|
+
import { gql as o } from "@apollo/client";
|
|
5
|
+
import { useQuery as s } from "@apollo/client/react";
|
|
6
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
7
|
+
import { Button as u, Card as d, CardContent as f, CardHeader as p, CardTitle as m, Input as h } from "@burdenoff/fe-libs/ui";
|
|
8
|
+
//#region src/planmagnet/pages/CollaborationNewDiscussionPagePage.tsx
|
|
9
|
+
var g = o`
|
|
10
|
+
query GetProjectsForDiscussion($workspaceId: ID!, $pagination: PaginationInput) {
|
|
11
|
+
planmagnetProjects(workspaceId: $workspaceId, pagination: $pagination) {
|
|
12
|
+
items {
|
|
13
|
+
id
|
|
14
|
+
name
|
|
15
|
+
key
|
|
16
|
+
}
|
|
17
|
+
totalCount
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
21
|
+
function _() {
|
|
22
|
+
let { workspaceId: o } = e(), _ = t(), [v, y] = n({
|
|
23
|
+
title: "",
|
|
24
|
+
content: "",
|
|
25
|
+
projectId: ""
|
|
26
|
+
}), { data: b, loading: x, error: S } = s(g, {
|
|
27
|
+
variables: {
|
|
28
|
+
workspaceId: o,
|
|
29
|
+
pagination: { first: 100 }
|
|
30
|
+
},
|
|
31
|
+
skip: !o
|
|
32
|
+
}), C = b?.planmagnetProjects?.items ?? [];
|
|
33
|
+
return x ? /* @__PURE__ */ c("div", {
|
|
34
|
+
className: "flex items-center justify-center p-12",
|
|
35
|
+
children: /* @__PURE__ */ c("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
|
|
36
|
+
}) : S ? /* @__PURE__ */ l("div", {
|
|
37
|
+
className: "p-6 text-red-500",
|
|
38
|
+
children: ["Error: ", S.message]
|
|
39
|
+
}) : /* @__PURE__ */ l("div", {
|
|
40
|
+
className: "space-y-6 p-6 max-w-4xl",
|
|
41
|
+
children: [/* @__PURE__ */ l("div", {
|
|
42
|
+
className: "flex items-center justify-between",
|
|
43
|
+
children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
|
|
44
|
+
className: "text-2xl font-semibold",
|
|
45
|
+
children: "New Discussion"
|
|
46
|
+
}), /* @__PURE__ */ c("p", {
|
|
47
|
+
className: "text-sm text-muted-foreground",
|
|
48
|
+
children: "Start a new discussion thread with your team."
|
|
49
|
+
})] }), /* @__PURE__ */ l("div", {
|
|
50
|
+
className: "flex gap-2",
|
|
51
|
+
children: [/* @__PURE__ */ l(u, {
|
|
52
|
+
variant: "outline",
|
|
53
|
+
size: "sm",
|
|
54
|
+
onClick: () => _("/collaboration"),
|
|
55
|
+
children: [/* @__PURE__ */ c(a, { className: "mr-1 h-4 w-4" }), "Cancel"]
|
|
56
|
+
}), /* @__PURE__ */ l(u, {
|
|
57
|
+
size: "sm",
|
|
58
|
+
onClick: () => {
|
|
59
|
+
!v.title.trim() || !v.content.trim() || _("/collaboration");
|
|
60
|
+
},
|
|
61
|
+
children: [/* @__PURE__ */ c(i, { className: "mr-1 h-4 w-4" }), "Post Discussion"]
|
|
62
|
+
})]
|
|
63
|
+
})]
|
|
64
|
+
}), /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ c(p, { children: /* @__PURE__ */ l(m, {
|
|
65
|
+
className: "flex items-center gap-2",
|
|
66
|
+
children: [/* @__PURE__ */ c(r, { className: "h-4 w-4" }), "Discussion Details"]
|
|
67
|
+
}) }), /* @__PURE__ */ l(f, {
|
|
68
|
+
className: "space-y-4",
|
|
69
|
+
children: [
|
|
70
|
+
/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("label", {
|
|
71
|
+
className: "text-sm font-medium",
|
|
72
|
+
children: "Title"
|
|
73
|
+
}), /* @__PURE__ */ c(h, {
|
|
74
|
+
value: v.title,
|
|
75
|
+
onChange: (e) => y({
|
|
76
|
+
...v,
|
|
77
|
+
title: e.target.value
|
|
78
|
+
}),
|
|
79
|
+
className: "mt-1",
|
|
80
|
+
placeholder: "e.g. RFC: Search Architecture Proposal"
|
|
81
|
+
})] }),
|
|
82
|
+
/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("label", {
|
|
83
|
+
className: "text-sm font-medium",
|
|
84
|
+
children: "Project (optional)"
|
|
85
|
+
}), /* @__PURE__ */ l("select", {
|
|
86
|
+
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
87
|
+
value: v.projectId,
|
|
88
|
+
onChange: (e) => y({
|
|
89
|
+
...v,
|
|
90
|
+
projectId: e.target.value
|
|
91
|
+
}),
|
|
92
|
+
children: [/* @__PURE__ */ c("option", {
|
|
93
|
+
value: "",
|
|
94
|
+
children: "General"
|
|
95
|
+
}), C.map((e) => /* @__PURE__ */ l("option", {
|
|
96
|
+
value: e.id,
|
|
97
|
+
children: [
|
|
98
|
+
e.name,
|
|
99
|
+
" (",
|
|
100
|
+
e.key,
|
|
101
|
+
")"
|
|
102
|
+
]
|
|
103
|
+
}, e.id))]
|
|
104
|
+
})] }),
|
|
105
|
+
/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("label", {
|
|
106
|
+
className: "text-sm font-medium",
|
|
107
|
+
children: "Content"
|
|
108
|
+
}), /* @__PURE__ */ c("textarea", {
|
|
109
|
+
className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[200px] font-mono",
|
|
110
|
+
value: v.content,
|
|
111
|
+
onChange: (e) => y({
|
|
112
|
+
...v,
|
|
113
|
+
content: e.target.value
|
|
114
|
+
}),
|
|
115
|
+
placeholder: "Write your discussion content... (Markdown supported)"
|
|
116
|
+
})] })
|
|
117
|
+
]
|
|
118
|
+
})] })]
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
//#endregion
|
|
122
|
+
export { _ as CollaborationNewDiscussionPagePage };
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=CollaborationNewDiscussionPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollaborationNewDiscussionPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/CollaborationNewDiscussionPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Button, Input } from '@burdenoff/fe-libs/ui';\nimport { Save, X, MessageCircle } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\n\nconst GET_PROJECTS_FOR_DISCUSSION = gql`\n query GetProjectsForDiscussion($workspaceId: ID!, $pagination: PaginationInput) {\n planmagnetProjects(workspaceId: $workspaceId, pagination: $pagination) {\n items {\n id\n name\n key\n }\n totalCount\n }\n }\n`;\n\ninterface ProjectNode {\n id: string;\n name: string;\n key: string;\n}\n\ninterface ProjectsData {\n projects: { items: ProjectNode[]; totalCount: number };\n}\n\nexport function CollaborationNewDiscussionPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const [form, setForm] = useState({ title: '', content: '', projectId: '' });\n\n const { data, loading, error } = useQuery<ProjectsData>(GET_PROJECTS_FOR_DISCUSSION, {\n variables: {\n workspaceId,\n pagination: { first: 100 },\n },\n skip: !workspaceId,\n });\n\n const projects = data?.planmagnetProjects?.items ?? [];\n\n const handlePost = () => {\n if (!form.title.trim() || !form.content.trim()) return;\n navigate('/collaboration');\n };\n\n if (loading) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full\" />\n </div>\n );\n }\n\n if (error) {\n return <div className=\"p-6 text-red-500\">Error: {error.message}</div>;\n }\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">New Discussion</h1>\n <p className=\"text-sm text-muted-foreground\">\n Start a new discussion thread with your team.\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => navigate('/collaboration')}>\n <X className=\"mr-1 h-4 w-4\" />\n Cancel\n </Button>\n <Button size=\"sm\" onClick={handlePost}>\n <Save className=\"mr-1 h-4 w-4\" />\n Post Discussion\n </Button>\n </div>\n </div>\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <MessageCircle className=\"h-4 w-4\" />\n Discussion Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div>\n <label className=\"text-sm font-medium\">Title</label>\n <Input\n value={form.title}\n onChange={(e) => setForm({ ...form, title: e.target.value })}\n className=\"mt-1\"\n placeholder=\"e.g. RFC: Search Architecture Proposal\"\n />\n </div>\n <div>\n <label className=\"text-sm font-medium\">Project (optional)</label>\n <select\n className=\"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"\n value={form.projectId}\n onChange={(e) => setForm({ ...form, projectId: e.target.value })}\n >\n <option value=\"\">General</option>\n {projects.map((p) => (\n <option key={p.id} value={p.id}>\n {p.name} ({p.key})\n </option>\n ))}\n </select>\n </div>\n <div>\n <label className=\"text-sm font-medium\">Content</label>\n <textarea\n className=\"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[200px] font-mono\"\n value={form.content}\n onChange={(e) => setForm({ ...form, content: e.target.value })}\n placeholder=\"Write your discussion content... (Markdown supported)\"\n />\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AASA,IAAM,IAA8B,CAAG;;;;;;;;;;;;AAuBvC,SAAgB,IAAqC;CACnD,IAAM,EAAE,mBAAgB,GAAe,EACjC,IAAW,GAAuB,EAClC,CAAC,GAAM,KAAW,EAAS;EAAE,OAAO;EAAI,SAAS;EAAI,WAAW;EAAI,CAAC,EAErE,EAAE,SAAM,YAAS,aAAU,EAAuB,GAA6B;EACnF,WAAW;GACT;GACA,YAAY,EAAE,OAAO,KAAK;GAC3B;EACD,MAAM,CAAC;EACR,CAAC,EAEI,IAAW,GAAM,oBAAoB,SAAS,EAAE;AAmBtD,QAZI,IAEA,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD,EAAK,WAAU,kFAAmF,CAAA;EAC9F,CAAA,GAIN,IACK,kBAAC,OAAD;EAAK,WAAU;YAAf,CAAkC,WAAQ,EAAM,QAAc;MAIrE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAyB;IAAmB,CAAA,EAC1D,kBAAC,KAAD;IAAG,WAAU;cAAgC;IAEzC,CAAA,CACA,EAAA,CAAA,EACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KAAQ,SAAQ;KAAU,MAAK;KAAK,eAAe,EAAS,iBAAiB;eAA7E,CACE,kBAAC,GAAD,EAAG,WAAU,gBAAiB,CAAA,EAAA,SAEvB;QACT,kBAAC,GAAD;KAAQ,MAAK;KAAK,eA/BD;AACnB,OAAC,EAAK,MAAM,MAAM,IAAI,CAAC,EAAK,QAAQ,MAAM,IAC9C,EAAS,iBAAiB;;eA6BpB,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,kBAE1B;OACL;MACF;MACN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;GAAW,WAAU;aAArB,CACE,kBAAC,GAAD,EAAe,WAAU,WAAY,CAAA,EAAA,qBAE3B;MACD,CAAA,EACb,kBAAC,GAAD;GAAa,WAAU;aAAvB;IACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;KAAO,WAAU;eAAsB;KAAa,CAAA,EACpD,kBAAC,GAAD;KACE,OAAO,EAAK;KACZ,WAAW,MAAM,EAAQ;MAAE,GAAG;MAAM,OAAO,EAAE,OAAO;MAAO,CAAC;KAC5D,WAAU;KACV,aAAY;KACZ,CAAA,CACE,EAAA,CAAA;IACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;KAAO,WAAU;eAAsB;KAA0B,CAAA,EACjE,kBAAC,UAAD;KACE,WAAU;KACV,OAAO,EAAK;KACZ,WAAW,MAAM,EAAQ;MAAE,GAAG;MAAM,WAAW,EAAE,OAAO;MAAO,CAAC;eAHlE,CAKE,kBAAC,UAAD;MAAQ,OAAM;gBAAG;MAAgB,CAAA,EAChC,EAAS,KAAK,MACb,kBAAC,UAAD;MAAmB,OAAO,EAAE;gBAA5B;OACG,EAAE;OAAK;OAAG,EAAE;OAAI;OACV;QAFI,EAAE,GAEN,CACT,CACK;OACL,EAAA,CAAA;IACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;KAAO,WAAU;eAAsB;KAAe,CAAA,EACtD,kBAAC,YAAD;KACE,WAAU;KACV,OAAO,EAAK;KACZ,WAAW,MAAM,EAAQ;MAAE,GAAG;MAAM,SAAS,EAAE,OAAO;MAAO,CAAC;KAC9D,aAAY;KACZ,CAAA,CACE,EAAA,CAAA;IACM;KACT,EAAA,CAAA,CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardDashboardPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/DashboardDashboardPagePage.tsx"],"names":[],"mappings":"AAuFA,wBAAgB,0BAA0B,4CAwUzC"}
|