@burdenoff/microfe-comradecircle 2026.1025.1 → 2026.1025.3
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/comradecircle/components/LiveStagePanel.d.ts +10 -0
- package/dist/comradecircle/components/LiveStagePanel.d.ts.map +1 -0
- package/dist/comradecircle/components/LiveStagePanel.js +263 -0
- package/dist/comradecircle/components/LiveStagePanel.js.map +1 -0
- package/dist/comradecircle/components/MediaTile.d.ts +16 -0
- package/dist/comradecircle/components/MediaTile.d.ts.map +1 -0
- package/dist/comradecircle/components/MediaTile.js +74 -0
- package/dist/comradecircle/components/MediaTile.js.map +1 -0
- package/dist/comradecircle/components/VoiceChannelPanel.d.ts +10 -0
- package/dist/comradecircle/components/VoiceChannelPanel.d.ts.map +1 -0
- package/dist/comradecircle/components/VoiceChannelPanel.js +123 -0
- package/dist/comradecircle/components/VoiceChannelPanel.js.map +1 -0
- package/dist/comradecircle/hooks/index.d.ts +3 -0
- package/dist/comradecircle/hooks/index.d.ts.map +1 -1
- package/dist/comradecircle/hooks/index.js +3 -0
- package/dist/comradecircle/hooks/useLiveStage.d.ts +20 -0
- package/dist/comradecircle/hooks/useLiveStage.d.ts.map +1 -0
- package/dist/comradecircle/hooks/useLiveStage.js +160 -0
- package/dist/comradecircle/hooks/useLiveStage.js.map +1 -0
- package/dist/comradecircle/hooks/useVoiceApi.d.ts +36 -0
- package/dist/comradecircle/hooks/useVoiceApi.d.ts.map +1 -0
- package/dist/comradecircle/hooks/useVoiceApi.js +113 -0
- package/dist/comradecircle/hooks/useVoiceApi.js.map +1 -0
- package/dist/comradecircle/hooks/useVoiceCall.d.ts +21 -0
- package/dist/comradecircle/hooks/useVoiceCall.d.ts.map +1 -0
- package/dist/comradecircle/hooks/useVoiceCall.js +154 -0
- package/dist/comradecircle/hooks/useVoiceCall.js.map +1 -0
- package/dist/comradecircle/lib/graphqlStream.d.ts +31 -0
- package/dist/comradecircle/lib/graphqlStream.d.ts.map +1 -0
- package/dist/comradecircle/lib/graphqlStream.js +112 -0
- package/dist/comradecircle/lib/graphqlStream.js.map +1 -0
- package/dist/comradecircle/lib/rtc/liveStage.d.ts +37 -0
- package/dist/comradecircle/lib/rtc/liveStage.d.ts.map +1 -0
- package/dist/comradecircle/lib/rtc/liveStage.js +97 -0
- package/dist/comradecircle/lib/rtc/liveStage.js.map +1 -0
- package/dist/comradecircle/lib/rtc/peerLink.d.ts +50 -0
- package/dist/comradecircle/lib/rtc/peerLink.d.ts.map +1 -0
- package/dist/comradecircle/lib/rtc/peerLink.js +110 -0
- package/dist/comradecircle/lib/rtc/peerLink.js.map +1 -0
- package/dist/comradecircle/lib/rtc/voiceMesh.d.ts +41 -0
- package/dist/comradecircle/lib/rtc/voiceMesh.d.ts.map +1 -0
- package/dist/comradecircle/lib/rtc/voiceMesh.js +101 -0
- package/dist/comradecircle/lib/rtc/voiceMesh.js.map +1 -0
- package/dist/comradecircle/pages/circles/CircleDetailPage.d.ts.map +1 -1
- package/dist/comradecircle/pages/circles/CircleDetailPage.js +299 -286
- package/dist/comradecircle/pages/circles/CircleDetailPage.js.map +1 -1
- package/dist/comradecircle/pages/circles/ModerationTab.js +2 -2
- package/dist/comradecircle/pages/circles/ModerationTab.js.map +1 -1
- package/dist/comradecircle/types/index.d.ts +51 -0
- package/dist/comradecircle/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,105 +3,114 @@ import "../../context/index.js";
|
|
|
3
3
|
import { useComCircle as t, useComCreateChannel as n, useComCreatePoll as r, useComEvents as i, useComJoinCircle as a, useComLeaveCircle as o, useComPolls as s, useComPostAddedLive as c, useComPosts as l, useComSetMemberRole as u } from "../../hooks/useComradeCircleApi.js";
|
|
4
4
|
import { useCursorPager as d } from "../../hooks/useCursorPager.js";
|
|
5
5
|
import { useTr as f } from "../../hooks/useTr.js";
|
|
6
|
+
import { useComLiveStreams as p } from "../../hooks/useVoiceApi.js";
|
|
6
7
|
import "../../hooks/index.js";
|
|
7
|
-
import { cn as
|
|
8
|
-
import { PageLayout as
|
|
9
|
-
import { Avatar as
|
|
10
|
-
import { MemberIdentity as
|
|
11
|
-
import { describeError as
|
|
12
|
-
import { formatDate as
|
|
13
|
-
import { PostCard as
|
|
14
|
-
import { EmptyState as
|
|
15
|
-
import { ErrorView as
|
|
16
|
-
import { Pagination as
|
|
17
|
-
import { slugify as
|
|
18
|
-
import { StatusBadge as
|
|
8
|
+
import { cn as m } from "../../utils/cn.js";
|
|
9
|
+
import { PageLayout as h } from "../../components/PageLayout.js";
|
|
10
|
+
import { Avatar as g } from "../../components/Avatar.js";
|
|
11
|
+
import { MemberIdentity as _ } from "../../components/MemberIdentity.js";
|
|
12
|
+
import { describeError as v, notify as y } from "../../lib/toast.js";
|
|
13
|
+
import { formatDate as b, formatEnumLabel as x, formatNumber as S } from "../../utils/formatters.js";
|
|
14
|
+
import { PostCard as C } from "../../components/PostCard.js";
|
|
15
|
+
import { EmptyState as w } from "../../components/EmptyState.js";
|
|
16
|
+
import { ErrorView as T, LoadingView as E } from "../../components/StateViews.js";
|
|
17
|
+
import { Pagination as D } from "../../components/Pagination.js";
|
|
18
|
+
import { slugify as O } from "../../utils/slug.js";
|
|
19
|
+
import { StatusBadge as k } from "../../components/StatusBadge.js";
|
|
19
20
|
import { Tabs as ee } from "../../components/Tabs.js";
|
|
20
21
|
import { ModerationTab as te } from "./ModerationTab.js";
|
|
21
|
-
import { PostComposer as
|
|
22
|
-
import { DraftsPanel as
|
|
23
|
-
import { EventCard as
|
|
24
|
-
import { PollCard as
|
|
25
|
-
import { CreateEventDialog as
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
22
|
+
import { PostComposer as A } from "../../components/PostComposer.js";
|
|
23
|
+
import { DraftsPanel as j } from "../../components/DraftsPanel.js";
|
|
24
|
+
import { EventCard as M } from "../../components/EventCard.js";
|
|
25
|
+
import { PollCard as N } from "../../components/PollCard.js";
|
|
26
|
+
import { CreateEventDialog as P } from "../../components/CreateEventDialog.js";
|
|
27
|
+
import { VoiceChannelPanel as ne } from "../../components/VoiceChannelPanel.js";
|
|
28
|
+
import { LiveStagePanel as re } from "../../components/LiveStagePanel.js";
|
|
29
|
+
import { useMemo as F, useState as I } from "react";
|
|
30
|
+
import { ArrowLeft as ie, BarChart3 as L, CalendarDays as ae, Hash as R, Info as oe, Megaphone as z, MessageCircle as se, MessagesSquare as ce, Mic as le, Plus as B, Radio as ue, Search as de, ShieldCheck as fe, Users as V } from "lucide-react";
|
|
28
31
|
import { useParams as pe } from "react-router";
|
|
29
|
-
import { Fragment as
|
|
30
|
-
import { Button as
|
|
32
|
+
import { Fragment as H, jsx as U, jsxs as W } from "react/jsx-runtime";
|
|
33
|
+
import { Button as G, GradientText as me, Input as K, Label as q, ResponsiveDialog as he, ResponsiveDialogContent as ge, ResponsiveDialogDescription as _e, ResponsiveDialogFooter as ve, ResponsiveDialogHeader as ye, ResponsiveDialogTitle as be, Select as J, SelectContent as Y, SelectItem as X, SelectTrigger as Z, SelectValue as Q, Switch as xe, Textarea as Se } from "@burdenoff/fe-libs/ui";
|
|
31
34
|
//#region src/comradecircle/pages/circles/CircleDetailPage.tsx
|
|
32
|
-
var
|
|
33
|
-
TEXT:
|
|
34
|
-
FORUM:
|
|
35
|
-
ANNOUNCEMENT:
|
|
36
|
-
VOICE:
|
|
37
|
-
},
|
|
35
|
+
var Ce = {
|
|
36
|
+
TEXT: R,
|
|
37
|
+
FORUM: ce,
|
|
38
|
+
ANNOUNCEMENT: z,
|
|
39
|
+
VOICE: le
|
|
40
|
+
}, we = ["OWNER", "ADMIN"], Te = [
|
|
38
41
|
"OWNER",
|
|
39
42
|
"ADMIN",
|
|
40
43
|
"MODERATOR"
|
|
41
|
-
],
|
|
44
|
+
], $ = [
|
|
42
45
|
"OWNER",
|
|
43
46
|
"ADMIN",
|
|
44
47
|
"MODERATOR",
|
|
45
48
|
"MEMBER"
|
|
46
|
-
],
|
|
47
|
-
function
|
|
48
|
-
let n = f(), { id: r } = pe(), { currentUser: i, navigateTo: s } = e(), { data: c, isLoading: l, isError: u, refetch: d } = t(r),
|
|
49
|
-
if (l) return /* @__PURE__ */
|
|
49
|
+
], Ee = 15;
|
|
50
|
+
function De() {
|
|
51
|
+
let n = f(), { id: r } = pe(), { currentUser: i, navigateTo: s } = e(), { data: c, isLoading: l, isError: u, refetch: d } = t(r), _ = a(), b = o(), [x, C] = I("channels"), w = F(() => c?.memberships?.find((e) => e.memberId === i?.id && e.status === "ACTIVE"), [c, i]), D = !!w, O = w ? we.includes(w.role) : !1, A = w ? Te.includes(w.role) : !1, { data: j } = p(D ? r : void 0), M = j?.length ?? 0;
|
|
52
|
+
if (l) return /* @__PURE__ */ U(h, {
|
|
50
53
|
title: n("comradecircle.pages.circleDetail.title", "Circle"),
|
|
51
|
-
children: /* @__PURE__ */
|
|
54
|
+
children: /* @__PURE__ */ U(E, { label: n("comradecircle.pages.circleDetail.loadingCircle", "Loading circle…") })
|
|
52
55
|
});
|
|
53
|
-
if (u || !c) return /* @__PURE__ */
|
|
56
|
+
if (u || !c) return /* @__PURE__ */ U(h, {
|
|
54
57
|
title: n("comradecircle.pages.circleDetail.title", "Circle"),
|
|
55
|
-
children: /* @__PURE__ */
|
|
58
|
+
children: /* @__PURE__ */ U(T, {
|
|
56
59
|
title: n("comradecircle.pages.circleDetail.notFoundTitle", "Circle not found"),
|
|
57
60
|
message: n("comradecircle.pages.circleDetail.notFoundMessage", "This circle may have been archived or you may not have access."),
|
|
58
61
|
onRetry: () => d()
|
|
59
62
|
})
|
|
60
63
|
});
|
|
61
|
-
let
|
|
64
|
+
let N = c.memberships?.filter((e) => e.status === "ACTIVE") ?? [], P = [
|
|
62
65
|
{
|
|
63
66
|
value: "channels",
|
|
64
67
|
label: n("comradecircle.pages.circleDetail.tabChannels", "Channels"),
|
|
65
|
-
icon: /* @__PURE__ */
|
|
68
|
+
icon: /* @__PURE__ */ U(R, { className: "h-4 w-4" }),
|
|
66
69
|
count: c.channels?.length ?? 0
|
|
67
70
|
},
|
|
71
|
+
{
|
|
72
|
+
value: "live",
|
|
73
|
+
label: n("comradecircle.pages.circleDetail.tabLive", "Live"),
|
|
74
|
+
icon: /* @__PURE__ */ U(ue, { className: m("h-4 w-4", M > 0 && "text-status-error-text") }),
|
|
75
|
+
...M > 0 ? { count: M } : {}
|
|
76
|
+
},
|
|
68
77
|
{
|
|
69
78
|
value: "members",
|
|
70
79
|
label: n("comradecircle.pages.circleDetail.tabMembers", "Members"),
|
|
71
|
-
icon: /* @__PURE__ */
|
|
72
|
-
count:
|
|
80
|
+
icon: /* @__PURE__ */ U(V, { className: "h-4 w-4" }),
|
|
81
|
+
count: N.length
|
|
73
82
|
},
|
|
74
83
|
{
|
|
75
84
|
value: "events",
|
|
76
85
|
label: n("comradecircle.pages.circleDetail.tabEvents", "Events"),
|
|
77
|
-
icon: /* @__PURE__ */
|
|
86
|
+
icon: /* @__PURE__ */ U(ae, { className: "h-4 w-4" })
|
|
78
87
|
},
|
|
79
88
|
{
|
|
80
89
|
value: "polls",
|
|
81
90
|
label: n("comradecircle.pages.circleDetail.tabPolls", "Polls"),
|
|
82
|
-
icon: /* @__PURE__ */
|
|
91
|
+
icon: /* @__PURE__ */ U(L, { className: "h-4 w-4" })
|
|
83
92
|
},
|
|
84
93
|
{
|
|
85
94
|
value: "about",
|
|
86
95
|
label: n("comradecircle.pages.circleDetail.tabAbout", "About"),
|
|
87
|
-
icon: /* @__PURE__ */
|
|
96
|
+
icon: /* @__PURE__ */ U(oe, { className: "h-4 w-4" })
|
|
88
97
|
},
|
|
89
|
-
...
|
|
98
|
+
...A ? [{
|
|
90
99
|
value: "moderation",
|
|
91
100
|
label: n("comradecircle.pages.circleDetail.tabModeration", "Moderation"),
|
|
92
|
-
icon: /* @__PURE__ */
|
|
101
|
+
icon: /* @__PURE__ */ U(fe, { className: "h-4 w-4" })
|
|
93
102
|
}] : []
|
|
94
103
|
];
|
|
95
|
-
return /* @__PURE__ */
|
|
96
|
-
title: /* @__PURE__ */
|
|
104
|
+
return /* @__PURE__ */ W(h, {
|
|
105
|
+
title: /* @__PURE__ */ W("span", {
|
|
97
106
|
className: "flex items-center gap-3",
|
|
98
|
-
children: [/* @__PURE__ */
|
|
107
|
+
children: [/* @__PURE__ */ U(g, {
|
|
99
108
|
name: c.name,
|
|
100
109
|
size: "lg",
|
|
101
110
|
fileId: c.avatar?.id,
|
|
102
111
|
seed: c.id,
|
|
103
112
|
ring: !0
|
|
104
|
-
}), /* @__PURE__ */
|
|
113
|
+
}), /* @__PURE__ */ U(me, {
|
|
105
114
|
as: "span",
|
|
106
115
|
className: "text-2xl font-semibold tracking-tight",
|
|
107
116
|
children: c.name
|
|
@@ -109,123 +118,128 @@ function we() {
|
|
|
109
118
|
}),
|
|
110
119
|
description: c.topic ?? void 0,
|
|
111
120
|
aurora: !0,
|
|
112
|
-
actions: /* @__PURE__ */
|
|
121
|
+
actions: /* @__PURE__ */ W("div", {
|
|
113
122
|
className: "flex items-center gap-2",
|
|
114
|
-
children: [/* @__PURE__ */
|
|
123
|
+
children: [/* @__PURE__ */ W(G, {
|
|
115
124
|
variant: "ghost",
|
|
116
125
|
size: "sm",
|
|
117
126
|
onClick: () => s("circles"),
|
|
118
127
|
children: [
|
|
119
|
-
/* @__PURE__ */
|
|
128
|
+
/* @__PURE__ */ U(ie, { className: "mr-1.5 h-4 w-4" }),
|
|
120
129
|
" ",
|
|
121
130
|
n("common.back", "Back")
|
|
122
131
|
]
|
|
123
|
-
}),
|
|
132
|
+
}), D ? /* @__PURE__ */ U(G, {
|
|
124
133
|
variant: "outline",
|
|
125
|
-
onClick: () =>
|
|
126
|
-
disabled:
|
|
134
|
+
onClick: () => b.mutateAsync(c.id).then(() => y.success(n("comradecircle.pages.circleDetail.left", "Left circle"))).catch((e) => y.error(n("comradecircle.pages.circleDetail.leaveError", "Could not leave"), v(e))),
|
|
135
|
+
disabled: b.isPending,
|
|
127
136
|
children: n("comradecircle.pages.circleDetail.leave", "Leave")
|
|
128
|
-
}) : c.status === "ACTIVE" ? /* @__PURE__ */
|
|
129
|
-
onClick: () =>
|
|
130
|
-
disabled:
|
|
137
|
+
}) : c.status === "ACTIVE" ? /* @__PURE__ */ U(G, {
|
|
138
|
+
onClick: () => _.mutateAsync(c.id).then(() => y.success(n("comradecircle.pages.circleDetail.joined", "Joined circle"))).catch((e) => y.error(n("comradecircle.pages.circleDetail.joinError", "Could not join"), v(e))),
|
|
139
|
+
disabled: _.isPending,
|
|
131
140
|
children: n("comradecircle.pages.circleDetail.joinCircle", "Join circle")
|
|
132
141
|
}) : null]
|
|
133
142
|
}),
|
|
134
143
|
children: [
|
|
135
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ W("div", {
|
|
136
145
|
className: "mb-4 flex flex-wrap items-center gap-2",
|
|
137
146
|
children: [
|
|
138
|
-
/* @__PURE__ */
|
|
139
|
-
c.status !== "ACTIVE" && /* @__PURE__ */
|
|
140
|
-
|
|
141
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ U(k, { status: c.visibility }),
|
|
148
|
+
c.status !== "ACTIVE" && /* @__PURE__ */ U(k, { status: c.status }),
|
|
149
|
+
w && /* @__PURE__ */ U(k, { status: w.role }),
|
|
150
|
+
/* @__PURE__ */ W("span", {
|
|
142
151
|
className: "inline-flex items-center gap-1 text-sm text-text-tertiary",
|
|
143
152
|
children: [
|
|
144
|
-
/* @__PURE__ */
|
|
153
|
+
/* @__PURE__ */ U(V, { className: "h-4 w-4" }),
|
|
145
154
|
" ",
|
|
146
|
-
n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count:
|
|
155
|
+
n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count: S(c.memberCount) })
|
|
147
156
|
]
|
|
148
157
|
})
|
|
149
158
|
]
|
|
150
159
|
}),
|
|
151
|
-
/* @__PURE__ */
|
|
152
|
-
items:
|
|
153
|
-
value:
|
|
154
|
-
onChange:
|
|
160
|
+
/* @__PURE__ */ U(ee, {
|
|
161
|
+
items: P,
|
|
162
|
+
value: x,
|
|
163
|
+
onChange: C,
|
|
155
164
|
className: "mb-5"
|
|
156
165
|
}),
|
|
157
|
-
|
|
166
|
+
x === "channels" && /* @__PURE__ */ U(Oe, {
|
|
158
167
|
circle: c,
|
|
159
|
-
isMember:
|
|
160
|
-
canManage:
|
|
168
|
+
isMember: D,
|
|
169
|
+
canManage: O
|
|
170
|
+
}),
|
|
171
|
+
x === "live" && /* @__PURE__ */ U(re, {
|
|
172
|
+
circleId: c.id,
|
|
173
|
+
isMember: D,
|
|
174
|
+
canManage: O
|
|
161
175
|
}),
|
|
162
|
-
|
|
176
|
+
x === "members" && /* @__PURE__ */ U(Ae, {
|
|
163
177
|
circle: c,
|
|
164
|
-
canManage:
|
|
178
|
+
canManage: O
|
|
165
179
|
}),
|
|
166
|
-
|
|
180
|
+
x === "events" && /* @__PURE__ */ U(je, {
|
|
167
181
|
circle: c,
|
|
168
|
-
isMember:
|
|
182
|
+
isMember: D
|
|
169
183
|
}),
|
|
170
|
-
|
|
184
|
+
x === "polls" && /* @__PURE__ */ U(Me, {
|
|
171
185
|
circle: c,
|
|
172
|
-
isMember:
|
|
173
|
-
canManage:
|
|
186
|
+
isMember: D,
|
|
187
|
+
canManage: O
|
|
174
188
|
}),
|
|
175
|
-
|
|
176
|
-
|
|
189
|
+
x === "about" && /* @__PURE__ */ U(Ne, { circle: c }),
|
|
190
|
+
x === "moderation" && A && /* @__PURE__ */ U(te, {
|
|
177
191
|
circle: c,
|
|
178
|
-
canEditRules:
|
|
192
|
+
canEditRules: O
|
|
179
193
|
})
|
|
180
194
|
]
|
|
181
195
|
});
|
|
182
196
|
}
|
|
183
|
-
function
|
|
184
|
-
let r = f(), i =
|
|
185
|
-
return i.length === 0 ? /* @__PURE__ */
|
|
186
|
-
icon: /* @__PURE__ */
|
|
197
|
+
function Oe({ circle: e, isMember: t, canManage: n }) {
|
|
198
|
+
let r = f(), i = F(() => [...e.channels ?? []].sort((e, t) => e.position - t.position), [e.channels]), [a, o] = I(i[0]?.id), [s, c] = I(!1), l = i.find((e) => e.id === a) ?? i[0];
|
|
199
|
+
return i.length === 0 ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(w, {
|
|
200
|
+
icon: /* @__PURE__ */ U(R, { className: "h-10 w-10" }),
|
|
187
201
|
title: r("comradecircle.pages.circleDetail.noChannelsTitle", "No channels yet"),
|
|
188
202
|
description: n ? r("comradecircle.pages.circleDetail.noChannelsDescriptionManager", "Create the first channel to start conversations in this circle.") : r("comradecircle.pages.circleDetail.noChannelsDescriptionMember", "This circle has no channels yet. Check back soon."),
|
|
189
|
-
action: n ? /* @__PURE__ */
|
|
203
|
+
action: n ? /* @__PURE__ */ W(G, {
|
|
190
204
|
onClick: () => c(!0),
|
|
191
205
|
children: [
|
|
192
|
-
/* @__PURE__ */
|
|
206
|
+
/* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
|
|
193
207
|
" ",
|
|
194
208
|
r("comradecircle.pages.circleDetail.newChannel", "New channel")
|
|
195
209
|
]
|
|
196
210
|
}) : void 0
|
|
197
|
-
}), /* @__PURE__ */
|
|
211
|
+
}), /* @__PURE__ */ U(Fe, {
|
|
198
212
|
circleId: e.id,
|
|
199
213
|
open: s,
|
|
200
214
|
onOpenChange: c,
|
|
201
215
|
onCreated: (e) => o(e.id)
|
|
202
|
-
})] }) : /* @__PURE__ */
|
|
216
|
+
})] }) : /* @__PURE__ */ W("div", {
|
|
203
217
|
className: "grid gap-5 lg:grid-cols-[220px_1fr]",
|
|
204
218
|
children: [
|
|
205
|
-
/* @__PURE__ */
|
|
219
|
+
/* @__PURE__ */ W("aside", {
|
|
206
220
|
className: "hidden lg:block",
|
|
207
|
-
children: [/* @__PURE__ */
|
|
221
|
+
children: [/* @__PURE__ */ W("div", {
|
|
208
222
|
className: "mb-2 flex items-center justify-between",
|
|
209
|
-
children: [/* @__PURE__ */
|
|
223
|
+
children: [/* @__PURE__ */ U("h3", {
|
|
210
224
|
className: "text-xs font-semibold uppercase tracking-wide text-text-tertiary",
|
|
211
225
|
children: r("comradecircle.pages.circleDetail.tabChannels", "Channels")
|
|
212
|
-
}), n && /* @__PURE__ */
|
|
226
|
+
}), n && /* @__PURE__ */ U("button", {
|
|
213
227
|
type: "button",
|
|
214
228
|
onClick: () => c(!0),
|
|
215
229
|
"aria-label": r("comradecircle.pages.circleDetail.newChannel", "New channel"),
|
|
216
230
|
className: "rounded-md p-1 text-text-tertiary hover:bg-bg-sunken hover:text-text-primary",
|
|
217
|
-
children: /* @__PURE__ */
|
|
231
|
+
children: /* @__PURE__ */ U(B, { className: "h-4 w-4" })
|
|
218
232
|
})]
|
|
219
|
-
}), /* @__PURE__ */
|
|
233
|
+
}), /* @__PURE__ */ U("nav", {
|
|
220
234
|
className: "flex flex-col gap-0.5",
|
|
221
235
|
children: i.map((e) => {
|
|
222
|
-
let t =
|
|
223
|
-
return /* @__PURE__ */
|
|
236
|
+
let t = Ce[e.type], n = e.id === l?.id, r = e.type === "ANNOUNCEMENT";
|
|
237
|
+
return /* @__PURE__ */ W("button", {
|
|
224
238
|
type: "button",
|
|
225
239
|
onClick: () => o(e.id),
|
|
226
240
|
"aria-current": n ? "true" : void 0,
|
|
227
|
-
className:
|
|
228
|
-
children: [/* @__PURE__ */
|
|
241
|
+
className: m("flex items-center gap-2 rounded-lg border-l-2 px-2.5 py-1.5 text-left text-sm transition-all", n ? "border-[color:var(--color-accent)] bg-[var(--color-accent-soft)] font-medium text-text-primary shadow-sm" : r ? "border-transparent font-medium text-accent hover:bg-bg-sunken motion-safe:hover:translate-x-0.5" : "border-transparent text-text-secondary hover:bg-bg-sunken hover:text-text-primary motion-safe:hover:translate-x-0.5"),
|
|
242
|
+
children: [/* @__PURE__ */ U(t, { className: m("h-4 w-4 shrink-0", n || r ? "text-accent" : "text-text-tertiary") }), /* @__PURE__ */ U("span", {
|
|
229
243
|
className: "truncate",
|
|
230
244
|
children: e.name
|
|
231
245
|
})]
|
|
@@ -233,35 +247,35 @@ function Te({ circle: e, isMember: t, canManage: n }) {
|
|
|
233
247
|
})
|
|
234
248
|
})]
|
|
235
249
|
}),
|
|
236
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ U("div", {
|
|
237
251
|
className: "lg:hidden",
|
|
238
|
-
children: /* @__PURE__ */
|
|
252
|
+
children: /* @__PURE__ */ W("div", {
|
|
239
253
|
className: "flex items-center gap-2",
|
|
240
|
-
children: [/* @__PURE__ */
|
|
254
|
+
children: [/* @__PURE__ */ W(J, {
|
|
241
255
|
value: l?.id,
|
|
242
256
|
onValueChange: o,
|
|
243
|
-
children: [/* @__PURE__ */
|
|
257
|
+
children: [/* @__PURE__ */ U(Z, { children: /* @__PURE__ */ U(Q, { placeholder: r("comradecircle.pages.circleDetail.selectChannel", "Select a channel") }) }), /* @__PURE__ */ U(Y, { children: i.map((e) => /* @__PURE__ */ W(X, {
|
|
244
258
|
value: e.id,
|
|
245
259
|
children: ["#", e.name]
|
|
246
260
|
}, e.id)) })]
|
|
247
|
-
}), n && /* @__PURE__ */
|
|
261
|
+
}), n && /* @__PURE__ */ U(G, {
|
|
248
262
|
variant: "outline",
|
|
249
263
|
size: "icon",
|
|
250
264
|
onClick: () => c(!0),
|
|
251
265
|
"aria-label": r("comradecircle.pages.circleDetail.newChannel", "New channel"),
|
|
252
|
-
children: /* @__PURE__ */
|
|
266
|
+
children: /* @__PURE__ */ U(B, { className: "h-4 w-4" })
|
|
253
267
|
})]
|
|
254
268
|
})
|
|
255
269
|
}),
|
|
256
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ U("div", {
|
|
257
271
|
className: "min-w-0",
|
|
258
|
-
children: l && /* @__PURE__ */
|
|
272
|
+
children: l && /* @__PURE__ */ U(ke, {
|
|
259
273
|
channel: l,
|
|
260
274
|
canPost: t,
|
|
261
275
|
canManage: n
|
|
262
276
|
})
|
|
263
277
|
}),
|
|
264
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ U(Fe, {
|
|
265
279
|
circleId: e.id,
|
|
266
280
|
open: s,
|
|
267
281
|
onOpenChange: c,
|
|
@@ -270,96 +284,95 @@ function Te({ circle: e, isMember: t, canManage: n }) {
|
|
|
270
284
|
]
|
|
271
285
|
});
|
|
272
286
|
}
|
|
273
|
-
function
|
|
274
|
-
let r = f(), i = d(), [a, o] =
|
|
287
|
+
function ke({ channel: e, canPost: t, canManage: n }) {
|
|
288
|
+
let r = f(), i = d(), [a, o] = I(!1), { data: s, isLoading: u, isError: p, refetch: m } = l({
|
|
275
289
|
channelId: e.id,
|
|
276
290
|
status: "PUBLISHED",
|
|
277
291
|
pagination: {
|
|
278
|
-
limit:
|
|
292
|
+
limit: Ee,
|
|
279
293
|
cursor: i.cursor
|
|
280
294
|
}
|
|
281
295
|
});
|
|
282
296
|
c(e.id);
|
|
283
297
|
let h = s?.items ?? [], g = e.type === "ANNOUNCEMENT", _ = e.type === "VOICE" ? !1 : g ? n : t, v = g && i.page === 0 && h.length > 0 ? h.find((e) => e.isPinned) ?? h[0] : void 0, y = v ? h.filter((e) => e.id !== v.id) : h;
|
|
284
|
-
return /* @__PURE__ */
|
|
298
|
+
return /* @__PURE__ */ W("div", {
|
|
285
299
|
className: "flex flex-col gap-4",
|
|
286
300
|
children: [
|
|
287
|
-
/* @__PURE__ */
|
|
301
|
+
/* @__PURE__ */ W("div", {
|
|
288
302
|
className: "flex items-center gap-3",
|
|
289
303
|
children: [(() => {
|
|
290
|
-
let t =
|
|
291
|
-
return /* @__PURE__ */
|
|
304
|
+
let t = Ce[e.type];
|
|
305
|
+
return /* @__PURE__ */ U("span", {
|
|
292
306
|
className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-[var(--color-accent-soft)] text-accent",
|
|
293
|
-
children: /* @__PURE__ */
|
|
307
|
+
children: /* @__PURE__ */ U(t, { className: "h-5 w-5" })
|
|
294
308
|
});
|
|
295
|
-
})(), /* @__PURE__ */
|
|
309
|
+
})(), /* @__PURE__ */ W("div", {
|
|
296
310
|
className: "min-w-0",
|
|
297
|
-
children: [/* @__PURE__ */
|
|
311
|
+
children: [/* @__PURE__ */ W("div", {
|
|
298
312
|
className: "flex items-center gap-2",
|
|
299
|
-
children: [/* @__PURE__ */
|
|
313
|
+
children: [/* @__PURE__ */ U("h2", {
|
|
300
314
|
className: "text-lg font-semibold text-text-primary",
|
|
301
315
|
children: e.name
|
|
302
|
-
}), g && /* @__PURE__ */
|
|
316
|
+
}), g && /* @__PURE__ */ W("span", {
|
|
303
317
|
className: "inline-flex items-center gap-1 rounded-full bg-[var(--color-accent-soft)] px-2 py-0.5 text-xs font-medium text-accent",
|
|
304
318
|
children: [
|
|
305
|
-
/* @__PURE__ */ z
|
|
319
|
+
/* @__PURE__ */ U(z, { className: "h-3 w-3" }),
|
|
306
320
|
" ",
|
|
307
321
|
r("comradecircle.pages.circleDetail.broadcastLabel", "Broadcast")
|
|
308
322
|
]
|
|
309
323
|
})]
|
|
310
|
-
}), e.description && /* @__PURE__ */
|
|
324
|
+
}), e.description && /* @__PURE__ */ U("p", {
|
|
311
325
|
className: "text-sm text-text-secondary",
|
|
312
326
|
children: e.description
|
|
313
327
|
})]
|
|
314
328
|
})]
|
|
315
329
|
}),
|
|
316
|
-
_ && /* @__PURE__ */
|
|
330
|
+
_ && /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(A, {
|
|
317
331
|
channelId: e.id,
|
|
318
332
|
channelName: e.name,
|
|
319
333
|
onPosted: () => i.reset(),
|
|
320
334
|
onDraftSaved: () => o(!0),
|
|
321
335
|
variant: g ? "announcement" : "default"
|
|
322
|
-
}), /* @__PURE__ */
|
|
336
|
+
}), /* @__PURE__ */ U(j, {
|
|
323
337
|
channelId: e.id,
|
|
324
338
|
open: a,
|
|
325
339
|
onOpenChange: o,
|
|
326
340
|
variant: g ? "announcement" : "default"
|
|
327
341
|
})] }),
|
|
328
|
-
g && !_ && /* @__PURE__ */
|
|
329
|
-
className: "rounded-xl border border-dashed border-border-seam p-6 text-center text-sm text-text-secondary",
|
|
330
|
-
children: [/* @__PURE__ */ z(F, { className: "mx-auto mb-2 h-6 w-6 text-text-tertiary" }), r("comradecircle.pages.circleDetail.announcementReadOnly", "Only circle managers can post in announcement channels.")]
|
|
331
|
-
}),
|
|
332
|
-
e.type === "VOICE" && /* @__PURE__ */ B("div", {
|
|
342
|
+
g && !_ && /* @__PURE__ */ W("div", {
|
|
333
343
|
className: "rounded-xl border border-dashed border-border-seam p-6 text-center text-sm text-text-secondary",
|
|
334
|
-
children: [/* @__PURE__ */ z
|
|
344
|
+
children: [/* @__PURE__ */ U(z, { className: "mx-auto mb-2 h-6 w-6 text-text-tertiary" }), r("comradecircle.pages.circleDetail.announcementReadOnly", "Only circle managers can post in announcement channels.")]
|
|
335
345
|
}),
|
|
336
|
-
|
|
346
|
+
e.type === "VOICE" ? /* @__PURE__ */ U(ne, {
|
|
347
|
+
channel: e,
|
|
348
|
+
canJoin: t
|
|
349
|
+
}, e.id) : u ? /* @__PURE__ */ U(E, { label: r("comradecircle.pages.circleDetail.loadingPosts", "Loading posts…") }) : p ? /* @__PURE__ */ U(T, {
|
|
337
350
|
message: r("comradecircle.pages.circleDetail.postsError", "We couldn't load posts."),
|
|
338
351
|
onRetry: () => m()
|
|
339
|
-
}) : h.length === 0 ? /* @__PURE__ */
|
|
340
|
-
icon: /* @__PURE__ */
|
|
352
|
+
}) : h.length === 0 ? /* @__PURE__ */ U(w, {
|
|
353
|
+
icon: /* @__PURE__ */ U(se, { className: "h-9 w-9" }),
|
|
341
354
|
title: r("comradecircle.pages.circleDetail.noPostsTitle", "No posts yet"),
|
|
342
355
|
description: _ ? r("comradecircle.pages.circleDetail.noPostsDescriptionCanWrite", "Be the first to post in this channel.") : r("comradecircle.pages.circleDetail.noPostsDescriptionReadOnly", "Nothing has been posted here yet.")
|
|
343
|
-
}) : /* @__PURE__ */
|
|
356
|
+
}) : /* @__PURE__ */ W("div", {
|
|
344
357
|
className: "flex flex-col gap-4",
|
|
345
358
|
children: [
|
|
346
|
-
v && /* @__PURE__ */
|
|
359
|
+
v && /* @__PURE__ */ W("div", {
|
|
347
360
|
className: "rounded-2xl border-2 border-[color:var(--color-accent)] bg-[var(--color-accent-soft)] p-1",
|
|
348
|
-
children: [/* @__PURE__ */
|
|
361
|
+
children: [/* @__PURE__ */ W("div", {
|
|
349
362
|
className: "mb-1 flex items-center gap-1.5 px-3 pt-2 text-xs font-semibold uppercase tracking-wide text-accent",
|
|
350
|
-
children: [/* @__PURE__ */ z
|
|
351
|
-
}), /* @__PURE__ */
|
|
363
|
+
children: [/* @__PURE__ */ U(z, { className: "h-3.5 w-3.5" }), v.isPinned ? r("comradecircle.pages.circleDetail.pinnedAnnouncement", "Pinned announcement") : r("comradecircle.pages.circleDetail.latestAnnouncement", "Latest announcement")]
|
|
364
|
+
}), /* @__PURE__ */ U(C, { post: v })]
|
|
352
365
|
}),
|
|
353
|
-
y.length > 0 && /* @__PURE__ */
|
|
366
|
+
y.length > 0 && /* @__PURE__ */ W("div", {
|
|
354
367
|
className: "flex flex-col gap-4",
|
|
355
|
-
children: [v && /* @__PURE__ */
|
|
368
|
+
children: [v && /* @__PURE__ */ U("p", {
|
|
356
369
|
className: "text-xs font-semibold uppercase tracking-wide text-text-tertiary",
|
|
357
370
|
children: r("comradecircle.pages.circleDetail.earlierAnnouncements", "Earlier announcements")
|
|
358
|
-
}), y.map((e) => /* @__PURE__ */
|
|
371
|
+
}), y.map((e) => /* @__PURE__ */ U(C, { post: e }, e.id))]
|
|
359
372
|
}),
|
|
360
|
-
/* @__PURE__ */
|
|
373
|
+
/* @__PURE__ */ U(D, {
|
|
361
374
|
page: i.page,
|
|
362
|
-
pageSize:
|
|
375
|
+
pageSize: Ee,
|
|
363
376
|
itemCount: h.length,
|
|
364
377
|
hasMore: s?.pageInfo.hasMore ?? !1,
|
|
365
378
|
onPageChange: (e) => i.onPageChange(e, s?.pageInfo.cursor)
|
|
@@ -369,13 +382,13 @@ function Ee({ channel: e, canPost: t, canManage: n }) {
|
|
|
369
382
|
]
|
|
370
383
|
});
|
|
371
384
|
}
|
|
372
|
-
function
|
|
373
|
-
let n = f(), r = u(), [i, a] =
|
|
385
|
+
function Ae({ circle: e, canManage: t }) {
|
|
386
|
+
let n = f(), r = u(), [i, a] = I(""), o = F(() => [...e.memberships ?? []].sort((e, t) => $.indexOf(e.role) - $.indexOf(t.role)), [e.memberships]), s = F(() => {
|
|
374
387
|
let e = i.trim().toLowerCase();
|
|
375
|
-
return e ? o.filter((t) =>
|
|
388
|
+
return e ? o.filter((t) => x(t.role).toLowerCase().includes(e) || t.role.toLowerCase().includes(e) || x(t.status).toLowerCase().includes(e) || t.status.toLowerCase().includes(e)) : o;
|
|
376
389
|
}, [o, i]);
|
|
377
|
-
if (o.length === 0) return /* @__PURE__ */
|
|
378
|
-
icon: /* @__PURE__ */
|
|
390
|
+
if (o.length === 0) return /* @__PURE__ */ U(w, {
|
|
391
|
+
icon: /* @__PURE__ */ U(V, { className: "h-9 w-9" }),
|
|
379
392
|
title: n("comradecircle.pages.circleDetail.noMembersTitle", "No members yet")
|
|
380
393
|
});
|
|
381
394
|
let c = async (t, i) => {
|
|
@@ -384,65 +397,65 @@ function De({ circle: e, canManage: t }) {
|
|
|
384
397
|
membershipId: t,
|
|
385
398
|
role: i,
|
|
386
399
|
circleId: e.id
|
|
387
|
-
}),
|
|
400
|
+
}), y.success(n("comradecircle.pages.circleDetail.roleUpdated", "Role updated"));
|
|
388
401
|
} catch (e) {
|
|
389
|
-
|
|
402
|
+
y.error(n("comradecircle.pages.circleDetail.roleUpdateError", "Could not update role"), v(e));
|
|
390
403
|
}
|
|
391
404
|
}, l = t ? "lg:grid-cols-[minmax(0,1fr)_120px_120px_190px]" : "lg:grid-cols-[minmax(0,1fr)_120px_120px]";
|
|
392
|
-
return /* @__PURE__ */
|
|
405
|
+
return /* @__PURE__ */ W("div", {
|
|
393
406
|
className: "flex flex-col gap-4",
|
|
394
|
-
children: [/* @__PURE__ */
|
|
407
|
+
children: [/* @__PURE__ */ W("div", {
|
|
395
408
|
className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",
|
|
396
|
-
children: [/* @__PURE__ */
|
|
409
|
+
children: [/* @__PURE__ */ W("div", {
|
|
397
410
|
className: "relative w-full sm:max-w-xs",
|
|
398
|
-
children: [/* @__PURE__ */
|
|
411
|
+
children: [/* @__PURE__ */ U(de, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-tertiary" }), /* @__PURE__ */ U(K, {
|
|
399
412
|
value: i,
|
|
400
413
|
onChange: (e) => a(e.target.value),
|
|
401
414
|
placeholder: n("comradecircle.pages.circleDetail.filterMembersPlaceholder", "Filter by role or status…"),
|
|
402
415
|
className: "pl-9",
|
|
403
416
|
"aria-label": n("comradecircle.pages.circleDetail.filterMembersAriaLabel", "Filter members by role or status")
|
|
404
417
|
})]
|
|
405
|
-
}), /* @__PURE__ */
|
|
418
|
+
}), /* @__PURE__ */ U("span", {
|
|
406
419
|
className: "text-sm text-text-tertiary",
|
|
407
|
-
children: s.length === o.length ? n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count:
|
|
408
|
-
filtered:
|
|
409
|
-
total:
|
|
420
|
+
children: s.length === o.length ? n("comradecircle.pages.circleDetail.memberCount", "{{count}} members", { count: S(o.length) }) : n("comradecircle.pages.circleDetail.filteredMemberCount", "{{filtered}} of {{total}}", {
|
|
421
|
+
filtered: S(s.length),
|
|
422
|
+
total: S(o.length)
|
|
410
423
|
})
|
|
411
424
|
})]
|
|
412
|
-
}), /* @__PURE__ */
|
|
425
|
+
}), /* @__PURE__ */ W("div", {
|
|
413
426
|
className: "overflow-hidden rounded-2xl border border-border-seam bg-bg-surface",
|
|
414
|
-
children: [/* @__PURE__ */
|
|
415
|
-
className:
|
|
427
|
+
children: [/* @__PURE__ */ W("div", {
|
|
428
|
+
className: m("hidden border-b border-border-seam px-5 py-3 text-xs font-semibold uppercase tracking-wide text-text-tertiary lg:grid lg:items-center lg:gap-4", l),
|
|
416
429
|
children: [
|
|
417
|
-
/* @__PURE__ */
|
|
418
|
-
/* @__PURE__ */
|
|
419
|
-
/* @__PURE__ */
|
|
420
|
-
t && /* @__PURE__ */
|
|
430
|
+
/* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.memberColumn", "Member") }),
|
|
431
|
+
/* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.statusColumn", "Status") }),
|
|
432
|
+
/* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.roleColumn", "Role") }),
|
|
433
|
+
t && /* @__PURE__ */ U("span", { children: n("comradecircle.pages.circleDetail.manageRoleColumn", "Manage role") })
|
|
421
434
|
]
|
|
422
|
-
}), s.length === 0 ? /* @__PURE__ */
|
|
435
|
+
}), s.length === 0 ? /* @__PURE__ */ U("div", {
|
|
423
436
|
className: "px-5 py-10 text-center text-sm text-text-secondary",
|
|
424
437
|
children: n("comradecircle.pages.circleDetail.noFilterMatches", "No members match \"{{query}}\".", { query: i.trim() })
|
|
425
|
-
}) : s.map((e) => /* @__PURE__ */
|
|
426
|
-
className:
|
|
427
|
-
children: [/* @__PURE__ */
|
|
438
|
+
}) : s.map((e) => /* @__PURE__ */ W("div", {
|
|
439
|
+
className: m("flex flex-col gap-3 border-b border-border-seam px-5 py-4 last:border-b-0 motion-safe:transition-colors hover:bg-bg-sunken/60 lg:grid lg:items-center lg:gap-4", l),
|
|
440
|
+
children: [/* @__PURE__ */ U(_, {
|
|
428
441
|
memberId: e.memberId,
|
|
429
442
|
variant: "row",
|
|
430
443
|
size: "md",
|
|
431
444
|
showPresence: !0
|
|
432
|
-
}), /* @__PURE__ */
|
|
445
|
+
}), /* @__PURE__ */ W("div", {
|
|
433
446
|
className: "flex flex-wrap items-center gap-2 lg:contents",
|
|
434
447
|
children: [
|
|
435
|
-
/* @__PURE__ */
|
|
436
|
-
/* @__PURE__ */
|
|
437
|
-
t && /* @__PURE__ */
|
|
448
|
+
/* @__PURE__ */ U("div", { children: /* @__PURE__ */ U(k, { status: e.status }) }),
|
|
449
|
+
/* @__PURE__ */ U("div", { children: /* @__PURE__ */ U(k, { status: e.role }) }),
|
|
450
|
+
t && /* @__PURE__ */ W(J, {
|
|
438
451
|
value: e.role,
|
|
439
452
|
onValueChange: (t) => c(e.id, t),
|
|
440
|
-
children: [/* @__PURE__ */
|
|
453
|
+
children: [/* @__PURE__ */ U(Z, {
|
|
441
454
|
className: "h-9 w-40 lg:w-full",
|
|
442
|
-
children: /* @__PURE__ */
|
|
443
|
-
}), /* @__PURE__ */
|
|
455
|
+
children: /* @__PURE__ */ U(Q, {})
|
|
456
|
+
}), /* @__PURE__ */ U(Y, { children: $.map((e) => /* @__PURE__ */ U(X, {
|
|
444
457
|
value: e,
|
|
445
|
-
children:
|
|
458
|
+
children: x(e)
|
|
446
459
|
}, e)) })]
|
|
447
460
|
})
|
|
448
461
|
]
|
|
@@ -451,144 +464,144 @@ function De({ circle: e, canManage: t }) {
|
|
|
451
464
|
})]
|
|
452
465
|
});
|
|
453
466
|
}
|
|
454
|
-
function
|
|
455
|
-
let r = f(), { navigateTo: a } = e(), { data: o, isLoading: s, isError: c, refetch: l } = i({ circleId: t.id }), [u, d] =
|
|
456
|
-
return /* @__PURE__ */
|
|
457
|
-
/* @__PURE__ */
|
|
467
|
+
function je({ circle: t, isMember: n }) {
|
|
468
|
+
let r = f(), { navigateTo: a } = e(), { data: o, isLoading: s, isError: c, refetch: l } = i({ circleId: t.id }), [u, d] = I(!1), p = o?.items ?? [];
|
|
469
|
+
return /* @__PURE__ */ W("div", { children: [
|
|
470
|
+
/* @__PURE__ */ U("div", {
|
|
458
471
|
className: "mb-4 flex items-center justify-end",
|
|
459
|
-
children: n && /* @__PURE__ */
|
|
472
|
+
children: n && /* @__PURE__ */ W(G, {
|
|
460
473
|
onClick: () => d(!0),
|
|
461
474
|
children: [
|
|
462
|
-
/* @__PURE__ */
|
|
475
|
+
/* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
|
|
463
476
|
" ",
|
|
464
477
|
r("comradecircle.pages.circleDetail.newEvent", "New event")
|
|
465
478
|
]
|
|
466
479
|
})
|
|
467
480
|
}),
|
|
468
|
-
s ? /* @__PURE__ */
|
|
481
|
+
s ? /* @__PURE__ */ U(E, { label: r("comradecircle.pages.circleDetail.loadingEvents", "Loading events…") }) : c ? /* @__PURE__ */ U(T, {
|
|
469
482
|
message: r("comradecircle.pages.circleDetail.eventsError", "We couldn't load events."),
|
|
470
483
|
onRetry: () => l()
|
|
471
|
-
}) : p.length === 0 ? /* @__PURE__ */
|
|
472
|
-
icon: /* @__PURE__ */
|
|
484
|
+
}) : p.length === 0 ? /* @__PURE__ */ U(w, {
|
|
485
|
+
icon: /* @__PURE__ */ U(ae, { className: "h-9 w-9" }),
|
|
473
486
|
title: r("comradecircle.pages.circleDetail.noEventsTitle", "No events scheduled"),
|
|
474
487
|
description: n ? r("comradecircle.pages.circleDetail.noEventsDescriptionMember", "Schedule the first event for this circle.") : r("comradecircle.pages.circleDetail.noEventsDescriptionNonMember", "No upcoming events."),
|
|
475
|
-
action: n ? /* @__PURE__ */
|
|
488
|
+
action: n ? /* @__PURE__ */ W(G, {
|
|
476
489
|
onClick: () => d(!0),
|
|
477
490
|
children: [
|
|
478
|
-
/* @__PURE__ */
|
|
491
|
+
/* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
|
|
479
492
|
" ",
|
|
480
493
|
r("comradecircle.pages.circleDetail.newEvent", "New event")
|
|
481
494
|
]
|
|
482
495
|
}) : void 0
|
|
483
|
-
}) : /* @__PURE__ */
|
|
496
|
+
}) : /* @__PURE__ */ U("div", {
|
|
484
497
|
className: "grid gap-4 md:grid-cols-2",
|
|
485
|
-
children: p.map((e) => /* @__PURE__ */
|
|
498
|
+
children: p.map((e) => /* @__PURE__ */ U(M, {
|
|
486
499
|
event: e,
|
|
487
500
|
onOpen: () => a(`events/${e.id}`)
|
|
488
501
|
}, e.id))
|
|
489
502
|
}),
|
|
490
|
-
/* @__PURE__ */
|
|
503
|
+
/* @__PURE__ */ U(P, {
|
|
491
504
|
circleId: t.id,
|
|
492
505
|
open: u,
|
|
493
506
|
onOpenChange: d
|
|
494
507
|
})
|
|
495
508
|
] });
|
|
496
509
|
}
|
|
497
|
-
function
|
|
498
|
-
let r = f(), { data: i, isLoading: a, isError: o, refetch: c } = s(e.id), [l, u] =
|
|
499
|
-
return /* @__PURE__ */
|
|
500
|
-
/* @__PURE__ */
|
|
510
|
+
function Me({ circle: e, isMember: t, canManage: n }) {
|
|
511
|
+
let r = f(), { data: i, isLoading: a, isError: o, refetch: c } = s(e.id), [l, u] = I(!1);
|
|
512
|
+
return /* @__PURE__ */ W("div", { children: [
|
|
513
|
+
/* @__PURE__ */ U("div", {
|
|
501
514
|
className: "mb-4 flex items-center justify-end",
|
|
502
|
-
children: t && /* @__PURE__ */
|
|
515
|
+
children: t && /* @__PURE__ */ W(G, {
|
|
503
516
|
onClick: () => u(!0),
|
|
504
517
|
children: [
|
|
505
|
-
/* @__PURE__ */
|
|
518
|
+
/* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
|
|
506
519
|
" ",
|
|
507
520
|
r("comradecircle.pages.circleDetail.newPoll", "New poll")
|
|
508
521
|
]
|
|
509
522
|
})
|
|
510
523
|
}),
|
|
511
|
-
a ? /* @__PURE__ */
|
|
524
|
+
a ? /* @__PURE__ */ U(E, { label: r("comradecircle.pages.circleDetail.loadingPolls", "Loading polls…") }) : o ? /* @__PURE__ */ U(T, {
|
|
512
525
|
message: r("comradecircle.pages.circleDetail.pollsError", "We couldn't load polls."),
|
|
513
526
|
onRetry: () => c()
|
|
514
|
-
}) : (i ?? []).length === 0 ? /* @__PURE__ */
|
|
515
|
-
icon: /* @__PURE__ */
|
|
527
|
+
}) : (i ?? []).length === 0 ? /* @__PURE__ */ U(w, {
|
|
528
|
+
icon: /* @__PURE__ */ U(L, { className: "h-9 w-9" }),
|
|
516
529
|
title: r("comradecircle.pages.circleDetail.noPollsTitle", "No polls yet"),
|
|
517
530
|
description: t ? r("comradecircle.pages.circleDetail.noPollsDescriptionMember", "Ask the circle a question with a poll.") : r("comradecircle.pages.circleDetail.noPollsDescriptionNonMember", "No polls have been created."),
|
|
518
|
-
action: t ? /* @__PURE__ */
|
|
531
|
+
action: t ? /* @__PURE__ */ W(G, {
|
|
519
532
|
onClick: () => u(!0),
|
|
520
533
|
children: [
|
|
521
|
-
/* @__PURE__ */
|
|
534
|
+
/* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
|
|
522
535
|
" ",
|
|
523
536
|
r("comradecircle.pages.circleDetail.newPoll", "New poll")
|
|
524
537
|
]
|
|
525
538
|
}) : void 0
|
|
526
|
-
}) : /* @__PURE__ */
|
|
539
|
+
}) : /* @__PURE__ */ U("div", {
|
|
527
540
|
className: "mx-auto flex max-w-2xl flex-col gap-4",
|
|
528
|
-
children: (i ?? []).map((e) => /* @__PURE__ */
|
|
541
|
+
children: (i ?? []).map((e) => /* @__PURE__ */ U(N, {
|
|
529
542
|
poll: e,
|
|
530
543
|
canManage: n
|
|
531
544
|
}, e.id))
|
|
532
545
|
}),
|
|
533
|
-
/* @__PURE__ */
|
|
546
|
+
/* @__PURE__ */ U(Ie, {
|
|
534
547
|
circleId: e.id,
|
|
535
548
|
open: l,
|
|
536
549
|
onOpenChange: u
|
|
537
550
|
})
|
|
538
551
|
] });
|
|
539
552
|
}
|
|
540
|
-
function
|
|
553
|
+
function Ne({ circle: e }) {
|
|
541
554
|
let t = f();
|
|
542
|
-
return /* @__PURE__ */
|
|
555
|
+
return /* @__PURE__ */ U("div", {
|
|
543
556
|
className: "mx-auto max-w-2xl",
|
|
544
|
-
children: /* @__PURE__ */
|
|
557
|
+
children: /* @__PURE__ */ W("div", {
|
|
545
558
|
className: "rounded-2xl border border-border-seam bg-bg-surface p-6",
|
|
546
559
|
children: [
|
|
547
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ U("h2", {
|
|
548
561
|
className: "text-lg font-semibold text-text-primary",
|
|
549
562
|
children: t("comradecircle.pages.circleDetail.aboutTitle", "About this circle")
|
|
550
563
|
}),
|
|
551
|
-
/* @__PURE__ */
|
|
564
|
+
/* @__PURE__ */ U("p", {
|
|
552
565
|
className: "mt-2 whitespace-pre-wrap text-sm text-text-secondary",
|
|
553
566
|
children: e.description || t("comradecircle.pages.circleDetail.noDescription", "No description provided.")
|
|
554
567
|
}),
|
|
555
|
-
e.tags.length > 0 && /* @__PURE__ */
|
|
568
|
+
e.tags.length > 0 && /* @__PURE__ */ U("div", {
|
|
556
569
|
className: "mt-4 flex flex-wrap gap-1.5",
|
|
557
|
-
children: e.tags.map((e) => /* @__PURE__ */
|
|
570
|
+
children: e.tags.map((e) => /* @__PURE__ */ W("span", {
|
|
558
571
|
className: "rounded-full bg-bg-sunken px-2.5 py-0.5 text-xs font-medium text-text-secondary",
|
|
559
572
|
children: ["#", e]
|
|
560
573
|
}, e))
|
|
561
574
|
}),
|
|
562
|
-
/* @__PURE__ */
|
|
575
|
+
/* @__PURE__ */ W("dl", {
|
|
563
576
|
className: "mt-6 grid grid-cols-2 gap-4 text-sm",
|
|
564
577
|
children: [
|
|
565
|
-
/* @__PURE__ */
|
|
578
|
+
/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
|
|
566
579
|
className: "text-text-tertiary",
|
|
567
580
|
children: t("comradecircle.pages.circleDetail.visibilityLabel", "Visibility")
|
|
568
|
-
}), /* @__PURE__ */
|
|
581
|
+
}), /* @__PURE__ */ U("dd", {
|
|
569
582
|
className: "mt-1 text-text-primary",
|
|
570
|
-
children:
|
|
583
|
+
children: x(e.visibility)
|
|
571
584
|
})] }),
|
|
572
|
-
/* @__PURE__ */
|
|
585
|
+
/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
|
|
573
586
|
className: "text-text-tertiary",
|
|
574
587
|
children: t("comradecircle.pages.circleDetail.statusLabel", "Status")
|
|
575
|
-
}), /* @__PURE__ */
|
|
588
|
+
}), /* @__PURE__ */ U("dd", {
|
|
576
589
|
className: "mt-1 text-text-primary",
|
|
577
|
-
children:
|
|
590
|
+
children: x(e.status)
|
|
578
591
|
})] }),
|
|
579
|
-
/* @__PURE__ */
|
|
592
|
+
/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
|
|
580
593
|
className: "text-text-tertiary",
|
|
581
594
|
children: t("comradecircle.pages.circleDetail.membersLabel", "Members")
|
|
582
|
-
}), /* @__PURE__ */
|
|
595
|
+
}), /* @__PURE__ */ U("dd", {
|
|
583
596
|
className: "mt-1 text-text-primary",
|
|
584
|
-
children:
|
|
597
|
+
children: S(e.memberCount)
|
|
585
598
|
})] }),
|
|
586
|
-
/* @__PURE__ */
|
|
599
|
+
/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("dt", {
|
|
587
600
|
className: "text-text-tertiary",
|
|
588
601
|
children: t("comradecircle.pages.circleDetail.createdLabel", "Created")
|
|
589
|
-
}), /* @__PURE__ */
|
|
602
|
+
}), /* @__PURE__ */ U("dd", {
|
|
590
603
|
className: "mt-1 text-text-primary",
|
|
591
|
-
children:
|
|
604
|
+
children: b(e.createdAt)
|
|
592
605
|
})] })
|
|
593
606
|
]
|
|
594
607
|
})
|
|
@@ -596,70 +609,70 @@ function Ae({ circle: e }) {
|
|
|
596
609
|
})
|
|
597
610
|
});
|
|
598
611
|
}
|
|
599
|
-
var
|
|
612
|
+
var Pe = [
|
|
600
613
|
"TEXT",
|
|
601
614
|
"FORUM",
|
|
602
615
|
"ANNOUNCEMENT",
|
|
603
616
|
"VOICE"
|
|
604
617
|
];
|
|
605
|
-
function
|
|
606
|
-
let a = f(), o = n(), [s, c] =
|
|
607
|
-
return /* @__PURE__ */
|
|
618
|
+
function Fe({ circleId: e, open: t, onOpenChange: r, onCreated: i }) {
|
|
619
|
+
let a = f(), o = n(), [s, c] = I(""), [l, u] = I(""), [d, p] = I("TEXT"), [m, h] = I(null);
|
|
620
|
+
return /* @__PURE__ */ U(he, {
|
|
608
621
|
open: t,
|
|
609
622
|
onOpenChange: r,
|
|
610
|
-
children: /* @__PURE__ */
|
|
623
|
+
children: /* @__PURE__ */ W(ge, {
|
|
611
624
|
className: "sm:max-w-md",
|
|
612
625
|
children: [
|
|
613
|
-
/* @__PURE__ */
|
|
614
|
-
/* @__PURE__ */
|
|
626
|
+
/* @__PURE__ */ W(ye, { children: [/* @__PURE__ */ U(be, { children: a("comradecircle.pages.circleDetail.createChannelTitle", "Create a channel") }), /* @__PURE__ */ U(_e, { children: a("comradecircle.pages.circleDetail.createChannelDescription", "Channels organise conversations by topic or format.") })] }),
|
|
627
|
+
/* @__PURE__ */ W("div", {
|
|
615
628
|
className: "flex flex-col gap-4 py-2",
|
|
616
629
|
children: [
|
|
617
|
-
/* @__PURE__ */
|
|
630
|
+
/* @__PURE__ */ W("div", {
|
|
618
631
|
className: "grid gap-1.5",
|
|
619
|
-
children: [/* @__PURE__ */
|
|
632
|
+
children: [/* @__PURE__ */ U(q, {
|
|
620
633
|
htmlFor: "channel-name",
|
|
621
634
|
children: a("comradecircle.pages.circleDetail.channelNameLabel", "Name")
|
|
622
|
-
}), /* @__PURE__ */
|
|
635
|
+
}), /* @__PURE__ */ U(K, {
|
|
623
636
|
id: "channel-name",
|
|
624
637
|
value: s,
|
|
625
638
|
onChange: (e) => c(e.target.value),
|
|
626
639
|
placeholder: a("comradecircle.pages.circleDetail.channelNamePlaceholder", "general")
|
|
627
640
|
})]
|
|
628
641
|
}),
|
|
629
|
-
/* @__PURE__ */
|
|
642
|
+
/* @__PURE__ */ W("div", {
|
|
630
643
|
className: "grid gap-1.5",
|
|
631
|
-
children: [/* @__PURE__ */
|
|
644
|
+
children: [/* @__PURE__ */ U(q, { children: a("comradecircle.pages.circleDetail.channelTypeLabel", "Type") }), /* @__PURE__ */ W(J, {
|
|
632
645
|
value: d,
|
|
633
646
|
onValueChange: (e) => p(e),
|
|
634
|
-
children: [/* @__PURE__ */
|
|
647
|
+
children: [/* @__PURE__ */ U(Z, { children: /* @__PURE__ */ U(Q, {}) }), /* @__PURE__ */ U(Y, { children: Pe.map((e) => /* @__PURE__ */ U(X, {
|
|
635
648
|
value: e,
|
|
636
|
-
children:
|
|
649
|
+
children: x(e)
|
|
637
650
|
}, e)) })]
|
|
638
651
|
})]
|
|
639
652
|
}),
|
|
640
|
-
/* @__PURE__ */
|
|
653
|
+
/* @__PURE__ */ W("div", {
|
|
641
654
|
className: "grid gap-1.5",
|
|
642
|
-
children: [/* @__PURE__ */
|
|
655
|
+
children: [/* @__PURE__ */ U(q, {
|
|
643
656
|
htmlFor: "channel-desc",
|
|
644
657
|
children: a("comradecircle.pages.circleDetail.channelDescriptionLabel", "Description")
|
|
645
|
-
}), /* @__PURE__ */
|
|
658
|
+
}), /* @__PURE__ */ U(Se, {
|
|
646
659
|
id: "channel-desc",
|
|
647
660
|
value: l,
|
|
648
661
|
onChange: (e) => u(e.target.value),
|
|
649
662
|
rows: 2
|
|
650
663
|
})]
|
|
651
664
|
}),
|
|
652
|
-
m && /* @__PURE__ */
|
|
665
|
+
m && /* @__PURE__ */ U("p", {
|
|
653
666
|
className: "text-sm text-status-error-text",
|
|
654
667
|
children: m
|
|
655
668
|
})
|
|
656
669
|
]
|
|
657
670
|
}),
|
|
658
|
-
/* @__PURE__ */
|
|
671
|
+
/* @__PURE__ */ W(ve, { children: [/* @__PURE__ */ U(G, {
|
|
659
672
|
variant: "outline",
|
|
660
673
|
onClick: () => r(!1),
|
|
661
674
|
children: a("common.cancel", "Cancel")
|
|
662
|
-
}), /* @__PURE__ */
|
|
675
|
+
}), /* @__PURE__ */ U(G, {
|
|
663
676
|
onClick: async () => {
|
|
664
677
|
if (!s.trim()) {
|
|
665
678
|
h(a("comradecircle.pages.circleDetail.channelNameRequired", "Channel name is required."));
|
|
@@ -669,13 +682,13 @@ function $({ circleId: e, open: t, onOpenChange: r, onCreated: i }) {
|
|
|
669
682
|
let t = await o.mutateAsync({
|
|
670
683
|
circleId: e,
|
|
671
684
|
name: s.trim(),
|
|
672
|
-
slug:
|
|
685
|
+
slug: O(s),
|
|
673
686
|
description: l.trim() || null,
|
|
674
687
|
type: d
|
|
675
688
|
});
|
|
676
|
-
|
|
689
|
+
y.success(a("comradecircle.pages.circleDetail.channelCreated", "Channel created"), `#${t.name}`), r(!1), c(""), u(""), p("TEXT"), h(null), i?.(t);
|
|
677
690
|
} catch (e) {
|
|
678
|
-
h(
|
|
691
|
+
h(v(e));
|
|
679
692
|
}
|
|
680
693
|
},
|
|
681
694
|
disabled: o.isPending,
|
|
@@ -685,131 +698,131 @@ function $({ circleId: e, open: t, onOpenChange: r, onCreated: i }) {
|
|
|
685
698
|
})
|
|
686
699
|
});
|
|
687
700
|
}
|
|
688
|
-
function
|
|
689
|
-
let i = f(), a = r(), [o, s] =
|
|
701
|
+
function Ie({ circleId: e, open: t, onOpenChange: n }) {
|
|
702
|
+
let i = f(), a = r(), [o, s] = I(""), [c, l] = I(["", ""]), [u, d] = I(!1), [p, m] = I(!1), [h, g] = I(""), [_, b] = I(null), x = F(() => {
|
|
690
703
|
let e = /* @__PURE__ */ new Date();
|
|
691
704
|
return e.setMinutes(e.getMinutes() - e.getTimezoneOffset()), e.toISOString().slice(0, 16);
|
|
692
705
|
}, []), S = () => {
|
|
693
706
|
s(""), l(["", ""]), d(!1), m(!1), g(""), b(null);
|
|
694
707
|
};
|
|
695
|
-
return /* @__PURE__ */
|
|
708
|
+
return /* @__PURE__ */ U(he, {
|
|
696
709
|
open: t,
|
|
697
710
|
onOpenChange: n,
|
|
698
|
-
children: /* @__PURE__ */
|
|
711
|
+
children: /* @__PURE__ */ W(ge, {
|
|
699
712
|
className: "sm:max-w-md",
|
|
700
713
|
children: [
|
|
701
|
-
/* @__PURE__ */
|
|
702
|
-
/* @__PURE__ */
|
|
714
|
+
/* @__PURE__ */ W(ye, { children: [/* @__PURE__ */ U(be, { children: i("comradecircle.pages.circleDetail.createPollTitle", "Create a poll") }), /* @__PURE__ */ U(_e, { children: i("comradecircle.pages.circleDetail.createPollDescription", "Gather the circle's opinion.") })] }),
|
|
715
|
+
/* @__PURE__ */ W("div", {
|
|
703
716
|
className: "flex flex-col gap-4 py-2",
|
|
704
717
|
children: [
|
|
705
|
-
/* @__PURE__ */
|
|
718
|
+
/* @__PURE__ */ W("div", {
|
|
706
719
|
className: "grid gap-1.5",
|
|
707
|
-
children: [/* @__PURE__ */
|
|
720
|
+
children: [/* @__PURE__ */ U(q, {
|
|
708
721
|
htmlFor: "poll-q",
|
|
709
722
|
children: i("comradecircle.pages.circleDetail.pollQuestionLabel", "Question")
|
|
710
|
-
}), /* @__PURE__ */
|
|
723
|
+
}), /* @__PURE__ */ U(K, {
|
|
711
724
|
id: "poll-q",
|
|
712
725
|
value: o,
|
|
713
726
|
onChange: (e) => s(e.target.value),
|
|
714
727
|
placeholder: i("comradecircle.pages.circleDetail.pollQuestionPlaceholder", "What should we build next?")
|
|
715
728
|
})]
|
|
716
729
|
}),
|
|
717
|
-
/* @__PURE__ */
|
|
730
|
+
/* @__PURE__ */ W("div", {
|
|
718
731
|
className: "grid gap-1.5",
|
|
719
|
-
children: [/* @__PURE__ */
|
|
732
|
+
children: [/* @__PURE__ */ U(q, { children: i("comradecircle.pages.circleDetail.pollOptionsLabel", "Options") }), /* @__PURE__ */ W("div", {
|
|
720
733
|
className: "flex flex-col gap-2",
|
|
721
|
-
children: [c.map((e, t) => /* @__PURE__ */
|
|
734
|
+
children: [c.map((e, t) => /* @__PURE__ */ W("div", {
|
|
722
735
|
className: "flex items-center gap-2",
|
|
723
|
-
children: [/* @__PURE__ */
|
|
736
|
+
children: [/* @__PURE__ */ U(K, {
|
|
724
737
|
value: e,
|
|
725
738
|
onChange: (e) => l((n) => n.map((n, r) => r === t ? e.target.value : n)),
|
|
726
739
|
placeholder: i("comradecircle.pages.circleDetail.pollOptionPlaceholder", "Option {{number}}", { number: t + 1 })
|
|
727
|
-
}), c.length > 2 && /* @__PURE__ */
|
|
740
|
+
}), c.length > 2 && /* @__PURE__ */ U(G, {
|
|
728
741
|
variant: "ghost",
|
|
729
742
|
size: "icon",
|
|
730
743
|
onClick: () => l((e) => e.filter((e, n) => n !== t)),
|
|
731
744
|
"aria-label": i("comradecircle.pages.circleDetail.removeOptionAriaLabel", "Remove option {{number}}", { number: t + 1 }),
|
|
732
745
|
children: "✕"
|
|
733
746
|
})]
|
|
734
|
-
}, t)), c.length < 8 && /* @__PURE__ */
|
|
747
|
+
}, t)), c.length < 8 && /* @__PURE__ */ W(G, {
|
|
735
748
|
variant: "outline",
|
|
736
749
|
size: "sm",
|
|
737
750
|
onClick: () => l((e) => [...e, ""]),
|
|
738
751
|
children: [
|
|
739
|
-
/* @__PURE__ */
|
|
752
|
+
/* @__PURE__ */ U(B, { className: "mr-1.5 h-4 w-4" }),
|
|
740
753
|
" ",
|
|
741
754
|
i("comradecircle.pages.circleDetail.addOption", "Add option")
|
|
742
755
|
]
|
|
743
756
|
})]
|
|
744
757
|
})]
|
|
745
758
|
}),
|
|
746
|
-
/* @__PURE__ */
|
|
759
|
+
/* @__PURE__ */ W("div", {
|
|
747
760
|
className: "grid gap-1.5",
|
|
748
761
|
children: [
|
|
749
|
-
/* @__PURE__ */
|
|
762
|
+
/* @__PURE__ */ U(q, {
|
|
750
763
|
htmlFor: "poll-closes",
|
|
751
764
|
children: i("comradecircle.pages.circleDetail.pollClosesLabel", "Closes at")
|
|
752
765
|
}),
|
|
753
|
-
/* @__PURE__ */
|
|
766
|
+
/* @__PURE__ */ U(K, {
|
|
754
767
|
id: "poll-closes",
|
|
755
768
|
type: "datetime-local",
|
|
756
769
|
min: x,
|
|
757
770
|
value: h,
|
|
758
771
|
onChange: (e) => g(e.target.value)
|
|
759
772
|
}),
|
|
760
|
-
/* @__PURE__ */
|
|
773
|
+
/* @__PURE__ */ U("p", {
|
|
761
774
|
className: "text-xs text-text-tertiary",
|
|
762
775
|
children: i("comradecircle.pages.circleDetail.pollClosesHint", "Optional — leave empty to keep voting open indefinitely.")
|
|
763
776
|
})
|
|
764
777
|
]
|
|
765
778
|
}),
|
|
766
|
-
/* @__PURE__ */
|
|
779
|
+
/* @__PURE__ */ W("div", {
|
|
767
780
|
className: "flex flex-col divide-y divide-border-seam rounded-xl border border-border-seam",
|
|
768
|
-
children: [/* @__PURE__ */
|
|
781
|
+
children: [/* @__PURE__ */ W("div", {
|
|
769
782
|
className: "flex items-center justify-between gap-4 px-3 py-3",
|
|
770
|
-
children: [/* @__PURE__ */
|
|
783
|
+
children: [/* @__PURE__ */ W("div", {
|
|
771
784
|
className: "min-w-0",
|
|
772
|
-
children: [/* @__PURE__ */
|
|
785
|
+
children: [/* @__PURE__ */ U(q, {
|
|
773
786
|
htmlFor: "poll-multi",
|
|
774
787
|
children: i("comradecircle.pages.circleDetail.pollMultiLabel", "Allow multiple choices")
|
|
775
|
-
}), /* @__PURE__ */
|
|
788
|
+
}), /* @__PURE__ */ U("p", {
|
|
776
789
|
className: "text-xs text-text-tertiary",
|
|
777
790
|
children: i("comradecircle.pages.circleDetail.pollMultiHint", "Let voters pick more than one option.")
|
|
778
791
|
})]
|
|
779
|
-
}), /* @__PURE__ */
|
|
792
|
+
}), /* @__PURE__ */ U(xe, {
|
|
780
793
|
id: "poll-multi",
|
|
781
794
|
checked: u,
|
|
782
795
|
onCheckedChange: d
|
|
783
796
|
})]
|
|
784
|
-
}), /* @__PURE__ */
|
|
797
|
+
}), /* @__PURE__ */ W("div", {
|
|
785
798
|
className: "flex items-center justify-between gap-4 px-3 py-3",
|
|
786
|
-
children: [/* @__PURE__ */
|
|
799
|
+
children: [/* @__PURE__ */ W("div", {
|
|
787
800
|
className: "min-w-0",
|
|
788
|
-
children: [/* @__PURE__ */
|
|
801
|
+
children: [/* @__PURE__ */ U(q, {
|
|
789
802
|
htmlFor: "poll-anon",
|
|
790
803
|
children: i("comradecircle.pages.circleDetail.pollAnonymousLabel", "Anonymous voting")
|
|
791
|
-
}), /* @__PURE__ */
|
|
804
|
+
}), /* @__PURE__ */ U("p", {
|
|
792
805
|
className: "text-xs text-text-tertiary",
|
|
793
806
|
children: i("comradecircle.pages.circleDetail.pollAnonymousHint", "Hide who voted for each option.")
|
|
794
807
|
})]
|
|
795
|
-
}), /* @__PURE__ */
|
|
808
|
+
}), /* @__PURE__ */ U(xe, {
|
|
796
809
|
id: "poll-anon",
|
|
797
810
|
checked: p,
|
|
798
811
|
onCheckedChange: m
|
|
799
812
|
})]
|
|
800
813
|
})]
|
|
801
814
|
}),
|
|
802
|
-
|
|
815
|
+
_ && /* @__PURE__ */ U("p", {
|
|
803
816
|
className: "text-sm text-status-error-text",
|
|
804
|
-
children:
|
|
817
|
+
children: _
|
|
805
818
|
})
|
|
806
819
|
]
|
|
807
820
|
}),
|
|
808
|
-
/* @__PURE__ */
|
|
821
|
+
/* @__PURE__ */ W(ve, { children: [/* @__PURE__ */ U(G, {
|
|
809
822
|
variant: "outline",
|
|
810
823
|
onClick: () => n(!1),
|
|
811
824
|
children: i("common.cancel", "Cancel")
|
|
812
|
-
}), /* @__PURE__ */
|
|
825
|
+
}), /* @__PURE__ */ U(G, {
|
|
813
826
|
onClick: async () => {
|
|
814
827
|
let t = c.map((e) => e.trim()).filter(Boolean);
|
|
815
828
|
if (!o.trim()) {
|
|
@@ -828,9 +841,9 @@ function Me({ circleId: e, open: t, onOpenChange: n }) {
|
|
|
828
841
|
allowMultiple: u,
|
|
829
842
|
isAnonymous: p,
|
|
830
843
|
closesAt: h ? new Date(h).toISOString() : null
|
|
831
|
-
}),
|
|
844
|
+
}), y.success(i("comradecircle.pages.circleDetail.pollCreated", "Poll created")), n(!1), S();
|
|
832
845
|
} catch (e) {
|
|
833
|
-
b(
|
|
846
|
+
b(v(e));
|
|
834
847
|
}
|
|
835
848
|
},
|
|
836
849
|
disabled: a.isPending,
|
|
@@ -841,6 +854,6 @@ function Me({ circleId: e, open: t, onOpenChange: n }) {
|
|
|
841
854
|
});
|
|
842
855
|
}
|
|
843
856
|
//#endregion
|
|
844
|
-
export {
|
|
857
|
+
export { De as CircleDetailPage };
|
|
845
858
|
|
|
846
859
|
//# sourceMappingURL=CircleDetailPage.js.map
|