@burdenoff/microfe-planmagnet 2026.926.2 → 2026.927.2

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 (53) hide show
  1. package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +1 -1
  2. package/dist/planmagnet/pages/DashboardDashboardPagePage.js +14 -4
  3. package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +1 -1
  4. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +1 -1
  5. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +102 -100
  6. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +1 -1
  7. package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts.map +1 -1
  8. package/dist/planmagnet/pages/ProductsFeaturesPagePage.js +95 -94
  9. package/dist/planmagnet/pages/ProductsFeaturesPagePage.js.map +1 -1
  10. package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -1
  11. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +1 -1
  12. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -1
  13. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts.map +1 -1
  14. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +97 -93
  15. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js.map +1 -1
  16. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts.map +1 -1
  17. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +84 -73
  18. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js.map +1 -1
  19. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts.map +1 -1
  20. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js +13 -8
  21. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js.map +1 -1
  22. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
  23. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +129 -125
  24. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
  25. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts.map +1 -1
  26. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +112 -109
  27. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js.map +1 -1
  28. package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -1
  29. package/dist/planmagnet/pages/ReportsReportsPagePage.js +72 -83
  30. package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -1
  31. package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -1
  32. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +103 -103
  33. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -1
  34. package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts.map +1 -1
  35. package/dist/planmagnet/pages/TasksEditTaskPagePage.js +101 -99
  36. package/dist/planmagnet/pages/TasksEditTaskPagePage.js.map +1 -1
  37. package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
  38. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +127 -125
  39. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
  40. package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -1
  41. package/dist/planmagnet/pages/TasksTasksPagePage.js +8 -11
  42. package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -1
  43. package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +1 -1
  44. package/dist/planmagnet/pages/TeamTeamPagePage.js +67 -68
  45. package/dist/planmagnet/pages/TeamTeamPagePage.js.map +1 -1
  46. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.d.ts.map +1 -1
  47. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js +1 -5
  48. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js.map +1 -1
  49. package/dist/planmagnet/people/People.d.ts +18 -0
  50. package/dist/planmagnet/people/People.d.ts.map +1 -1
  51. package/dist/planmagnet/people/People.js +26 -12
  52. package/dist/planmagnet/people/People.js.map +1 -1
  53. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
- import { usePlanMagnet as e } from "../providers/PlanMagnetProvider.js";
2
- import { parseIntField as t } from "../utils/formValidation.js";
3
- import { useMemo as n, useState as r } from "react";
4
- import { ArrowLeft as i, Save as a } from "lucide-react";
5
- import { gql as o } from "@apollo/client";
6
- import { useMutation as s, useQuery as c } from "@apollo/client/react";
7
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
- import { Button as d, Card as f, CardContent as p, CardHeader as m, CardTitle as h, Input as g } from "@burdenoff/fe-libs/ui";
1
+ import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
2
+ import { parseIntField as n } from "../utils/formValidation.js";
3
+ import { useMemo as r, useState as i } from "react";
4
+ import { ArrowLeft as a, Save as o } from "lucide-react";
5
+ import { gql as s } from "@apollo/client";
6
+ import { useMutation as c, useQuery as l } from "@apollo/client/react";
7
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
+ import { Button as f, Card as p, CardContent as m, CardHeader as h, CardTitle as g, Input as _ } from "@burdenoff/fe-libs/ui";
9
9
  //#region src/planmagnet/pages/TasksEditTaskPagePage.tsx
10
- var _ = o`
10
+ var v = s`
11
11
  query GetWorkItem($workItemId: ID!) {
12
12
  planmagnetWorkItem(id: $workItemId) {
13
13
  id
@@ -25,7 +25,7 @@ var _ = o`
25
25
  updatedAt
26
26
  }
27
27
  }
28
- `, v = o`
28
+ `, y = s`
29
29
  mutation UpdateWorkItem($workItemId: ID!, $input: PlanmagnetUpdateWorkItemInput!) {
30
30
  planmagnetUpdateWorkItem(id: $workItemId, input: $input) {
31
31
  id
@@ -41,114 +41,116 @@ var _ = o`
41
41
  }
42
42
  }
