@parallelworks/tandem-web 0.139.2 → 0.140.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.
package/routeTree.gen.js CHANGED
@@ -44,27 +44,28 @@ import { Route as F } from "./routes/_workspace/settings/notifications.js";
44
44
  import { Route as I } from "./routes/_workspace/settings/roles.js";
45
45
  import { Route as L } from "./routes/_workspace/settings/runners.js";
46
46
  import { Route as R } from "./routes/_workspace/settings/sessions.js";
47
- import { Route as z } from "./routes/_workspace/settings/sso.js";
48
- import { Route as B } from "./routes/_workspace/settings/teams.js";
49
- import { Route as V } from "./routes/_workspace/settings/tokens.js";
50
- import { Route as H } from "./routes/_workspace/settings/webhooks.js";
51
- import { Route as U } from "./routes/_workspace/teams/_key.js";
52
- import { Route as W } from "./routes/docs/_tag/index.js";
53
- import { Route as G } from "./routes/docs/_tag/_endpoint.js";
54
- import { Route as K } from "./routes/sites._workspace._site.js";
55
- import { Route as q } from "./routes/_workspace/cycles/_key/index.js";
56
- import { Route as se } from "./routes/_workspace/cycles/_key/_number.js";
57
- import { Route as ce } from "./routes/_workspace/teams/_key/index.js";
58
- import { Route as le } from "./routes/_workspace/teams/_key/areas.js";
59
- import { Route as ue } from "./routes/_workspace/teams/_key/decisions.js";
60
- import { Route as de } from "./routes/_workspace/teams/_key/issues.js";
61
- import { Route as fe } from "./routes/_workspace/teams/_key/projects.js";
62
- import { Route as pe } from "./routes/_workspace/teams/_key/settings.js";
63
- import { Route as me } from "./routes/_workspace/teams/_key/triage.js";
64
- import { Route as he } from "./routes/_workspace/teams/_key/cycles/index.js";
65
- import { Route as ge } from "./routes/_workspace/teams/_key/cycles/_number.js";
47
+ import { Route as z } from "./routes/_workspace/settings/slack.js";
48
+ import { Route as B } from "./routes/_workspace/settings/sso.js";
49
+ import { Route as V } from "./routes/_workspace/settings/teams.js";
50
+ import { Route as H } from "./routes/_workspace/settings/tokens.js";
51
+ import { Route as U } from "./routes/_workspace/settings/webhooks.js";
52
+ import { Route as W } from "./routes/_workspace/teams/_key.js";
53
+ import { Route as G } from "./routes/docs/_tag/index.js";
54
+ import { Route as K } from "./routes/docs/_tag/_endpoint.js";
55
+ import { Route as q } from "./routes/sites._workspace._site.js";
56
+ import { Route as se } from "./routes/_workspace/cycles/_key/index.js";
57
+ import { Route as ce } from "./routes/_workspace/cycles/_key/_number.js";
58
+ import { Route as le } from "./routes/_workspace/teams/_key/index.js";
59
+ import { Route as ue } from "./routes/_workspace/teams/_key/areas.js";
60
+ import { Route as de } from "./routes/_workspace/teams/_key/decisions.js";
61
+ import { Route as fe } from "./routes/_workspace/teams/_key/issues.js";
62
+ import { Route as pe } from "./routes/_workspace/teams/_key/projects.js";
63
+ import { Route as me } from "./routes/_workspace/teams/_key/settings.js";
64
+ import { Route as he } from "./routes/_workspace/teams/_key/triage.js";
65
+ import { Route as ge } from "./routes/_workspace/teams/_key/cycles/index.js";
66
+ import { Route as _e } from "./routes/_workspace/teams/_key/cycles/_number.js";
66
67
  // src/routeTree.gen.ts
