@burdenoff/microfe-workspaces 2026.510.50 → 2026.511.1
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/dist/generated/wspace-operations.d.ts +91 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -1
- package/dist/generated/wspace-operations.js +79 -51
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/hooks/useMemberMutations.d.ts.map +1 -1
- package/dist/hooks/useMemberMutations.js +141 -60
- package/dist/hooks/useMemberMutations.js.map +1 -1
- package/dist/hooks/useProjectMutations.d.ts.map +1 -1
- package/dist/hooks/useProjectMutations.js +84 -44
- package/dist/hooks/useProjectMutations.js.map +1 -1
- package/dist/hooks/useWorkspaceMutations.d.ts.map +1 -1
- package/dist/hooks/useWorkspaceMutations.js +64 -29
- package/dist/hooks/useWorkspaceMutations.js.map +1 -1
- package/dist/hooks/useWorkspacesEventEmitter.d.ts +5 -1
- package/dist/hooks/useWorkspacesEventEmitter.d.ts.map +1 -1
- package/dist/hooks/useWorkspacesEventEmitter.js +8 -7
- package/dist/hooks/useWorkspacesEventEmitter.js.map +1 -1
- package/dist/hooks/useWorkspacesPageView.d.ts +27 -0
- package/dist/hooks/useWorkspacesPageView.d.ts.map +1 -0
- package/dist/hooks/useWorkspacesPageView.js +29 -0
- package/dist/hooks/useWorkspacesPageView.js.map +1 -0
- package/dist/pages/ActivityListPage.d.ts.map +1 -1
- package/dist/pages/ActivityListPage.js +59 -56
- package/dist/pages/ActivityListPage.js.map +1 -1
- package/dist/pages/CreateWorkspacePage.d.ts.map +1 -1
- package/dist/pages/CreateWorkspacePage.js +104 -104
- package/dist/pages/CreateWorkspacePage.js.map +1 -1
- package/dist/pages/InviteAcceptancePage.d.ts.map +1 -1
- package/dist/pages/InviteAcceptancePage.js +197 -216
- package/dist/pages/InviteAcceptancePage.js.map +1 -1
- package/dist/pages/MembersListPage.d.ts.map +1 -1
- package/dist/pages/MembersListPage.js +142 -138
- package/dist/pages/MembersListPage.js.map +1 -1
- package/dist/pages/ProjectDetailPage.d.ts.map +1 -1
- package/dist/pages/ProjectDetailPage.js +181 -176
- package/dist/pages/ProjectDetailPage.js.map +1 -1
- package/dist/pages/ProjectsListPage.d.ts.map +1 -1
- package/dist/pages/ProjectsListPage.js +175 -171
- package/dist/pages/ProjectsListPage.js.map +1 -1
- package/dist/pages/WorkspaceDetailPage.d.ts.map +1 -1
- package/dist/pages/WorkspaceDetailPage.js +104 -101
- package/dist/pages/WorkspaceDetailPage.js.map +1 -1
- package/dist/pages/WorkspaceSettingsPage.d.ts.map +1 -1
- package/dist/pages/WorkspaceSettingsPage.js +182 -137
- package/dist/pages/WorkspaceSettingsPage.js.map +1 -1
- package/dist/pages/WorkspacesListPage.d.ts.map +1 -1
- package/dist/pages/WorkspacesListPage.js +77 -77
- package/dist/pages/WorkspacesListPage.js.map +1 -1
- package/dist/pages/dashboard/DashboardCustomizer.d.ts.map +1 -1
- package/dist/pages/dashboard/DashboardCustomizer.js +53 -55
- package/dist/pages/dashboard/DashboardCustomizer.js.map +1 -1
- package/dist/pages/dashboard/DashboardGrid.d.ts.map +1 -1
- package/dist/pages/dashboard/DashboardGrid.js +33 -36
- package/dist/pages/dashboard/DashboardGrid.js.map +1 -1
- package/dist/pages/dashboard/DashboardPage.d.ts.map +1 -1
- package/dist/pages/dashboard/DashboardPage.js +67 -65
- package/dist/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/pages/dashboard/WidgetWrapper.d.ts.map +1 -1
- package/dist/pages/dashboard/WidgetWrapper.js +3 -6
- package/dist/pages/dashboard/WidgetWrapper.js.map +1 -1
- package/dist/utils/i18n.d.ts +13 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +12 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/telemetryError.d.ts +2 -0
- package/dist/utils/telemetryError.d.ts.map +1 -0
- package/dist/utils/telemetryError.js +28 -0
- package/dist/utils/telemetryError.js.map +1 -0
- package/package.json +9 -4
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
|
|
2
2
|
import { useWorkspacesStore as t } from "../store/workspacesStore.js";
|
|
3
3
|
import { WORKSPACE_PERMISSIONS as n } from "../constants/permissions.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
4
|
+
import { tWithFallback as r } from "../utils/i18n.js";
|
|
5
|
+
import { useWorkspacesPageView as i } from "../hooks/useWorkspacesPageView.js";
|
|
6
|
+
import { nativeConfirm as ee, nativeImpact as te } from "../utils/nativeBridge.js";
|
|
7
|
+
import { useWorkspaceInvitations as ne, useWorkspaceMembers as re } from "../hooks/useWorkspaceMembers.js";
|
|
8
|
+
import { useRemoveUserFromWorkspace as ie, useResendInvitation as ae } from "../hooks/useMemberMutations.js";
|
|
9
|
+
import { MemberListItem as oe } from "../components/MemberListItem.js";
|
|
10
|
+
import { InviteMemberDialog as se } from "../components/InviteMemberDialog.js";
|
|
11
|
+
import { useWorkspacePermissions as a } from "../hooks/useWorkspacePermissions.js";
|
|
12
|
+
import { useEffect as o, useMemo as s, useState as c } from "react";
|
|
13
|
+
import { AlertCircle as ce, RefreshCw as le, Search as l, UserPlus as u, Users as d } from "lucide-react";
|
|
14
|
+
import { Fragment as ue, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
15
|
+
import { Badge as m, Button as h, Input as g, Skeleton as _ } from "@burdenoff/fe-libs/ui";
|
|
16
|
+
import { useParams as v } from "react-router-dom";
|
|
17
|
+
import { useDebounce as de } from "@burdenoff/fe-libs/shared/hooks";
|
|
18
|
+
import { PermissionButton as y } from "@burdenoff/fe-libs/shared/components";
|
|
17
19
|
import { useI18n as fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
18
20
|
//#region src/pages/MembersListPage.tsx
|
|
19
|
-
function
|
|
20
|
-
let { t:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
function b() {
|
|
22
|
+
let { t: b } = fe(), { memberFilters: pe, setMemberFilters: x, selectedMemberIds: S, toggleMemberSelection: C, clearMemberSelection: w, openInviteMemberDialog: me } = t(), { workspaceId: he } = e(), { workspaceId: ge } = v(), T = ge || he;
|
|
23
|
+
i("workspaces.members", {
|
|
24
|
+
workspaceId: T,
|
|
25
|
+
requireParams: !0
|
|
26
|
+
});
|
|
27
|
+
let [E, D] = c(pe.search || ""), O = de(E, 500);
|
|
28
|
+
o(() => {
|
|
25
29
|
x({ search: O });
|
|
26
30
|
}, [O, x]);
|
|
27
|
-
let { data: k, isLoading: _e, error: A } =
|
|
31
|
+
let { data: k, isLoading: _e, error: A } = re(T || ""), { data: j, isLoading: M } = ne(T || "", "PENDING"), { mutate: N, isPending: P } = ae(), { mutate: F, isPending: I } = ie(), [L, R] = c(null), [z, B] = c(/* @__PURE__ */ new Set()), ve = (e) => {
|
|
28
32
|
R(e), N(e, {
|
|
29
33
|
onSuccess: () => {
|
|
30
34
|
R(null);
|
|
@@ -33,23 +37,23 @@ function y() {
|
|
|
33
37
|
console.error("Failed to resend invitation:", e), R(null);
|
|
34
38
|
}
|
|
35
39
|
});
|
|
36
|
-
}, V =
|
|
37
|
-
|
|
38
|
-
let { canListMembers: xe, canInviteMember: Z, canRemoveMember: Q, isLoading: Se } =
|
|
39
|
-
if (Se) return /* @__PURE__ */
|
|
40
|
+
}, V = s(() => k?.items || [], [k?.items]), H = s(() => j?.items || [], [j?.items]), U = _e || M, W = V.length > 0, G = H.length > 0, K = V.filter((e) => O ? e.userId.toLowerCase().includes(O.toLowerCase()) : !0), q = s(() => K.filter((e) => S.has(e.id)), [K, S]), J = s(() => H.filter((e) => z.has(e.id)), [H, z]), Y = K.length > 0 && K.every((e) => S.has(e.id)), ye = K.some((e) => S.has(e.id)) && !Y, X = H.length > 0 && H.every((e) => z.has(e.id)), be = H.some((e) => z.has(e.id)) && !X;
|
|
41
|
+
o(() => () => w(), [w]);
|
|
42
|
+
let { canListMembers: xe, canInviteMember: Z, canRemoveMember: Q, isLoading: Se } = a();
|
|
43
|
+
if (Se) return /* @__PURE__ */ p("div", {
|
|
40
44
|
className: "space-y-4 p-6",
|
|
41
|
-
children: [/* @__PURE__ */
|
|
45
|
+
children: [/* @__PURE__ */ f(_, { className: "h-10 w-1/3" }), /* @__PURE__ */ f(_, { className: "h-64" })]
|
|
42
46
|
});
|
|
43
|
-
if (!xe && !Z) return /* @__PURE__ */
|
|
47
|
+
if (!xe && !Z) return /* @__PURE__ */ f("div", {
|
|
44
48
|
className: "flex items-center justify-center min-h-[400px]",
|
|
45
|
-
children: /* @__PURE__ */
|
|
49
|
+
children: /* @__PURE__ */ p("div", {
|
|
46
50
|
className: "text-center space-y-2",
|
|
47
|
-
children: [/* @__PURE__ */
|
|
51
|
+
children: [/* @__PURE__ */ f("h2", {
|
|
48
52
|
className: "text-lg font-semibold",
|
|
49
|
-
children: b
|
|
50
|
-
}), /* @__PURE__ */
|
|
53
|
+
children: r(b, "membersList.accessDenied", "Access Denied")
|
|
54
|
+
}), /* @__PURE__ */ f("p", {
|
|
51
55
|
className: "text-sm text-muted-foreground",
|
|
52
|
-
children: b
|
|
56
|
+
children: r(b, "membersList.noPermissionToViewMembers", "You don't have permission to view workspace members.")
|
|
53
57
|
})]
|
|
54
58
|
})
|
|
55
59
|
});
|
|
@@ -73,8 +77,8 @@ function y() {
|
|
|
73
77
|
});
|
|
74
78
|
}, Ee = async () => {
|
|
75
79
|
if (q.length === 0) return;
|
|
76
|
-
|
|
77
|
-
let e = `${b
|
|
80
|
+
te("medium");
|
|
81
|
+
let e = `${r(b, "membersList.bulkRemoveConfirmPrefix", "Remove")} ${q.length} ${q.length === 1 ? r(b, "membersList.bulkRemoveConfirmSingular", "selected member") : r(b, "membersList.bulkRemoveConfirmPlural", "selected members")} ${r(b, "membersList.bulkRemoveConfirmSuffix", "from this workspace?")}`, t = await ee({
|
|
78
82
|
title: "Remove members",
|
|
79
83
|
message: e,
|
|
80
84
|
okButtonTitle: "Remove",
|
|
@@ -93,100 +97,100 @@ function y() {
|
|
|
93
97
|
} });
|
|
94
98
|
});
|
|
95
99
|
};
|
|
96
|
-
return /* @__PURE__ */
|
|
100
|
+
return /* @__PURE__ */ p(ue, { children: [/* @__PURE__ */ p("div", {
|
|
97
101
|
className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
|
|
98
102
|
children: [
|
|
99
|
-
/* @__PURE__ */
|
|
103
|
+
/* @__PURE__ */ p("div", {
|
|
100
104
|
className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",
|
|
101
|
-
children: [/* @__PURE__ */
|
|
105
|
+
children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h1", {
|
|
102
106
|
className: "text-2xl sm:text-3xl font-bold",
|
|
103
|
-
children: b
|
|
104
|
-
}), /* @__PURE__ */
|
|
107
|
+
children: r(b, "membersList.pageTitle", "Members")
|
|
108
|
+
}), /* @__PURE__ */ f("p", {
|
|
105
109
|
className: "text-muted-foreground text-sm sm:text-base",
|
|
106
|
-
children: b
|
|
107
|
-
})] }), /* @__PURE__ */
|
|
110
|
+
children: r(b, "membersList.pageSubtitle", "Manage workspace members and invitations")
|
|
111
|
+
})] }), /* @__PURE__ */ f("div", {
|
|
108
112
|
className: "flex gap-2",
|
|
109
|
-
children: /* @__PURE__ */
|
|
113
|
+
children: /* @__PURE__ */ f(y, {
|
|
110
114
|
permission: n.MEMBER_CREATE,
|
|
111
115
|
deniedBehavior: "disable",
|
|
112
|
-
deniedTooltip: b
|
|
113
|
-
children: /* @__PURE__ */
|
|
116
|
+
deniedTooltip: r(b, "membersList.noPermissionToInvite", "You don't have permission to invite members"),
|
|
117
|
+
children: /* @__PURE__ */ p(h, {
|
|
114
118
|
onClick: $,
|
|
115
119
|
disabled: !T,
|
|
116
|
-
children: [/* @__PURE__ */
|
|
120
|
+
children: [/* @__PURE__ */ f(u, { className: "h-4 w-4 sm:mr-2" }), /* @__PURE__ */ f("span", {
|
|
117
121
|
className: "hidden sm:inline",
|
|
118
|
-
children: b
|
|
122
|
+
children: r(b, "membersList.inviteMember", "Invite Member")
|
|
119
123
|
})]
|
|
120
124
|
})
|
|
121
125
|
})
|
|
122
126
|
})]
|
|
123
127
|
}),
|
|
124
|
-
/* @__PURE__ */
|
|
128
|
+
/* @__PURE__ */ p("div", {
|
|
125
129
|
className: "flex flex-col sm:flex-row gap-3 sm:gap-4",
|
|
126
|
-
children: [/* @__PURE__ */
|
|
130
|
+
children: [/* @__PURE__ */ p("div", {
|
|
127
131
|
className: "relative flex-1",
|
|
128
|
-
children: [/* @__PURE__ */
|
|
129
|
-
placeholder: b
|
|
132
|
+
children: [/* @__PURE__ */ f(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ f(g, {
|
|
133
|
+
placeholder: r(b, "membersList.searchPlaceholder", "Search members..."),
|
|
130
134
|
value: E,
|
|
131
135
|
onChange: (e) => D(e.target.value),
|
|
132
136
|
className: "pl-9"
|
|
133
137
|
})]
|
|
134
|
-
}), G && /* @__PURE__ */
|
|
138
|
+
}), G && /* @__PURE__ */ f("div", {
|
|
135
139
|
className: "flex items-center gap-2",
|
|
136
|
-
children: /* @__PURE__ */
|
|
140
|
+
children: /* @__PURE__ */ p(m, {
|
|
137
141
|
variant: "secondary",
|
|
138
142
|
className: "text-sm",
|
|
139
143
|
children: [
|
|
140
144
|
H.length,
|
|
141
145
|
" ",
|
|
142
|
-
H.length === 1 ? b
|
|
146
|
+
H.length === 1 ? r(b, "membersList.pendingInvitation", "Pending Invitation") : r(b, "membersList.pendingInvitations", "Pending Invitations")
|
|
143
147
|
]
|
|
144
148
|
})
|
|
145
149
|
})]
|
|
146
150
|
}),
|
|
147
|
-
K.length > 0 && /* @__PURE__ */
|
|
151
|
+
K.length > 0 && /* @__PURE__ */ p("div", {
|
|
148
152
|
className: "flex flex-col gap-3 rounded-lg border bg-card p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
149
|
-
children: [/* @__PURE__ */
|
|
153
|
+
children: [/* @__PURE__ */ p("label", {
|
|
150
154
|
className: "flex items-center gap-2 text-sm text-foreground",
|
|
151
|
-
children: [/* @__PURE__ */
|
|
155
|
+
children: [/* @__PURE__ */ f("input", {
|
|
152
156
|
type: "checkbox",
|
|
153
157
|
checked: Y,
|
|
154
158
|
ref: (e) => {
|
|
155
159
|
e && (e.indeterminate = ye && !Y);
|
|
156
160
|
},
|
|
157
161
|
onChange: (e) => Ce(e.target.checked),
|
|
158
|
-
"aria-label": b
|
|
162
|
+
"aria-label": r(b, "membersList.selectAllMembersAriaLabel", "Select all workspace members"),
|
|
159
163
|
className: "h-4 w-4 rounded border-border text-primary"
|
|
160
|
-
}), /* @__PURE__ */
|
|
161
|
-
}), /* @__PURE__ */
|
|
164
|
+
}), /* @__PURE__ */ f("span", { children: r(b, "membersList.selectAllVisibleMembers", "Select all visible members") })]
|
|
165
|
+
}), /* @__PURE__ */ p("div", {
|
|
162
166
|
className: "flex flex-wrap items-center gap-2",
|
|
163
167
|
children: [
|
|
164
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ p("span", {
|
|
165
169
|
className: "text-sm text-muted-foreground",
|
|
166
170
|
children: [
|
|
167
171
|
S.size,
|
|
168
172
|
" ",
|
|
169
|
-
b
|
|
173
|
+
r(b, "membersList.selected", "selected")
|
|
170
174
|
]
|
|
171
175
|
}),
|
|
172
|
-
S.size > 0 && /* @__PURE__ */
|
|
176
|
+
S.size > 0 && /* @__PURE__ */ f(h, {
|
|
173
177
|
variant: "ghost",
|
|
174
178
|
size: "sm",
|
|
175
179
|
onClick: w,
|
|
176
|
-
children: b
|
|
180
|
+
children: r(b, "membersList.clearSelection", "Clear selection")
|
|
177
181
|
}),
|
|
178
|
-
Q && /* @__PURE__ */
|
|
182
|
+
Q && /* @__PURE__ */ p(h, {
|
|
179
183
|
variant: "outline",
|
|
180
184
|
size: "sm",
|
|
181
185
|
onClick: Ee,
|
|
182
186
|
disabled: q.length === 0 || I,
|
|
183
187
|
className: "text-destructive",
|
|
184
|
-
children: [b
|
|
188
|
+
children: [r(b, "membersList.removeSelected", "Remove Selected"), q.length > 0 ? ` (${q.length})` : ""]
|
|
185
189
|
})
|
|
186
190
|
]
|
|
187
191
|
})]
|
|
188
192
|
}),
|
|
189
|
-
U && /* @__PURE__ */
|
|
193
|
+
U && /* @__PURE__ */ f("div", {
|
|
190
194
|
className: "space-y-3",
|
|
191
195
|
children: [...[
|
|
192
196
|
,
|
|
@@ -194,113 +198,113 @@ function y() {
|
|
|
194
198
|
,
|
|
195
199
|
,
|
|
196
200
|
,
|
|
197
|
-
]].map((e, t) => /* @__PURE__ */
|
|
201
|
+
]].map((e, t) => /* @__PURE__ */ f(_, { className: "h-20 w-full" }, t))
|
|
198
202
|
}),
|
|
199
|
-
!U && A && /* @__PURE__ */
|
|
203
|
+
!U && A && /* @__PURE__ */ p("div", {
|
|
200
204
|
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
201
205
|
children: [
|
|
202
|
-
/* @__PURE__ */
|
|
206
|
+
/* @__PURE__ */ f("div", {
|
|
203
207
|
className: "rounded-full bg-destructive/10 p-6 mb-4",
|
|
204
|
-
children: /* @__PURE__ */
|
|
208
|
+
children: /* @__PURE__ */ f(ce, {
|
|
205
209
|
size: 48,
|
|
206
210
|
className: "text-destructive"
|
|
207
211
|
})
|
|
208
212
|
}),
|
|
209
|
-
/* @__PURE__ */
|
|
213
|
+
/* @__PURE__ */ f("h3", {
|
|
210
214
|
className: "text-lg font-semibold mb-2",
|
|
211
|
-
children: b
|
|
215
|
+
children: r(b, "membersList.failedToLoad", "Failed to Load Members")
|
|
212
216
|
}),
|
|
213
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ f("p", {
|
|
214
218
|
className: "text-muted-foreground max-w-sm",
|
|
215
|
-
children: A instanceof Error ? A.message : b
|
|
219
|
+
children: A instanceof Error ? A.message : r(b, "membersList.errorLoadingMembers", "An error occurred while loading members")
|
|
216
220
|
})
|
|
217
221
|
]
|
|
218
222
|
}),
|
|
219
|
-
!U && !A && !T && /* @__PURE__ */
|
|
223
|
+
!U && !A && !T && /* @__PURE__ */ p("div", {
|
|
220
224
|
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
221
225
|
children: [
|
|
222
|
-
/* @__PURE__ */
|
|
226
|
+
/* @__PURE__ */ f("div", {
|
|
223
227
|
className: "rounded-full bg-muted p-6 mb-4",
|
|
224
|
-
children: /* @__PURE__ */ d
|
|
228
|
+
children: /* @__PURE__ */ f(d, {
|
|
225
229
|
size: 48,
|
|
226
230
|
className: "text-muted-foreground"
|
|
227
231
|
})
|
|
228
232
|
}),
|
|
229
|
-
/* @__PURE__ */
|
|
233
|
+
/* @__PURE__ */ f("h3", {
|
|
230
234
|
className: "text-lg font-semibold mb-2",
|
|
231
|
-
children: b
|
|
235
|
+
children: r(b, "membersList.noWorkspaceSelected", "No Workspace Selected")
|
|
232
236
|
}),
|
|
233
|
-
/* @__PURE__ */
|
|
237
|
+
/* @__PURE__ */ f("p", {
|
|
234
238
|
className: "text-muted-foreground max-w-sm",
|
|
235
|
-
children: b
|
|
239
|
+
children: r(b, "membersList.selectWorkspacePrompt", "Select a workspace to view and manage its members")
|
|
236
240
|
})
|
|
237
241
|
]
|
|
238
242
|
}),
|
|
239
|
-
!U && !A && T && !W && /* @__PURE__ */
|
|
243
|
+
!U && !A && T && !W && /* @__PURE__ */ p("div", {
|
|
240
244
|
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
241
245
|
children: [
|
|
242
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ f("div", {
|
|
243
247
|
className: "rounded-full bg-muted p-6 mb-4",
|
|
244
|
-
children: /* @__PURE__ */ d
|
|
248
|
+
children: /* @__PURE__ */ f(d, {
|
|
245
249
|
size: 48,
|
|
246
250
|
className: "text-muted-foreground"
|
|
247
251
|
})
|
|
248
252
|
}),
|
|
249
|
-
/* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ f("h3", {
|
|
250
254
|
className: "text-lg font-semibold mb-2",
|
|
251
|
-
children: b
|
|
255
|
+
children: r(b, "membersList.noMembersYet", "No Members Yet")
|
|
252
256
|
}),
|
|
253
|
-
/* @__PURE__ */
|
|
257
|
+
/* @__PURE__ */ f("p", {
|
|
254
258
|
className: "text-muted-foreground max-w-sm mb-4",
|
|
255
|
-
children: b
|
|
259
|
+
children: r(b, "membersList.noMembersPrompt", "Start building your team by inviting members to this workspace")
|
|
256
260
|
}),
|
|
257
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ f(y, {
|
|
258
262
|
permission: n.MEMBER_CREATE,
|
|
259
263
|
deniedBehavior: "disable",
|
|
260
|
-
deniedTooltip: b
|
|
261
|
-
children: /* @__PURE__ */
|
|
264
|
+
deniedTooltip: r(b, "membersList.noPermissionToInvite", "You don't have permission to invite members"),
|
|
265
|
+
children: /* @__PURE__ */ p(h, {
|
|
262
266
|
onClick: $,
|
|
263
|
-
children: [/* @__PURE__ */
|
|
267
|
+
children: [/* @__PURE__ */ f(u, { className: "mr-2 h-4 w-4" }), r(b, "membersList.inviteFirstMember", "Invite Your First Member")]
|
|
264
268
|
})
|
|
265
269
|
})
|
|
266
270
|
]
|
|
267
271
|
}),
|
|
268
|
-
!U && !A && T && W && K.length === 0 && /* @__PURE__ */
|
|
272
|
+
!U && !A && T && W && K.length === 0 && /* @__PURE__ */ p("div", {
|
|
269
273
|
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
270
274
|
children: [
|
|
271
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ f("div", {
|
|
272
276
|
className: "rounded-full bg-muted p-6 mb-4",
|
|
273
|
-
children: /* @__PURE__ */
|
|
277
|
+
children: /* @__PURE__ */ f(l, {
|
|
274
278
|
size: 48,
|
|
275
279
|
className: "text-muted-foreground"
|
|
276
280
|
})
|
|
277
281
|
}),
|
|
278
|
-
/* @__PURE__ */
|
|
282
|
+
/* @__PURE__ */ f("h3", {
|
|
279
283
|
className: "text-lg font-semibold mb-2",
|
|
280
|
-
children: b
|
|
284
|
+
children: r(b, "membersList.noMembersFound", "No Members Found")
|
|
281
285
|
}),
|
|
282
|
-
/* @__PURE__ */
|
|
286
|
+
/* @__PURE__ */ f("p", {
|
|
283
287
|
className: "text-muted-foreground max-w-sm",
|
|
284
|
-
children: b
|
|
288
|
+
children: r(b, "membersList.noMembersFoundPrompt", "No members match your search criteria. Try adjusting your search.")
|
|
285
289
|
})
|
|
286
290
|
]
|
|
287
291
|
}),
|
|
288
|
-
!U && K.length > 0 && /* @__PURE__ */
|
|
292
|
+
!U && K.length > 0 && /* @__PURE__ */ p("div", {
|
|
289
293
|
className: "space-y-3",
|
|
290
|
-
children: [/* @__PURE__ */
|
|
294
|
+
children: [/* @__PURE__ */ f("div", {
|
|
291
295
|
className: "flex items-center justify-between",
|
|
292
|
-
children: /* @__PURE__ */
|
|
296
|
+
children: /* @__PURE__ */ p("h2", {
|
|
293
297
|
className: "text-lg font-semibold",
|
|
294
298
|
children: [
|
|
295
|
-
b
|
|
299
|
+
r(b, "membersList.activeMembers", "Active Members"),
|
|
296
300
|
" (",
|
|
297
301
|
K.length,
|
|
298
302
|
")"
|
|
299
303
|
]
|
|
300
304
|
})
|
|
301
|
-
}), /* @__PURE__ */
|
|
305
|
+
}), /* @__PURE__ */ f("div", {
|
|
302
306
|
className: "space-y-2",
|
|
303
|
-
children: K.map((e) => /* @__PURE__ */
|
|
307
|
+
children: K.map((e) => /* @__PURE__ */ f(oe, {
|
|
304
308
|
member: e,
|
|
305
309
|
selected: S.has(e.id),
|
|
306
310
|
onToggleSelect: (t) => {
|
|
@@ -310,101 +314,101 @@ function y() {
|
|
|
310
314
|
}, e.id))
|
|
311
315
|
})]
|
|
312
316
|
}),
|
|
313
|
-
!U && G && /* @__PURE__ */
|
|
317
|
+
!U && G && /* @__PURE__ */ p("div", {
|
|
314
318
|
className: "space-y-3",
|
|
315
319
|
children: [
|
|
316
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ f("h2", {
|
|
317
321
|
className: "text-lg font-semibold",
|
|
318
|
-
children: b
|
|
322
|
+
children: r(b, "membersList.pendingInvitationsHeader", "Pending Invitations")
|
|
319
323
|
}),
|
|
320
|
-
/* @__PURE__ */
|
|
324
|
+
/* @__PURE__ */ p("div", {
|
|
321
325
|
className: "flex flex-col gap-3 rounded-lg border bg-card p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
322
|
-
children: [/* @__PURE__ */
|
|
326
|
+
children: [/* @__PURE__ */ p("label", {
|
|
323
327
|
className: "flex items-center gap-2 text-sm text-foreground",
|
|
324
|
-
children: [/* @__PURE__ */
|
|
328
|
+
children: [/* @__PURE__ */ f("input", {
|
|
325
329
|
type: "checkbox",
|
|
326
330
|
checked: X,
|
|
327
331
|
ref: (e) => {
|
|
328
332
|
e && (e.indeterminate = be && !X);
|
|
329
333
|
},
|
|
330
334
|
onChange: (e) => Te(e.target.checked),
|
|
331
|
-
"aria-label": b
|
|
335
|
+
"aria-label": r(b, "membersList.selectAllInvitationsAriaLabel", "Select all pending invitations"),
|
|
332
336
|
className: "h-4 w-4 rounded border-border text-primary"
|
|
333
|
-
}), /* @__PURE__ */
|
|
334
|
-
}), /* @__PURE__ */
|
|
337
|
+
}), /* @__PURE__ */ f("span", { children: r(b, "membersList.selectAllInvitations", "Select all invitations") })]
|
|
338
|
+
}), /* @__PURE__ */ p("div", {
|
|
335
339
|
className: "flex flex-wrap items-center gap-2",
|
|
336
340
|
children: [
|
|
337
|
-
/* @__PURE__ */
|
|
341
|
+
/* @__PURE__ */ p("span", {
|
|
338
342
|
className: "text-sm text-muted-foreground",
|
|
339
343
|
children: [
|
|
340
344
|
z.size,
|
|
341
345
|
" ",
|
|
342
|
-
b
|
|
346
|
+
r(b, "membersList.selected", "selected")
|
|
343
347
|
]
|
|
344
348
|
}),
|
|
345
|
-
z.size > 0 && /* @__PURE__ */
|
|
349
|
+
z.size > 0 && /* @__PURE__ */ f(h, {
|
|
346
350
|
variant: "ghost",
|
|
347
351
|
size: "sm",
|
|
348
352
|
onClick: () => B(/* @__PURE__ */ new Set()),
|
|
349
|
-
children: b
|
|
353
|
+
children: r(b, "membersList.clearSelection", "Clear selection")
|
|
350
354
|
}),
|
|
351
|
-
Z && /* @__PURE__ */
|
|
355
|
+
Z && /* @__PURE__ */ p(h, {
|
|
352
356
|
variant: "outline",
|
|
353
357
|
size: "sm",
|
|
354
358
|
onClick: De,
|
|
355
359
|
disabled: J.length === 0 || P,
|
|
356
|
-
children: [b
|
|
360
|
+
children: [r(b, "membersList.resendSelected", "Resend Selected"), J.length > 0 ? ` (${J.length})` : ""]
|
|
357
361
|
})
|
|
358
362
|
]
|
|
359
363
|
})]
|
|
360
364
|
}),
|
|
361
|
-
/* @__PURE__ */
|
|
365
|
+
/* @__PURE__ */ f("div", {
|
|
362
366
|
className: "space-y-2",
|
|
363
|
-
children: H.map((e) => /* @__PURE__ */
|
|
367
|
+
children: H.map((e) => /* @__PURE__ */ p("div", {
|
|
364
368
|
className: "flex items-center justify-between p-4 border rounded-lg bg-card",
|
|
365
|
-
children: [/* @__PURE__ */
|
|
369
|
+
children: [/* @__PURE__ */ p("div", {
|
|
366
370
|
className: "flex items-center gap-3",
|
|
367
371
|
children: [
|
|
368
|
-
/* @__PURE__ */
|
|
372
|
+
/* @__PURE__ */ f("input", {
|
|
369
373
|
type: "checkbox",
|
|
370
374
|
checked: z.has(e.id),
|
|
371
375
|
onChange: (t) => we(e.id, t.target.checked),
|
|
372
|
-
"aria-label": `${b
|
|
376
|
+
"aria-label": `${r(b, "membersList.selectInvitationAriaLabel", "Select invitation")} ${e.email}`,
|
|
373
377
|
className: "h-4 w-4 rounded border-border text-primary"
|
|
374
378
|
}),
|
|
375
|
-
/* @__PURE__ */
|
|
379
|
+
/* @__PURE__ */ f("div", {
|
|
376
380
|
className: "w-10 h-10 rounded-full bg-status-warning/10 flex items-center justify-center transition-colors",
|
|
377
|
-
children: /* @__PURE__ */ d
|
|
381
|
+
children: /* @__PURE__ */ f(d, { className: "h-5 w-5 text-status-warning" })
|
|
378
382
|
}),
|
|
379
|
-
/* @__PURE__ */
|
|
383
|
+
/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
|
|
380
384
|
className: "font-medium text-sm",
|
|
381
385
|
children: e.email
|
|
382
|
-
}), /* @__PURE__ */
|
|
386
|
+
}), /* @__PURE__ */ p("p", {
|
|
383
387
|
className: "text-xs text-muted-foreground",
|
|
384
388
|
children: [
|
|
385
|
-
b
|
|
389
|
+
r(b, "membersList.invited", "Invited"),
|
|
386
390
|
" ",
|
|
387
391
|
new Date(e.createdAt).toLocaleDateString()
|
|
388
392
|
]
|
|
389
393
|
})] })
|
|
390
394
|
]
|
|
391
|
-
}), /* @__PURE__ */
|
|
395
|
+
}), /* @__PURE__ */ p("div", {
|
|
392
396
|
className: "flex items-center gap-2",
|
|
393
|
-
children: [/* @__PURE__ */
|
|
397
|
+
children: [/* @__PURE__ */ f(y, {
|
|
394
398
|
permission: n.MEMBER_CREATE,
|
|
395
399
|
deniedBehavior: "disable",
|
|
396
|
-
deniedTooltip: b
|
|
397
|
-
children: /* @__PURE__ */
|
|
400
|
+
deniedTooltip: r(b, "membersList.noPermissionToResend", "You don't have permission to resend invitations"),
|
|
401
|
+
children: /* @__PURE__ */ p(h, {
|
|
398
402
|
variant: "outline",
|
|
399
403
|
size: "sm",
|
|
400
404
|
onClick: () => ve(e.id),
|
|
401
405
|
disabled: P && L === e.id,
|
|
402
|
-
children: [/* @__PURE__ */
|
|
406
|
+
children: [/* @__PURE__ */ f(le, { className: `h-4 w-4 mr-1 ${P && L === e.id ? "animate-spin" : ""}` }), P && L === e.id ? r(b, "membersList.sending", "Sending...") : r(b, "membersList.resend", "Resend")]
|
|
403
407
|
})
|
|
404
|
-
}), /* @__PURE__ */
|
|
408
|
+
}), /* @__PURE__ */ f(m, {
|
|
405
409
|
variant: "outline",
|
|
406
410
|
className: "bg-status-warning/10 text-status-warning border-status-warning/30 transition-colors",
|
|
407
|
-
children: b
|
|
411
|
+
children: r(b, "membersList.pending", "Pending")
|
|
408
412
|
})]
|
|
409
413
|
})]
|
|
410
414
|
}, e.id))
|
|
@@ -412,9 +416,9 @@ function y() {
|
|
|
412
416
|
]
|
|
413
417
|
})
|
|
414
418
|
]
|
|
415
|
-
}), /* @__PURE__ */
|
|
419
|
+
}), /* @__PURE__ */ f(se, { workspaceId: T })] });
|
|
416
420
|
}
|
|
417
421
|
//#endregion
|
|
418
|
-
export {
|
|
422
|
+
export { b as MembersListPage };
|
|
419
423
|
|
|
420
424
|
//# sourceMappingURL=MembersListPage.js.map
|