43
43
  `;
44
- function y() {
45
- let { workspaceId: o } = e(), y = new URLSearchParams(window.location.search).get("taskId") ?? "", { data: b, loading: x, error: S } = c(_, {
46
- variables: { workItemId: y },
47
- skip: !o || !y
48
- }), [C, { loading: w, error: T }] = s(v, { refetchQueries: ["GetWorkItems", "GetWorkItem"] }), E = b?.planmagnetWorkItem, D = n(() => ({
49
- title: E?.title ?? "",
50
- description: E?.description ?? "",
51
- priority: E?.priority ?? "MEDIUM",
52
- type: E?.type ?? "STORY",
53
- storyPoints: E?.storyPoints?.toString() ?? "0",
54
- labels: (E?.labels ?? []).join(", "),
55
- dueDate: E?.dueDate ?? ""
56
- }), [E]), [O, k] = r({}), A = {
57
- ...D,
58
- ...O
59
- }, j = (e) => k(e), M = t(A.storyPoints, { min: 0 }), N = async () => {
60
- !o || !y || M.invalid || await C({ variables: {
61
- workItemId: y,
44
+ function b() {
45
+ let { workspaceId: s } = e(), b = new URLSearchParams(window.location.search).get("taskId") ?? "", x = t(), { data: S, loading: C, error: w } = l(v, {
46
+ variables: { workItemId: b },
47
+ skip: !s || !b
48
+ }), [T, { loading: E, error: D }] = c(y, { refetchQueries: ["GetWorkItems", "GetWorkItem"] }), O = S?.planmagnetWorkItem, k = r(() => ({
49
+ title: O?.title ?? "",
50
+ description: O?.description ?? "",
51
+ priority: O?.priority ?? "MEDIUM",
52
+ type: O?.type ?? "STORY",
53
+ storyPoints: O?.storyPoints?.toString() ?? "0",
54
+ labels: (O?.labels ?? []).join(", "),
55
+ dueDate: O?.dueDate ?? ""
56
+ }), [O]), [A, j] = i({}), M = {
57
+ ...k,
58
+ ...A
59
+ }, N = (e) => j(e), P = n(M.storyPoints, { min: 0 }), F = async () => {
60
+ !s || !b || P.invalid || await T({ variables: {
61
+ workItemId: b,
62
62
  input: {
63
- title: A.title,
64
- description: A.description || void 0,
65
- priority: A.priority,
66
- type: A.type,
67
- storyPoints: M.value,
68
- labels: A.labels ? A.labels.split(",").map((e) => e.trim()).filter(Boolean) : void 0,
69
- dueDate: A.dueDate || void 0
63
+ title: M.title,
64
+ description: M.description || void 0,
65
+ priority: M.priority,
66
+ type: M.type,
67
+ storyPoints: P.value,
68
+ labels: M.labels ? M.labels.split(",").map((e) => e.trim()).filter(Boolean) : void 0,
69
+ dueDate: M.dueDate || void 0
70
70
  }
71
71
  } });
72
72
  };
73
- if (x && !b) return /* @__PURE__ */ l("div", {
73
+ if (C && !S) return /* @__PURE__ */ u("div", {
74
74
  className: "flex items-center justify-center p-12",
75
- children: /* @__PURE__ */ l("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
75
+ children: /* @__PURE__ */ u("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
76
76
  });
77
- if (S) return /* @__PURE__ */ u("div", {
77
+ if (w) return /* @__PURE__ */ d("div", {
78
78
  className: "p-6 text-destructive",
79
- children: ["Error: ", S.message]
79
+ children: ["Error: ", w.message]
80
80
  });
81
- if (!b?.planmagnetWorkItem) return /* @__PURE__ */ l("div", {
81
+ if (!S?.planmagnetWorkItem) return /* @__PURE__ */ u("div", {
82
82
  className: "p-6 text-muted-foreground",
83
83
  children: "Task not found."
84
84
  });
85
- let P = b.planmagnetWorkItem;
86
- return /* @__PURE__ */ u("div", {
85
+ let I = S.planmagnetWorkItem;
86
+ return /* @__PURE__ */ d("div", {
87
87
  className: "space-y-6 p-6 max-w-4xl",
88
88
  children: [
89
- /* @__PURE__ */ u("div", {
89
+ /* @__PURE__ */ d("div", {
90
90
  className: "flex items-center justify-between",
91
- children: [/* @__PURE__ */ u("div", {
91
+ children: [/* @__PURE__ */ d("div", {
92
92
  className: "flex items-center gap-3",
93
- children: [/* @__PURE__ */ l(d, {
93
+ children: [/* @__PURE__ */ u(f, {
94
94
  variant: "ghost",
95
95
  size: "sm",
96
- children: /* @__PURE__ */ l(i, { className: "h-4 w-4" })
97
- }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("h1", {
96
+ "aria-label": "Back to the task",
97
+ onClick: () => x(`/tasks/task-detail-page?taskId=${encodeURIComponent(b)}`),
98
+ children: /* @__PURE__ */ u(a, { className: "h-4 w-4" })
99
+ }), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("h1", {
98
100
  className: "text-2xl font-semibold",
99
101
  children: "Edit Task"
100
- }), /* @__PURE__ */ l("p", {
102
+ }), /* @__PURE__ */ u("p", {
101
103
  className: "text-sm text-muted-foreground",
102
- children: P.title
104
+ children: I.title
103
105
  })] })]
104
- }), /* @__PURE__ */ u(d, {
106
+ }), /* @__PURE__ */ d(f, {
105
107
  size: "sm",
106
- onClick: N,
107
- disabled: w || M.invalid,
108
- children: [/* @__PURE__ */ l(a, { className: "mr-1 h-4 w-4" }), w ? "Saving..." : "Save Changes"]
108
+ onClick: F,
109
+ disabled: E || P.invalid,
110
+ children: [/* @__PURE__ */ u(o, { className: "mr-1 h-4 w-4" }), E ? "Saving..." : "Save Changes"]
109
111
  })]
110
112
  }),
111
- T && /* @__PURE__ */ l("div", {
113
+ D && /* @__PURE__ */ u("div", {
112
114
  role: "alert",
113
115
  className: "p-3 bg-destructive/10 text-destructive rounded-md text-sm",
114
- children: T.message
116
+ children: D.message
115
117
  }),
116
- /* @__PURE__ */ u(f, { children: [/* @__PURE__ */ l(m, { children: /* @__PURE__ */ l(h, { children: "Task Details" }) }), /* @__PURE__ */ u(p, {
118
+ /* @__PURE__ */ d(p, { children: [/* @__PURE__ */ u(h, { children: /* @__PURE__ */ u(g, { children: "Task Details" }) }), /* @__PURE__ */ d(m, {
117
119
  className: "space-y-4",
118
120
  children: [
119
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
121
+ /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
120
122
  className: "text-sm font-medium",
121
123
  children: "Title"
122
- }), /* @__PURE__ */ l(g, {
123
- value: A.title,
124
- onChange: (e) => j({
125
- ...A,
124
+ }), /* @__PURE__ */ u(_, {
125
+ value: M.title,
126
+ onChange: (e) => N({
127
+ ...M,
126
128
  title: e.target.value
127
129
  }),
128
130
  className: "mt-1"
129
131
  })] }),
130
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
132
+ /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
131
133
  className: "text-sm font-medium",
132
134
  children: "Description"
133
- }), /* @__PURE__ */ l("textarea", {
135
+ }), /* @__PURE__ */ u("textarea", {
134
136
  className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[100px]",
135
- value: A.description,
136
- onChange: (e) => j({
137
- ...A,
137
+ value: M.description,
138
+ onChange: (e) => N({
139
+ ...M,
138
140
  description: e.target.value
139
141
  })
140
142
  })] }),
141
- /* @__PURE__ */ u("div", {
143
+ /* @__PURE__ */ d("div", {
142
144
  className: "grid grid-cols-3 gap-4",
143
145
  children: [
144
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
146
+ /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
145
147
  className: "text-sm font-medium",
146
148
  children: "Priority"
147
- }), /* @__PURE__ */ l("select", {
149
+ }), /* @__PURE__ */ u("select", {
148
150
  className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
149
- value: A.priority,
150
- onChange: (e) => j({
151
- ...A,
151
+ value: M.priority,
152
+ onChange: (e) => N({
153
+ ...M,
152
154
  priority: e.target.value
153
155
  }),
154
156
  children: [
@@ -156,19 +158,19 @@ function y() {
156
158
  "MEDIUM",
157
159
  "HIGH",
158
160
  "CRITICAL"
159
- ].map((e) => /* @__PURE__ */ l("option", {
161
+ ].map((e) => /* @__PURE__ */ u("option", {
160
162
  value: e,
161
163
  children: e.toLowerCase()
162
164
  }, e))
163
165
  })] }),
164
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
166
+ /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
165
167
  className: "text-sm font-medium",
166
168
  children: "Type"
167
- }), /* @__PURE__ */ l("select", {
169
+ }), /* @__PURE__ */ u("select", {
168
170
  className: "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
169
- value: A.type,
170
- onChange: (e) => j({
171
- ...A,
171
+ value: M.type,
172
+ onChange: (e) => N({
173
+ ...M,
172
174
  type: e.target.value
173
175
  }),
174
176
  children: [
@@ -177,31 +179,31 @@ function y() {
177
179
  "TASK",
178
180
  "EPIC",
179
181
  "SUB_TASK"
180
- ].map((e) => /* @__PURE__ */ l("option", {
182
+ ].map((e) => /* @__PURE__ */ u("option", {
181
183
  value: e,
182
184
  children: e.toLowerCase().replace("_", " ")
183
185
  }, e))
184
186
  })] }),
185
- /* @__PURE__ */ u("div", { children: [
186
- /* @__PURE__ */ l("label", {
187
+ /* @__PURE__ */ d("div", { children: [
188
+ /* @__PURE__ */ u("label", {
187
189
  htmlFor: "task-story-points",
188
190
  className: "text-sm font-medium",
189
191
  children: "Story Points"
190
192
  }),
191
- /* @__PURE__ */ l(g, {
193
+ /* @__PURE__ */ u(_, {
192
194
  id: "task-story-points",
193
195
  type: "number",
194
196
  min: 0,
195
197
  step: 1,
196
- value: A.storyPoints,
197
- onChange: (e) => j({
198
- ...A,
198
+ value: M.storyPoints,
199
+ onChange: (e) => N({
200
+ ...M,
199
201
  storyPoints: e.target.value
200
202
  }),
201
- "aria-invalid": M.invalid,
203
+ "aria-invalid": P.invalid,
202
204
  className: "mt-1"
203
205
  }),
204
- M.invalid && /* @__PURE__ */ l("p", {
206
+ P.invalid && /* @__PURE__ */ u("p", {
205
207
  role: "alert",
206
208
  className: "mt-1 text-xs text-destructive",
207
209
  children: "Story points must be a whole number, 0 or more."
@@ -209,26 +211,26 @@ function y() {
209
211
  ] })
210
212
  ]
211
213
  }),
212
- /* @__PURE__ */ u("div", {
214
+ /* @__PURE__ */ d("div", {
213
215
  className: "grid grid-cols-2 gap-4",
214
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
216
+ children: [/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
215
217
  className: "text-sm font-medium",
216
218
  children: "Due Date"
217
- }), /* @__PURE__ */ l(g, {
219
+ }), /* @__PURE__ */ u(_, {
218
220
  type: "date",
219
- value: A.dueDate,
220
- onChange: (e) => j({
221
- ...A,
221
+ value: M.dueDate,
222
+ onChange: (e) => N({
223
+ ...M,
222
224
  dueDate: e.target.value
223
225
  }),
224
226
  className: "mt-1"
225
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
227
+ })] }), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
226
228
  className: "text-sm font-medium",
227
229
  children: "Labels"
228
- }), /* @__PURE__ */ l(g, {
229
- value: A.labels,
230
- onChange: (e) => j({
231
- ...A,
230
+ }), /* @__PURE__ */ u(_, {
231
+ value: M.labels,
232
+ onChange: (e) => N({
233
+ ...M,
232
234
  labels: e.target.value
233
235
  }),
234
236
  className: "mt-1"
@@ -240,6 +242,6 @@ function y() {
240
242
  });
241
243
  }
242
244
  //#endregion
243
- export { y as TasksEditTaskPagePage };
245
+ export { b as TasksEditTaskPagePage };
244
246
 
245
247
  //# sourceMappingURL=TasksEditTaskPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TasksEditTaskPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/TasksEditTaskPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState, useMemo } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery, useMutation } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Button, Input } from '@burdenoff/fe-libs/ui';\nimport { Save, ArrowLeft } from 'lucide-react';\nimport { usePlanMagnet } from '../providers/PlanMagnetProvider';\nimport { parseIntField } from '../utils/formValidation';\n\nconst GET_WORK_ITEM = gql`\n query GetWorkItem($workItemId: ID!) {\n planmagnetWorkItem(id: $workItemId) {\n id\n title\n description\n type\n status\n priority\n key\n storyPoints\n dueDate\n labels\n tags\n createdAt\n updatedAt\n }\n }\n`;\n\nconst UPDATE_WORK_ITEM = gql`\n mutation UpdateWorkItem($workItemId: ID!, $input: PlanmagnetUpdateWorkItemInput!) {\n planmagnetUpdateWorkItem(id: $workItemId, input: $input) {\n id\n title\n description\n type\n status\n priority\n storyPoints\n dueDate\n labels\n updatedAt\n }\n }\n`;\n\ninterface WorkItemNode {\n id: string;\n title: string;\n description: string | null;\n type: string;\n status: string;\n priority: string;\n key: string;\n storyPoints: number | null;\n dueDate: string | null;\n labels: string[];\n tags: string[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport function TasksEditTaskPagePage() {\n const { workspaceId } = usePlanMagnet();\n\n // In a real app, workItemId comes from the route params.\n // For now we use a placeholder that the host shell should provide.\n const workItemId = new URLSearchParams(window.location.search).get('taskId') ?? '';\n\n const { data, loading, error } = useQuery<{\n planmagnetWorkItem: WorkItemNode;\n }>(GET_WORK_ITEM, {\n variables: { workItemId },\n skip: !workspaceId || !workItemId,\n });\n\n const [updateWorkItem, { loading: saving, error: saveError }] = useMutation(UPDATE_WORK_ITEM, {\n refetchQueries: ['GetWorkItems', 'GetWorkItem'],\n });\n\n const workItem = data?.planmagnetWorkItem;\n\n const defaultForm = useMemo(\n () => ({\n title: workItem?.title ?? '',\n description: workItem?.description ?? '',\n priority: workItem?.priority ?? 'MEDIUM',\n type: workItem?.type ?? 'STORY',\n storyPoints: workItem?.storyPoints?.toString() ?? '0',\n labels: (workItem?.labels ?? []).join(', '),\n dueDate: workItem?.dueDate ?? '',\n }),\n [workItem]\n );\n\n const [formOverrides, setFormOverrides] = useState<Record<string, string>>({});\n const form = { ...defaultForm, ...formOverrides };\n const setForm = (updates: Record<string, string>) => setFormOverrides(updates);\n\n // Story points are a whole number, 0 or more (BOFF-7833); the service refuses anything else.\n const storyPoints = parseIntField(form.storyPoints, { min: 0 });\n\n const handleSave = async () => {\n if (!workspaceId || !workItemId || storyPoints.invalid) return;\n // mutation-error: shown from the hook's `error`; nothing runs on failure.\n await updateWorkItem({\n variables: {\n workItemId,\n input: {\n title: form.title,\n description: form.description || undefined,\n priority: form.priority,\n type: form.type,\n storyPoints: storyPoints.value,\n labels: form.labels\n ? form.labels\n .split(',')\n .map((l) => l.trim())\n .filter(Boolean)\n : undefined,\n dueDate: form.dueDate || undefined,\n },\n },\n });\n };\n\n // Only before the first load: a refetch must not blank the page (it\n\n // unmounts every component on it and loses their state).\n\n if (loading && !data) {\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-destructive\">Error: {error.message}</div>;\n }\n\n if (!data?.planmagnetWorkItem) {\n return <div className=\"p-6 text-muted-foreground\">Task not found.</div>;\n }\n\n const task = data.planmagnetWorkItem;\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <Button variant=\"ghost\" size=\"sm\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <h1 className=\"text-2xl font-semibold\">Edit Task</h1>\n <p className=\"text-sm text-muted-foreground\">{task.title}</p>\n </div>\n </div>\n <Button size=\"sm\" onClick={handleSave} disabled={saving || storyPoints.invalid}>\n <Save className=\"mr-1 h-4 w-4\" />\n {saving ? 'Saving...' : 'Save Changes'}\n </Button>\n </div>\n {saveError && (\n <div role=\"alert\" className=\"p-3 bg-destructive/10 text-destructive rounded-md text-sm\">\n {saveError.message}\n </div>\n )}\n <Card>\n <CardHeader>\n <CardTitle>Task Details</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 />\n </div>\n <div>\n <label className=\"text-sm font-medium\">Description</label>\n <textarea\n className=\"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[100px]\"\n value={form.description}\n onChange={(e) => setForm({ ...form, description: e.target.value })}\n />\n </div>\n <div className=\"grid grid-cols-3 gap-4\">\n <div>\n <label className=\"text-sm font-medium\">Priority</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.priority}\n onChange={(e) => setForm({ ...form, priority: e.target.value })}\n >\n {['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'].map((p) => (\n <option key={p} value={p}>\n {p.toLowerCase()}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label className=\"text-sm font-medium\">Type</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.type}\n onChange={(e) => setForm({ ...form, type: e.target.value })}\n >\n {['STORY', 'BUG', 'TASK', 'EPIC', 'SUB_TASK'].map((t) => (\n <option key={t} value={t}>\n {t.toLowerCase().replace('_', ' ')}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label htmlFor=\"task-story-points\" className=\"text-sm font-medium\">\n Story Points\n </label>\n <Input\n id=\"task-story-points\"\n type=\"number\"\n min={0}\n step={1}\n value={form.storyPoints}\n onChange={(e) => setForm({ ...form, storyPoints: e.target.value })}\n aria-invalid={storyPoints.invalid}\n className=\"mt-1\"\n />\n {storyPoints.invalid && (\n <p role=\"alert\" className=\"mt-1 text-xs text-destructive\">\n Story points must be a whole number, 0 or more.\n </p>\n )}\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <label className=\"text-sm font-medium\">Due Date</label>\n <Input\n type=\"date\"\n value={form.dueDate}\n onChange={(e) => setForm({ ...form, dueDate: e.target.value })}\n className=\"mt-1\"\n />\n </div>\n <div>\n <label className=\"text-sm font-medium\">Labels</label>\n <Input\n value={form.labels}\n onChange={(e) => setForm({ ...form, labels: e.target.value })}\n className=\"mt-1\"\n />\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TasksEditTaskPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/TasksEditTaskPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState, useMemo } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery, useMutation } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Button, Input } from '@burdenoff/fe-libs/ui';\nimport { Save, ArrowLeft } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { parseIntField } from '../utils/formValidation';\n\nconst GET_WORK_ITEM = gql`\n query GetWorkItem($workItemId: ID!) {\n planmagnetWorkItem(id: $workItemId) {\n id\n title\n description\n type\n status\n priority\n key\n storyPoints\n dueDate\n labels\n tags\n createdAt\n updatedAt\n }\n }\n`;\n\nconst UPDATE_WORK_ITEM = gql`\n mutation UpdateWorkItem($workItemId: ID!, $input: PlanmagnetUpdateWorkItemInput!) {\n planmagnetUpdateWorkItem(id: $workItemId, input: $input) {\n id\n title\n description\n type\n status\n priority\n storyPoints\n dueDate\n labels\n updatedAt\n }\n }\n`;\n\ninterface WorkItemNode {\n id: string;\n title: string;\n description: string | null;\n type: string;\n status: string;\n priority: string;\n key: string;\n storyPoints: number | null;\n dueDate: string | null;\n labels: string[];\n tags: string[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport function TasksEditTaskPagePage() {\n const { workspaceId } = usePlanMagnet();\n\n // In a real app, workItemId comes from the route params.\n // For now we use a placeholder that the host shell should provide.\n const workItemId = new URLSearchParams(window.location.search).get('taskId') ?? '';\n const navigate = usePlanMagnetNavigate();\n\n const { data, loading, error } = useQuery<{\n planmagnetWorkItem: WorkItemNode;\n }>(GET_WORK_ITEM, {\n variables: { workItemId },\n skip: !workspaceId || !workItemId,\n });\n\n const [updateWorkItem, { loading: saving, error: saveError }] = useMutation(UPDATE_WORK_ITEM, {\n refetchQueries: ['GetWorkItems', 'GetWorkItem'],\n });\n\n const workItem = data?.planmagnetWorkItem;\n\n const defaultForm = useMemo(\n () => ({\n title: workItem?.title ?? '',\n description: workItem?.description ?? '',\n priority: workItem?.priority ?? 'MEDIUM',\n type: workItem?.type ?? 'STORY',\n storyPoints: workItem?.storyPoints?.toString() ?? '0',\n labels: (workItem?.labels ?? []).join(', '),\n dueDate: workItem?.dueDate ?? '',\n }),\n [workItem]\n );\n\n const [formOverrides, setFormOverrides] = useState<Record<string, string>>({});\n const form = { ...defaultForm, ...formOverrides };\n const setForm = (updates: Record<string, string>) => setFormOverrides(updates);\n\n // Story points are a whole number, 0 or more (BOFF-7833); the service refuses anything else.\n const storyPoints = parseIntField(form.storyPoints, { min: 0 });\n\n const handleSave = async () => {\n if (!workspaceId || !workItemId || storyPoints.invalid) return;\n // mutation-error: shown from the hook's `error`; nothing runs on failure.\n await updateWorkItem({\n variables: {\n workItemId,\n input: {\n title: form.title,\n description: form.description || undefined,\n priority: form.priority,\n type: form.type,\n storyPoints: storyPoints.value,\n labels: form.labels\n ? form.labels\n .split(',')\n .map((l) => l.trim())\n .filter(Boolean)\n : undefined,\n dueDate: form.dueDate || undefined,\n },\n },\n });\n };\n\n // Only before the first load: a refetch must not blank the page (it\n\n // unmounts every component on it and loses their state).\n\n if (loading && !data) {\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-destructive\">Error: {error.message}</div>;\n }\n\n if (!data?.planmagnetWorkItem) {\n return <div className=\"p-6 text-muted-foreground\">Task not found.</div>;\n }\n\n const task = data.planmagnetWorkItem;\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Back to the task\"\n onClick={() =>\n navigate(`/tasks/task-detail-page?taskId=${encodeURIComponent(workItemId)}`)\n }\n >\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <h1 className=\"text-2xl font-semibold\">Edit Task</h1>\n <p className=\"text-sm text-muted-foreground\">{task.title}</p>\n </div>\n </div>\n <Button size=\"sm\" onClick={handleSave} disabled={saving || storyPoints.invalid}>\n <Save className=\"mr-1 h-4 w-4\" />\n {saving ? 'Saving...' : 'Save Changes'}\n </Button>\n </div>\n {saveError && (\n <div role=\"alert\" className=\"p-3 bg-destructive/10 text-destructive rounded-md text-sm\">\n {saveError.message}\n </div>\n )}\n <Card>\n <CardHeader>\n <CardTitle>Task Details</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 />\n </div>\n <div>\n <label className=\"text-sm font-medium\">Description</label>\n <textarea\n className=\"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[100px]\"\n value={form.description}\n onChange={(e) => setForm({ ...form, description: e.target.value })}\n />\n </div>\n <div className=\"grid grid-cols-3 gap-4\">\n <div>\n <label className=\"text-sm font-medium\">Priority</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.priority}\n onChange={(e) => setForm({ ...form, priority: e.target.value })}\n >\n {['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'].map((p) => (\n <option key={p} value={p}>\n {p.toLowerCase()}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label className=\"text-sm font-medium\">Type</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.type}\n onChange={(e) => setForm({ ...form, type: e.target.value })}\n >\n {['STORY', 'BUG', 'TASK', 'EPIC', 'SUB_TASK'].map((t) => (\n <option key={t} value={t}>\n {t.toLowerCase().replace('_', ' ')}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label htmlFor=\"task-story-points\" className=\"text-sm font-medium\">\n Story Points\n </label>\n <Input\n id=\"task-story-points\"\n type=\"number\"\n min={0}\n step={1}\n value={form.storyPoints}\n onChange={(e) => setForm({ ...form, storyPoints: e.target.value })}\n aria-invalid={storyPoints.invalid}\n className=\"mt-1\"\n />\n {storyPoints.invalid && (\n <p role=\"alert\" className=\"mt-1 text-xs text-destructive\">\n Story points must be a whole number, 0 or more.\n </p>\n )}\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <label className=\"text-sm font-medium\">Due Date</label>\n <Input\n type=\"date\"\n value={form.dueDate}\n onChange={(e) => setForm({ ...form, dueDate: e.target.value })}\n className=\"mt-1\"\n />\n </div>\n <div>\n <label className=\"text-sm font-medium\">Labels</label>\n <Input\n value={form.labels}\n onChange={(e) => setForm({ ...form, labels: e.target.value })}\n className=\"mt-1\"\n />\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TasksTaskDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/TasksTaskDetailPagePage.tsx"],"names":[],"mappings":"AAsSA,wBAAgB,uBAAuB,4CAgItC"}
1
+ {"version":3,"file":"TasksTaskDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/TasksTaskDetailPagePage.tsx"],"names":[],"mappings":"AAySA,wBAAgB,uBAAuB,4CAkItC"}