67
- var _e = ee.update({
68
+ var ve = ee.update({
68
69
  id: "/",
69
70
  path: "/",
70
71
  getParentRoute: () => e
@@ -72,7 +73,7 @@ var _e = ee.update({
72
73
  id: "/$workspace",
73
74
  path: "/$workspace",
74
75
  getParentRoute: () => e
75
- }), ve = ne.update({
76
+ }), ye = ne.update({
76
77
  id: "/device",
77
78
  path: "/device",
78
79
  getParentRoute: () => e
@@ -80,23 +81,23 @@ var _e = ee.update({
80
81
  id: "/docs",
81
82
  path: "/docs",
82
83
  getParentRoute: () => e
83
- }), ye = ie.update({
84
+ }), be = ie.update({
84
85
  id: "/login",
85
86
  path: "/login",
86
87
  getParentRoute: () => e
87
- }), be = ae.update({
88
+ }), xe = ae.update({
88
89
  id: "/new",
89
90
  path: "/new",
90
91
  getParentRoute: () => e
91
- }), xe = oe.update({
92
+ }), Se = oe.update({
92
93
  id: "/no-access",
93
94
  path: "/no-access",
94
95
  getParentRoute: () => e
95
- }), Se = t.update({
96
+ }), Ce = t.update({
96
97
  id: "/",
97
98
  path: "/",
98
99
  getParentRoute: () => J
99
- }), Ce = n.update({
100
+ }), we = n.update({
100
101
  id: "/decisions",
101
102
  path: "/decisions",
102
103
  getParentRoute: () => J
@@ -104,7 +105,7 @@ var _e = ee.update({
104
105
  id: "/docs",
105
106
  path: "/docs",
106
107
  getParentRoute: () => J
107
- }), we = i.update({
108
+ }), Z = i.update({
108
109
  id: "/graph",
109
110
  path: "/graph",
110
111
  getParentRoute: () => J
@@ -116,7 +117,7 @@ var _e = ee.update({
116
117
  id: "/notifications",
117
118
  path: "/notifications",
118
119
  getParentRoute: () => J
119
- }), Z = s.update({
120
+ }), Q = s.update({
120
121
  id: "/settings",
121
122
  path: "/settings",
122
123
  getParentRoute: () => J
@@ -132,263 +133,268 @@ var _e = ee.update({
132
133
  id: "/request/$token",
133
134
  path: "/request/$token",
134
135
  getParentRoute: () => e
135
- }), Q = d.update({
136
+ }), Ae = d.update({
136
137
  id: "/share/$secret",
137
138
  path: "/share/$secret",
138
139
  getParentRoute: () => e
139
- }), Ae = f.update({
140
+ }), je = f.update({
140
141
  id: "/agents/",
141
142
  path: "/agents/",
142
143
  getParentRoute: () => J
143
- }), je = p.update({
144
+ }), Me = p.update({
144
145
  id: "/agents/$slug",
145
146
  path: "/agents/$slug",
146
147
  getParentRoute: () => J
147
- }), Me = m.update({
148
+ }), Ne = m.update({
148
149
  id: "/areas/",
149
150
  path: "/areas/",
150
151
  getParentRoute: () => J
151
- }), Ne = h.update({
152
+ }), Pe = h.update({
152
153
  id: "/areas/$area",
153
154
  path: "/areas/$area",
154
155
  getParentRoute: () => J
155
- }), Pe = g.update({
156
+ }), Fe = g.update({
156
157
  id: "/",
157
158
  path: "/",
158
159
  getParentRoute: () => X
159
- }), Fe = _.update({
160
+ }), Ie = _.update({
160
161
  id: "/$doc",
161
162
  path: "/$doc",
162
163
  getParentRoute: () => X
163
- }), Ie = v.update({
164
+ }), Le = v.update({
164
165
  id: "/initiatives/",
165
166
  path: "/initiatives/",
166
167
  getParentRoute: () => J
167
- }), Le = y.update({
168
+ }), Re = y.update({
168
169
  id: "/initiatives/$initiativeId",
169
170
  path: "/initiatives/$initiativeId",
170
171
  getParentRoute: () => J
171
- }), Re = b.update({
172
+ }), ze = b.update({
172
173
  id: "/issues/",
173
174
  path: "/issues/",
174
175
  getParentRoute: () => J
175
- }), ze = x.update({
176
+ }), Be = x.update({
176
177
  id: "/issues/$identifier",
177
178
  path: "/issues/$identifier",
178
179
  getParentRoute: () => J
179
- }), Be = S.update({
180
+ }), Ve = S.update({
180
181
  id: "/knowledge/",
181
182
  path: "/knowledge/",
182
183
  getParentRoute: () => J
183
- }), Ve = C.update({
184
+ }), He = C.update({
184
185
  id: "/knowledge/$term",
185
186
  path: "/knowledge/$term",
186
187
  getParentRoute: () => J
187
- }), He = w.update({
188
+ }), Ue = w.update({
188
189
  id: "/people/$username",
189
190
  path: "/people/$username",
190
191
  getParentRoute: () => J
191
- }), Ue = T.update({
192
+ }), We = T.update({
192
193
  id: "/projects/",
193
194
  path: "/projects/",
194
195
  getParentRoute: () => J
195
- }), We = E.update({
196
+ }), Ge = E.update({
196
197
  id: "/projects/$projectId",
197
198
  path: "/projects/$projectId",
198
199
  getParentRoute: () => J
199
- }), Ge = D.update({
200
+ }), Ke = D.update({
200
201
  id: "/",
201
202
  path: "/",
202
- getParentRoute: () => Z
203
- }), Ke = O.update({
203
+ getParentRoute: () => Q
204
+ }), qe = O.update({
204
205
  id: "/account",
205
206
  path: "/account",
206
- getParentRoute: () => Z
207
- }), qe = k.update({
207
+ getParentRoute: () => Q
208
+ }), Je = k.update({
208
209
  id: "/audit-log",
209
210
  path: "/audit-log",
210
- getParentRoute: () => Z
211
- }), Je = A.update({
211
+ getParentRoute: () => Q
212
+ }), Ye = A.update({
212
213
  id: "/connections",
213
214
  path: "/connections",
214
- getParentRoute: () => Z
215
- }), Ye = j.update({
215
+ getParentRoute: () => Q
216
+ }), Xe = j.update({
216
217
  id: "/github",
217
218
  path: "/github",
218
- getParentRoute: () => Z
219
- }), Xe = M.update({
219
+ getParentRoute: () => Q
220
+ }), Ze = M.update({
220
221
  id: "/groups",
221
222
  path: "/groups",
222
- getParentRoute: () => Z
223
- }), Ze = N.update({
223
+ getParentRoute: () => Q
224
+ }), Qe = N.update({
224
225
  id: "/labels",
225
226
  path: "/labels",
226
- getParentRoute: () => Z
227
- }), Qe = P.update({
227
+ getParentRoute: () => Q
228
+ }), $e = P.update({
228
229
  id: "/members",
229
230
  path: "/members",
230
- getParentRoute: () => Z
231
- }), $e = F.update({
231
+ getParentRoute: () => Q
232
+ }), et = F.update({
232
233
  id: "/notifications",
233
234
  path: "/notifications",
234
- getParentRoute: () => Z
235
- }), et = I.update({
235
+ getParentRoute: () => Q
236
+ }), tt = I.update({
236
237
  id: "/roles",
237
238
  path: "/roles",
238
- getParentRoute: () => Z
239
- }), tt = L.update({
239
+ getParentRoute: () => Q
240
+ }), nt = L.update({
240
241
  id: "/runners",
241
242
  path: "/runners",
242
- getParentRoute: () => Z
243
- }), nt = R.update({
243
+ getParentRoute: () => Q
244
+ }), rt = R.update({
244
245
  id: "/sessions",
245
246
  path: "/sessions",
246
- getParentRoute: () => Z
247
- }), rt = z.update({
247
+ getParentRoute: () => Q
248
+ }), it = z.update({
249
+ id: "/slack",
250
+ path: "/slack",
251
+ getParentRoute: () => Q
252
+ }), at = B.update({
248
253
  id: "/sso",
249
254
  path: "/sso",
250
- getParentRoute: () => Z
251
- }), it = B.update({
255
+ getParentRoute: () => Q
256
+ }), ot = V.update({
252
257
  id: "/teams",
253
258
  path: "/teams",
254
- getParentRoute: () => Z
255
- }), at = V.update({
259
+ getParentRoute: () => Q
260
+ }), st = H.update({
256
261
  id: "/tokens",
257
262
  path: "/tokens",
258
- getParentRoute: () => Z
259
- }), ot = H.update({
263
+ getParentRoute: () => Q
264
+ }), ct = U.update({
260
265
  id: "/webhooks",
261
266
  path: "/webhooks",
262
- getParentRoute: () => Z
263
- }), $ = U.update({
267
+ getParentRoute: () => Q
268
+ }), $ = W.update({
264
269
  id: "/teams/$key",
265
270
  path: "/teams/$key",
266
271
  getParentRoute: () => J
267
- }), st = W.update({
272
+ }), lt = G.update({
268
273
  id: "/$tag/",
269
274
  path: "/$tag/",
270
275
  getParentRoute: () => Y
271
- }), ct = G.update({
276
+ }), ut = K.update({
272
277
  id: "/$tag/$endpoint",
273
278
  path: "/$tag/$endpoint",
274
279
  getParentRoute: () => Y
275
- }), lt = K.update({
280
+ }), dt = q.update({
276
281
  id: "/sites/$workspace/$site",
277
282
  path: "/sites/$workspace/$site",
278
283
  getParentRoute: () => e
279
- }), ut = q.update({
284
+ }), ft = se.update({
280
285
  id: "/cycles/$key/",
281
286
  path: "/cycles/$key/",
282
287
  getParentRoute: () => J
283
- }), dt = se.update({
288
+ }), pt = ce.update({
284
289
  id: "/cycles/$key/$number",
285
290
  path: "/cycles/$key/$number",
286
291
  getParentRoute: () => J
287
- }), ft = ce.update({
292
+ }), mt = le.update({
288
293
  id: "/",
289
294
  path: "/",
290
295
  getParentRoute: () => $
291
- }), pt = le.update({
296
+ }), ht = ue.update({
292
297
  id: "/areas",
293
298
  path: "/areas",
294
299
  getParentRoute: () => $
295
- }), mt = ue.update({
300
+ }), gt = de.update({
296
301
  id: "/decisions",
297
302
  path: "/decisions",
298
303
  getParentRoute: () => $
299
- }), ht = de.update({
304
+ }), _t = fe.update({
300
305
  id: "/issues",
301
306
  path: "/issues",
302
307
  getParentRoute: () => $
303
- }), gt = fe.update({
308
+ }), vt = pe.update({
304
309
  id: "/projects",
305
310
  path: "/projects",
306
311
  getParentRoute: () => $
307
- }), _t = pe.update({
312
+ }), yt = me.update({
308
313
  id: "/settings",
309
314
  path: "/settings",
310
315
  getParentRoute: () => $
311
- }), vt = me.update({
316
+ }), bt = he.update({
312
317
  id: "/triage",
313
318
  path: "/triage",
314
319
  getParentRoute: () => $
315
- }), yt = he.update({
320
+ }), xt = ge.update({
316
321
  id: "/cycles/",
317
322
  path: "/cycles/",
318
323
  getParentRoute: () => $
319
- }), bt = ge.update({
324
+ }), St = _e.update({
320
325
  id: "/cycles/$number",
321
326
  path: "/cycles/$number",
322
327
  getParentRoute: () => $
323
- }), xt = {
328
+ }), Ct = {
324
329
  DocsIndexRoute: Oe,
325
- DocsTagEndpointRoute: ct,
326
- DocsTagIndexRoute: st
327
- }, St = Y._addFileChildren(xt), Ct = {
328
- WorkspaceDocsDocRoute: Fe,
329
- WorkspaceDocsIndexRoute: Pe
330
- }, wt = X._addFileChildren(Ct), Tt = {
331
- WorkspaceSettingsAccountRoute: Ke,
332
- WorkspaceSettingsAuditLogRoute: qe,
333
- WorkspaceSettingsConnectionsRoute: Je,
334
- WorkspaceSettingsGithubRoute: Ye,
335
- WorkspaceSettingsGroupsRoute: Xe,
336
- WorkspaceSettingsLabelsRoute: Ze,
337
- WorkspaceSettingsMembersRoute: Qe,
338
- WorkspaceSettingsNotificationsRoute: $e,
339
- WorkspaceSettingsRolesRoute: et,
340
- WorkspaceSettingsRunnersRoute: tt,
341
- WorkspaceSettingsSessionsRoute: nt,
342
- WorkspaceSettingsSsoRoute: rt,
343
- WorkspaceSettingsTeamsRoute: it,
344
- WorkspaceSettingsTokensRoute: at,
345
- WorkspaceSettingsWebhooksRoute: ot,
346
- WorkspaceSettingsIndexRoute: Ge
347
- }, Et = Z._addFileChildren(Tt), Dt = {
348
- WorkspaceTeamsKeyAreasRoute: pt,
349
- WorkspaceTeamsKeyDecisionsRoute: mt,
350
- WorkspaceTeamsKeyIssuesRoute: ht,
351
- WorkspaceTeamsKeyProjectsRoute: gt,
352
- WorkspaceTeamsKeySettingsRoute: _t,
353
- WorkspaceTeamsKeyTriageRoute: vt,
354
- WorkspaceTeamsKeyIndexRoute: ft,
355
- WorkspaceTeamsKeyCyclesNumberRoute: bt,
356
- WorkspaceTeamsKeyCyclesIndexRoute: yt
357
- }, Ot = {
358
- WorkspaceDecisionsRoute: Ce,
359
- WorkspaceDocsRoute: wt,
360
- WorkspaceGraphRoute: we,
330
+ DocsTagEndpointRoute: ut,
331
+ DocsTagIndexRoute: lt
332
+ }, wt = Y._addFileChildren(Ct), Tt = {
333
+ WorkspaceDocsDocRoute: Ie,
334
+ WorkspaceDocsIndexRoute: Fe
335
+ }, Et = X._addFileChildren(Tt), Dt = {
336
+ WorkspaceSettingsAccountRoute: qe,
337
+ WorkspaceSettingsAuditLogRoute: Je,
338
+ WorkspaceSettingsConnectionsRoute: Ye,
339
+ WorkspaceSettingsGithubRoute: Xe,
340
+ WorkspaceSettingsGroupsRoute: Ze,
341
+ WorkspaceSettingsLabelsRoute: Qe,
342
+ WorkspaceSettingsMembersRoute: $e,
343
+ WorkspaceSettingsNotificationsRoute: et,
344
+ WorkspaceSettingsRolesRoute: tt,
345
+ WorkspaceSettingsRunnersRoute: nt,
346
+ WorkspaceSettingsSessionsRoute: rt,
347
+ WorkspaceSettingsSlackRoute: it,
348
+ WorkspaceSettingsSsoRoute: at,
349
+ WorkspaceSettingsTeamsRoute: ot,
350
+ WorkspaceSettingsTokensRoute: st,
351
+ WorkspaceSettingsWebhooksRoute: ct,
352
+ WorkspaceSettingsIndexRoute: Ke
353
+ }, Ot = Q._addFileChildren(Dt), kt = {
354
+ WorkspaceTeamsKeyAreasRoute: ht,
355
+ WorkspaceTeamsKeyDecisionsRoute: gt,
356
+ WorkspaceTeamsKeyIssuesRoute: _t,
357
+ WorkspaceTeamsKeyProjectsRoute: vt,
358
+ WorkspaceTeamsKeySettingsRoute: yt,
359
+ WorkspaceTeamsKeyTriageRoute: bt,
360
+ WorkspaceTeamsKeyIndexRoute: mt,
361
+ WorkspaceTeamsKeyCyclesNumberRoute: St,
362
+ WorkspaceTeamsKeyCyclesIndexRoute: xt
363
+ }, At = {
364
+ WorkspaceDecisionsRoute: we,
365
+ WorkspaceDocsRoute: Et,
366
+ WorkspaceGraphRoute: Z,
361
367
  WorkspaceMeasuresRoute: Te,
362
368
  WorkspaceNotificationsRoute: Ee,
363
- WorkspaceSettingsRoute: Et,
369
+ WorkspaceSettingsRoute: Ot,
364
370
  WorkspaceTriageRoute: De,
365
- WorkspaceIndexRoute: Se,
366
- WorkspaceAgentsSlugRoute: je,
367
- WorkspaceAreasAreaRoute: Ne,
368
- WorkspaceInitiativesInitiativeIdRoute: Le,
369
- WorkspaceIssuesIdentifierRoute: ze,
370
- WorkspaceKnowledgeTermRoute: Ve,
371
- WorkspacePeopleUsernameRoute: He,
372
- WorkspaceProjectsProjectIdRoute: We,
373
- WorkspaceTeamsKeyRoute: $._addFileChildren(Dt),
374
- WorkspaceAgentsIndexRoute: Ae,
375
- WorkspaceAreasIndexRoute: Me,
376
- WorkspaceInitiativesIndexRoute: Ie,
377
- WorkspaceIssuesIndexRoute: Re,
378
- WorkspaceKnowledgeIndexRoute: Be,
379
- WorkspaceProjectsIndexRoute: Ue,
380
- WorkspaceCyclesKeyNumberRoute: dt,
381
- WorkspaceCyclesKeyIndexRoute: ut
382
- }, kt = {
383
- IndexRoute: _e,
384
- DocsRouteRoute: St,
385
- WorkspaceRoute: J._addFileChildren(Ot),
386
- DeviceRoute: ve,
387
- LoginRoute: ye,
388
- NewRoute: be,
389
- NoAccessRoute: xe,
371
+ WorkspaceIndexRoute: Ce,
372
+ WorkspaceAgentsSlugRoute: Me,
373
+ WorkspaceAreasAreaRoute: Pe,
374
+ WorkspaceInitiativesInitiativeIdRoute: Re,
375
+ WorkspaceIssuesIdentifierRoute: Be,
376
+ WorkspaceKnowledgeTermRoute: He,
377
+ WorkspacePeopleUsernameRoute: Ue,
378
+ WorkspaceProjectsProjectIdRoute: Ge,
379
+ WorkspaceTeamsKeyRoute: $._addFileChildren(kt),
380
+ WorkspaceAgentsIndexRoute: je,
381
+ WorkspaceAreasIndexRoute: Ne,
382
+ WorkspaceInitiativesIndexRoute: Le,
383
+ WorkspaceIssuesIndexRoute: ze,
384
+ WorkspaceKnowledgeIndexRoute: Ve,
385
+ WorkspaceProjectsIndexRoute: We,
386
+ WorkspaceCyclesKeyNumberRoute: pt,
387
+ WorkspaceCyclesKeyIndexRoute: ft
388
+ }, jt = {
389
+ IndexRoute: ve,
390
+ DocsRouteRoute: wt,
391
+ WorkspaceRoute: J._addFileChildren(At),
392
+ DeviceRoute: ye,
393
+ LoginRoute: be,
394
+ NewRoute: xe,
395
+ NoAccessRoute: Se,
390
396
  RequestTokenRoute: ke,
391
- ShareSecretRoute: Q,
392
- SitesWorkspaceSiteRoute: lt
393
- }, At = e._addFileChildren(kt)._addFileTypes();
394
- export { At as routeTree };
397
+ ShareSecretRoute: Ae,
398
+ SitesWorkspaceSiteRoute: dt
399
+ }, Mt = e._addFileChildren(jt)._addFileTypes();
400
+ export { Mt as routeTree };
@@ -0,0 +1,12 @@
1
+ import { createFileRoute as e, lazyFn as t, lazyRouteComponent as n } from "@tanstack/react-router";
2
+ // src/routes/$workspace/settings/slack.tsx
3
+ var r = () => import("./slack2.js"), i = () => import("./slack3.js"), a = [
4
+ "connected",
5
+ "denied",
6
+ "failed"
7
+ ], o = e("/$workspace/settings/slack")({
8
+ validateSearch: (e) => a.includes(e.slack) ? { slack: e.slack } : {},
9
+ loader: t(i, "loader"),
10
+ component: n(r, "component")
11
+ });
12
+ export { o as Route };
@@ -0,0 +1,109 @@
1
+ import { api as e, unwrap as t } from "../../../api/client.js";
2
+ import { slackQuery as n } from "../../../api/queries.js";
3
+ import { Route as r } from "./slack.js";
4
+ import { usePeople as i } from "../../../lib/people.js";
5
+ import { useCan as a } from "../../../lib/roles.js";
6
+ import { AdminOnly as o, SettingsPage as s, useFormError as c } from "../../../components/settings.js";
7
+ import { useConfirm as l } from "../../../lib/confirm.js";
8
+ import { externalUrl as u } from "../../../lib/externalUrl.js";
9
+ import { ConnectionCard as d } from "../../../components/ConnectionCard.js";
10
+ import { Button as f, SettingsCard as p, StatusLabel as m, buttonClasses as h } from "@parallelworks/ui";
11
+ import { useFormatter as g, useTranslations as _ } from "use-intl";
12
+ import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
13
+ import { useMutation as x, useQueryClient as S, useSuspenseQuery as C } from "@tanstack/react-query";
14
+ import { SlackIcon as w } from "@parallelworks/ui/brand-icons";
15
+ // src/routes/$workspace/settings/slack.tsx?tsr-split=component
16
+ function T() {
17
+ let { workspace: T } = r.useParams(), { slack: E } = r.useSearch(), { data: D } = C(n(T)), O = a(T, "manage_workspace"), k = _("settingsNav"), A = _("slack"), j = g(), { person: M } = i(T), N = S(), P = c(), { confirm: F, dialog: I } = l(), L = x({
18
+ mutationFn: async () => t(await e.POST("/api/v1/workspaces/{workspace}/slack/connect", { params: { path: { workspace: T } } })),
19
+ onMutate: P.clear,
20
+ onSuccess: ({ url: e }) => {
21
+ let t = u(e);
22
+ t && window.location.assign(t);
23
+ },
24
+ onError: P.set
25
+ }), R = x({
26
+ mutationFn: async () => t(await e.DELETE("/api/v1/workspaces/{workspace}/slack", { params: { path: { workspace: T } } })),
27
+ onMutate: P.clear,
28
+ onSuccess: () => N.invalidateQueries({ queryKey: n(T).queryKey }),
29
+ onError: P.set
30
+ });
31
+ return /* @__PURE__ */ b(s, {
32
+ title: k("slack"),
33
+ description: A("pageDescription"),
34
+ children: [
35
+ /* @__PURE__ */ y(o, { workspace: T }),
36
+ I,
37
+ D.enabled ? /* @__PURE__ */ b("div", {
38
+ className: "space-y-6",
39
+ children: [
40
+ E && /* @__PURE__ */ y("p", {
41
+ role: "status",
42
+ className: `rounded-md bg-muted px-3 py-2 text-sm ${E === "connected" ? "" : "text-danger"}`,
43
+ children: A(`result.${E}`)
44
+ }),
45
+ D.managedByHost && /* @__PURE__ */ y("p", {
46
+ className: "text-sm text-muted-foreground",
47
+ children: A("managedByHost")
48
+ }),
49
+ /* @__PURE__ */ y(d, {
50
+ icon: /* @__PURE__ */ y(w, { className: "size-7" }),
51
+ name: k("slack"),
52
+ status: D.connected ? A("connectedTo", {
53
+ team: D.teamName ?? "",
54
+ person: M(D.connectedBy ?? "").name,
55
+ date: j.dateTime(new Date(D.connectedAt ?? ""), { dateStyle: "medium" })
56
+ }) : A("description"),
57
+ error: P.error,
58
+ action: /* @__PURE__ */ b(v, { children: [!D.connected && /* @__PURE__ */ y(m, {
59
+ off: !0,
60
+ children: A("notConnected")
61
+ }), D.managedByHost ? O && D.settingsUrl && /* @__PURE__ */ y("a", {
62
+ href: D.settingsUrl,
63
+ className: h({
64
+ variant: "outline",
65
+ size: "sm"
66
+ }),
67
+ children: A("openSettings")
68
+ }) : O && (D.connected ? /* @__PURE__ */ y(f, {
69
+ type: "button",
70
+ variant: "outline",
71
+ loading: R.isPending,
72
+ onClick: () => F({
73
+ title: A("disconnectTitle", { team: D.teamName ?? "" }),
74
+ description: A("disconnectDescription"),
75
+ confirmLabel: A("disconnect"),
76
+ onConfirm: () => R.mutateAsync()
77
+ }),
78
+ children: A("disconnect")
79
+ }) : /* @__PURE__ */ y(f, {
80
+ type: "button",
81
+ variant: "primary",
82
+ onClick: () => L.mutate(),
83
+ loading: L.isPending,
84
+ children: A("connect")
85
+ }))] })
86
+ }),
87
+ /* @__PURE__ */ b("section", {
88
+ className: "space-y-2 text-sm",
89
+ children: [/* @__PURE__ */ y("h2", {
90
+ className: "font-medium",
91
+ children: A("howTitle")
92
+ }), /* @__PURE__ */ b("ol", {
93
+ className: "list-decimal space-y-1.5 pl-5 text-muted-foreground",
94
+ children: [
95
+ /* @__PURE__ */ y("li", { children: A("howFile") }),
96
+ /* @__PURE__ */ y("li", { children: A("howThread") }),
97
+ /* @__PURE__ */ y("li", { children: A("howPeople") })
98
+ ]
99
+ })]
100
+ })
101
+ ]
102
+ }) : /* @__PURE__ */ y(p, { children: /* @__PURE__ */ y("p", {
103
+ className: "px-3 py-2 text-sm text-muted-foreground",
104
+ children: A("notConfigured")
105
+ }) })
106
+ ]
107
+ });
108
+ }
109
+ export { T as component };
@@ -0,0 +1,4 @@
1
+ import { slackQuery as e } from "../../../api/queries.js";
2
+ // src/routes/$workspace/settings/slack.tsx?tsr-split=loader
3
+ var t = ({ context: { queryClient: t }, params: { workspace: n } }) => t.ensureQueryData(e(n));
4
+ export { t as loader };