@burdenoff/microfe-comradecircle 2026.525.1 → 2026.704.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/comradecircle/ComradeCircleRoot.js +75 -95
- package/dist/comradecircle/ComradeCircleRoot.js.map +1 -1
- package/dist/comradecircle/ComradeCircleRoutes.js +58 -37
- package/dist/comradecircle/ComradeCircleRoutes.js.map +1 -1
- package/dist/comradecircle/components/Avatar.js +47 -0
- package/dist/comradecircle/components/Avatar.js.map +1 -0
- package/dist/comradecircle/components/AvatarUploadField.js +80 -0
- package/dist/comradecircle/components/AvatarUploadField.js.map +1 -0
- package/dist/comradecircle/components/CircleCard.js +118 -0
- package/dist/comradecircle/components/CircleCard.js.map +1 -0
- package/dist/comradecircle/components/CommentThread.js +105 -0
- package/dist/comradecircle/components/CommentThread.js.map +1 -0
- package/dist/comradecircle/components/CreateCircleDialog.js +159 -0
- package/dist/comradecircle/components/CreateCircleDialog.js.map +1 -0
- package/dist/comradecircle/components/CreateEventDialog.js +210 -0
- package/dist/comradecircle/components/CreateEventDialog.js.map +1 -0
- package/dist/comradecircle/components/EmptyState.js +35 -0
- package/dist/comradecircle/components/EmptyState.js.map +1 -0
- package/dist/comradecircle/components/EventCard.js +93 -0
- package/dist/comradecircle/components/EventCard.js.map +1 -0
- package/dist/comradecircle/components/FileImage.js +20 -0
- package/dist/comradecircle/components/FileImage.js.map +1 -0
- package/dist/comradecircle/components/FilterTabs.js +27 -0
- package/dist/comradecircle/components/FilterTabs.js.map +1 -0
- package/dist/comradecircle/components/ImageAttachments.js +97 -0
- package/dist/comradecircle/components/ImageAttachments.js.map +1 -0
- package/dist/comradecircle/components/MemberIdentity.js +44 -0
- package/dist/comradecircle/components/MemberIdentity.js.map +1 -0
- package/dist/comradecircle/components/MiniBar.js +22 -0
- package/dist/comradecircle/components/MiniBar.js.map +1 -0
- package/dist/comradecircle/components/PageLayout.js +38 -0
- package/dist/comradecircle/components/PageLayout.js.map +1 -0
- package/dist/comradecircle/components/Pagination.js +50 -0
- package/dist/comradecircle/components/Pagination.js.map +1 -0
- package/dist/comradecircle/components/PollCard.js +97 -0
- package/dist/comradecircle/components/PollCard.js.map +1 -0
- package/dist/comradecircle/components/PostCard.js +163 -0
- package/dist/comradecircle/components/PostCard.js.map +1 -0
- package/dist/comradecircle/components/PostComposer.js +87 -0
- package/dist/comradecircle/components/PostComposer.js.map +1 -0
- package/dist/comradecircle/components/ReactionBar.js +122 -0
- package/dist/comradecircle/components/ReactionBar.js.map +1 -0
- package/dist/comradecircle/components/StateViews.js +49 -0
- package/dist/comradecircle/components/StateViews.js.map +1 -0
- package/dist/comradecircle/components/StatusBadge.js +68 -0
- package/dist/comradecircle/components/StatusBadge.js.map +1 -0
- package/dist/comradecircle/components/Tabs.js +31 -0
- package/dist/comradecircle/components/Tabs.js.map +1 -0
- package/dist/comradecircle/components/TagInput.js +49 -0
- package/dist/comradecircle/components/TagInput.js.map +1 -0
- package/dist/comradecircle/context/ComradeCircleContext.js +85 -0
- package/dist/comradecircle/context/ComradeCircleContext.js.map +1 -0
- package/dist/comradecircle/context/index.js +1 -0
- package/dist/comradecircle/hooks/index.js +3 -0
- package/dist/comradecircle/hooks/useComradeCircleApi.js +419 -0
- package/dist/comradecircle/hooks/useComradeCircleApi.js.map +1 -0
- package/dist/comradecircle/hooks/useCursorPager.js +25 -0
- package/dist/comradecircle/hooks/useCursorPager.js.map +1 -0
- package/dist/comradecircle/hooks/useFiles.js +78 -0
- package/dist/comradecircle/hooks/useFiles.js.map +1 -0
- package/dist/comradecircle/index.js +5 -2
- package/dist/comradecircle/lib/graphql-cache.js +9 -0
- package/dist/comradecircle/lib/graphql-cache.js.map +1 -0
- package/dist/comradecircle/lib/toast.js +39 -0
- package/dist/comradecircle/lib/toast.js.map +1 -0
- package/dist/comradecircle/pages/FeedPage.js +65 -0
- package/dist/comradecircle/pages/FeedPage.js.map +1 -0
- package/dist/comradecircle/pages/circles/CircleDetailPage.js +651 -0
- package/dist/comradecircle/pages/circles/CircleDetailPage.js.map +1 -0
- package/dist/comradecircle/pages/circles/CirclesPage.js +129 -0
- package/dist/comradecircle/pages/circles/CirclesPage.js.map +1 -0
- package/dist/comradecircle/pages/events/EventDetailPage.js +276 -0
- package/dist/comradecircle/pages/events/EventDetailPage.js.map +1 -0
- package/dist/comradecircle/pages/events/EventsPage.js +102 -0
- package/dist/comradecircle/pages/events/EventsPage.js.map +1 -0
- package/dist/comradecircle/pages/members/MemberProfilePage.js +138 -0
- package/dist/comradecircle/pages/members/MemberProfilePage.js.map +1 -0
- package/dist/comradecircle/pages/members/MembersPage.js +153 -0
- package/dist/comradecircle/pages/members/MembersPage.js.map +1 -0
- package/dist/comradecircle/pages/profile/MyProfilePage.js +266 -0
- package/dist/comradecircle/pages/profile/MyProfilePage.js.map +1 -0
- package/dist/comradecircle/utils/cn.js +10 -0
- package/dist/comradecircle/utils/cn.js.map +1 -0
- package/dist/comradecircle/utils/formatters.js +51 -0
- package/dist/comradecircle/utils/formatters.js.map +1 -0
- package/dist/comradecircle/utils/navigation.js +2 -1
- package/dist/comradecircle/utils/navigation.js.map +1 -1
- package/dist/comradecircle/utils/slug.js +8 -0
- package/dist/comradecircle/utils/slug.js.map +1 -0
- package/dist/index.js +6 -4
- package/dist/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/sonner/dist/index.js +163 -0
- package/dist/node_modules/sonner/dist/index.js.map +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +1716 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/package.json +3 -2
- package/dist/comradecircle/pages/CommunitiesPage.js +0 -299
- package/dist/comradecircle/pages/CommunitiesPage.js.map +0 -1
- package/dist/comradecircle/pages/CreatorPage.js +0 -399
- package/dist/comradecircle/pages/CreatorPage.js.map +0 -1
- package/dist/comradecircle/pages/DashboardPage.js +0 -265
- package/dist/comradecircle/pages/DashboardPage.js.map +0 -1
- package/dist/comradecircle/providers/ComradeCircleProvider.js +0 -27
- package/dist/comradecircle/providers/ComradeCircleProvider.js.map +0 -1
- package/dist/comradecircle/store/comradecircleStore.js +0 -345
- package/dist/comradecircle/store/comradecircleStore.js.map +0 -1
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import { useComradeCircleStore as e } from "../store/comradecircleStore.js";
|
|
2
|
-
import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
3
|
-
import { Crown as n, Eye as r, Globe as i, Lock as a, MessageCircle as o, MoreVertical as s, Plus as c, Search as l, Shield as u, TrendingUp as d, UserPlus as f, Users as p } from "lucide-react";
|
|
4
|
-
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
5
|
-
import { Badge as g, Button as _, Card as v, CardContent as y, CardDescription as b, CardHeader as x, CardTitle as S, Input as C } from "@burdenoff/fe-libs/ui";
|
|
6
|
-
//#region src/comradecircle/pages/CommunitiesPage.tsx
|
|
7
|
-
function w(e) {
|
|
8
|
-
switch (e) {
|
|
9
|
-
case "private": return a;
|
|
10
|
-
case "premium": return n;
|
|
11
|
-
default: return i;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function T(e) {
|
|
15
|
-
switch (e) {
|
|
16
|
-
case "private": return "bg-red-500/10 text-red-600";
|
|
17
|
-
case "premium": return "bg-amber-500/10 text-amber-600";
|
|
18
|
-
default: return "bg-emerald-500/10 text-emerald-600";
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function E() {
|
|
22
|
-
let { t: i } = t(), { communities: a, communityStats: E, communityFilter: D, communitySearchQuery: O, setCommunityFilter: k, setCommunitySearchQuery: A } = e(), j = a.filter((e) => {
|
|
23
|
-
if (O && !e.name.toLowerCase().includes(O.toLowerCase()) && !e.description.toLowerCase().includes(O.toLowerCase())) return !1;
|
|
24
|
-
switch (D) {
|
|
25
|
-
case "owned": return e.isOwner;
|
|
26
|
-
case "moderated": return e.isModerator;
|
|
27
|
-
case "member": return e.isMember && !e.isOwner && !e.isModerator;
|
|
28
|
-
default: return !0;
|
|
29
|
-
}
|
|
30
|
-
}), M = {
|
|
31
|
-
all: i("comradecircle.communities.filters.all", { defaultValue: "All" }),
|
|
32
|
-
owned: i("comradecircle.communities.filters.owned", { defaultValue: "Owned" }),
|
|
33
|
-
moderated: i("comradecircle.communities.filters.moderated", { defaultValue: "Moderated" }),
|
|
34
|
-
member: i("comradecircle.communities.filters.member", { defaultValue: "Member" })
|
|
35
|
-
};
|
|
36
|
-
return /* @__PURE__ */ h("div", {
|
|
37
|
-
className: "space-y-6 p-6",
|
|
38
|
-
children: [
|
|
39
|
-
/* @__PURE__ */ h("div", {
|
|
40
|
-
className: "flex flex-col sm:flex-row sm:items-center sm:justify-between",
|
|
41
|
-
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h1", {
|
|
42
|
-
className: "text-3xl font-bold",
|
|
43
|
-
children: i("comradecircle.communities.title", { defaultValue: "Communities" })
|
|
44
|
-
}), /* @__PURE__ */ m("p", {
|
|
45
|
-
className: "text-muted-foreground mt-1",
|
|
46
|
-
children: i("comradecircle.communities.subtitle", { defaultValue: "Manage and discover communities that match your interests" })
|
|
47
|
-
})] }), /* @__PURE__ */ h(_, { children: [/* @__PURE__ */ m(c, { className: "w-4 h-4 mr-2" }), i("comradecircle.communities.actions.createCommunity", { defaultValue: "Create Community" })] })]
|
|
48
|
-
}),
|
|
49
|
-
/* @__PURE__ */ h("div", {
|
|
50
|
-
className: "grid grid-cols-1 md:grid-cols-4 gap-4",
|
|
51
|
-
children: [
|
|
52
|
-
/* @__PURE__ */ m(v, { children: /* @__PURE__ */ m(y, {
|
|
53
|
-
className: "p-4",
|
|
54
|
-
children: /* @__PURE__ */ h("div", {
|
|
55
|
-
className: "flex items-center justify-between",
|
|
56
|
-
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
57
|
-
className: "text-sm font-medium text-muted-foreground",
|
|
58
|
-
children: i("comradecircle.communities.stats.totalCommunities", { defaultValue: "Total Communities" })
|
|
59
|
-
}), /* @__PURE__ */ m("p", {
|
|
60
|
-
className: "text-2xl font-bold",
|
|
61
|
-
children: E.totalCommunities
|
|
62
|
-
})] }), /* @__PURE__ */ m(p, { className: "h-8 w-8 text-blue-600" })]
|
|
63
|
-
})
|
|
64
|
-
}) }),
|
|
65
|
-
/* @__PURE__ */ m(v, { children: /* @__PURE__ */ m(y, {
|
|
66
|
-
className: "p-4",
|
|
67
|
-
children: /* @__PURE__ */ h("div", {
|
|
68
|
-
className: "flex items-center justify-between",
|
|
69
|
-
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
70
|
-
className: "text-sm font-medium text-muted-foreground",
|
|
71
|
-
children: i("comradecircle.communities.stats.communitiesOwned", { defaultValue: "Communities Owned" })
|
|
72
|
-
}), /* @__PURE__ */ m("p", {
|
|
73
|
-
className: "text-2xl font-bold",
|
|
74
|
-
children: E.ownedCommunities
|
|
75
|
-
})] }), /* @__PURE__ */ m(n, { className: "h-8 w-8 text-amber-500" })]
|
|
76
|
-
})
|
|
77
|
-
}) }),
|
|
78
|
-
/* @__PURE__ */ m(v, { children: /* @__PURE__ */ m(y, {
|
|
79
|
-
className: "p-4",
|
|
80
|
-
children: /* @__PURE__ */ h("div", {
|
|
81
|
-
className: "flex items-center justify-between",
|
|
82
|
-
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
83
|
-
className: "text-sm font-medium text-muted-foreground",
|
|
84
|
-
children: i("comradecircle.communities.stats.totalMembers", { defaultValue: "Total Members" })
|
|
85
|
-
}), /* @__PURE__ */ m("p", {
|
|
86
|
-
className: "text-2xl font-bold",
|
|
87
|
-
children: E.totalMembers.toLocaleString()
|
|
88
|
-
})] }), /* @__PURE__ */ m(f, { className: "h-8 w-8 text-emerald-600" })]
|
|
89
|
-
})
|
|
90
|
-
}) }),
|
|
91
|
-
/* @__PURE__ */ m(v, { children: /* @__PURE__ */ m(y, {
|
|
92
|
-
className: "p-4",
|
|
93
|
-
children: /* @__PURE__ */ h("div", {
|
|
94
|
-
className: "flex items-center justify-between",
|
|
95
|
-
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
96
|
-
className: "text-sm font-medium text-muted-foreground",
|
|
97
|
-
children: i("comradecircle.communities.stats.weeklyGrowth", { defaultValue: "Weekly Growth" })
|
|
98
|
-
}), /* @__PURE__ */ h("p", {
|
|
99
|
-
className: "text-2xl font-bold",
|
|
100
|
-
children: [
|
|
101
|
-
"+",
|
|
102
|
-
E.weeklyGrowth,
|
|
103
|
-
"%"
|
|
104
|
-
]
|
|
105
|
-
})] }), /* @__PURE__ */ m(d, { className: "h-8 w-8 text-violet-600" })]
|
|
106
|
-
})
|
|
107
|
-
}) })
|
|
108
|
-
]
|
|
109
|
-
}),
|
|
110
|
-
/* @__PURE__ */ h("div", {
|
|
111
|
-
className: "flex flex-col sm:flex-row gap-4",
|
|
112
|
-
children: [/* @__PURE__ */ h("div", {
|
|
113
|
-
className: "flex-1 relative",
|
|
114
|
-
children: [/* @__PURE__ */ m(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ m(C, {
|
|
115
|
-
placeholder: i("comradecircle.communities.search.placeholder", { defaultValue: "Search communities..." }),
|
|
116
|
-
className: "pl-10",
|
|
117
|
-
value: O,
|
|
118
|
-
onChange: (e) => A(e.target.value)
|
|
119
|
-
})]
|
|
120
|
-
}), /* @__PURE__ */ m("div", {
|
|
121
|
-
className: "flex items-center space-x-2",
|
|
122
|
-
children: [
|
|
123
|
-
"all",
|
|
124
|
-
"owned",
|
|
125
|
-
"moderated",
|
|
126
|
-
"member"
|
|
127
|
-
].map((e) => /* @__PURE__ */ h(_, {
|
|
128
|
-
variant: D === e ? "default" : "outline",
|
|
129
|
-
size: "sm",
|
|
130
|
-
onClick: () => k(e),
|
|
131
|
-
children: [
|
|
132
|
-
e === "owned" && /* @__PURE__ */ m(n, { className: "w-3 h-3 mr-1" }),
|
|
133
|
-
e === "moderated" && /* @__PURE__ */ m(u, { className: "w-3 h-3 mr-1" }),
|
|
134
|
-
e === "member" && /* @__PURE__ */ m(p, { className: "w-3 h-3 mr-1" }),
|
|
135
|
-
M[e]
|
|
136
|
-
]
|
|
137
|
-
}, e))
|
|
138
|
-
})]
|
|
139
|
-
}),
|
|
140
|
-
/* @__PURE__ */ m("div", {
|
|
141
|
-
className: "grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-6",
|
|
142
|
-
children: j.map((e) => {
|
|
143
|
-
let t = w(e.type);
|
|
144
|
-
return /* @__PURE__ */ h(v, {
|
|
145
|
-
className: "hover:shadow-lg transition-shadow",
|
|
146
|
-
children: [/* @__PURE__ */ m(x, {
|
|
147
|
-
className: "pb-3",
|
|
148
|
-
children: /* @__PURE__ */ h("div", {
|
|
149
|
-
className: "flex items-start justify-between",
|
|
150
|
-
children: [/* @__PURE__ */ h("div", {
|
|
151
|
-
className: "flex items-center space-x-3",
|
|
152
|
-
children: [/* @__PURE__ */ m("div", {
|
|
153
|
-
className: "w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center text-lg font-bold text-primary",
|
|
154
|
-
children: e.name.charAt(0)
|
|
155
|
-
}), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m(S, {
|
|
156
|
-
className: "text-lg",
|
|
157
|
-
children: e.name
|
|
158
|
-
}), /* @__PURE__ */ h("div", {
|
|
159
|
-
className: "flex items-center space-x-2 mt-1",
|
|
160
|
-
children: [/* @__PURE__ */ m(g, {
|
|
161
|
-
variant: "secondary",
|
|
162
|
-
className: "text-xs",
|
|
163
|
-
children: e.category
|
|
164
|
-
}), /* @__PURE__ */ m("div", {
|
|
165
|
-
className: `p-1 rounded-full ${T(e.type)}`,
|
|
166
|
-
children: /* @__PURE__ */ m(t, { className: "h-3 w-3" })
|
|
167
|
-
})]
|
|
168
|
-
})] })]
|
|
169
|
-
}), /* @__PURE__ */ h("div", {
|
|
170
|
-
className: "flex items-center space-x-2",
|
|
171
|
-
children: [
|
|
172
|
-
e.isOwner && /* @__PURE__ */ m(n, { className: "h-4 w-4 text-amber-500" }),
|
|
173
|
-
e.isModerator && /* @__PURE__ */ m(u, { className: "h-4 w-4 text-blue-600" }),
|
|
174
|
-
/* @__PURE__ */ m(_, {
|
|
175
|
-
variant: "ghost",
|
|
176
|
-
size: "sm",
|
|
177
|
-
children: /* @__PURE__ */ m(s, { className: "h-4 w-4" })
|
|
178
|
-
})
|
|
179
|
-
]
|
|
180
|
-
})]
|
|
181
|
-
})
|
|
182
|
-
}), /* @__PURE__ */ h(y, { children: [
|
|
183
|
-
/* @__PURE__ */ m(b, {
|
|
184
|
-
className: "text-sm mb-4 line-clamp-2",
|
|
185
|
-
children: e.description
|
|
186
|
-
}),
|
|
187
|
-
/* @__PURE__ */ h("div", {
|
|
188
|
-
className: "grid grid-cols-2 gap-3 mb-4",
|
|
189
|
-
children: [
|
|
190
|
-
/* @__PURE__ */ h("div", {
|
|
191
|
-
className: "flex items-center space-x-2 text-sm text-muted-foreground",
|
|
192
|
-
children: [/* @__PURE__ */ m(p, { className: "h-4 w-4" }), /* @__PURE__ */ m("span", { children: e.memberCount.toLocaleString() })]
|
|
193
|
-
}),
|
|
194
|
-
/* @__PURE__ */ h("div", {
|
|
195
|
-
className: "flex items-center space-x-2 text-sm text-muted-foreground",
|
|
196
|
-
children: [/* @__PURE__ */ m(r, { className: "h-4 w-4" }), /* @__PURE__ */ h("span", { children: [
|
|
197
|
-
e.stats.onlineMembers,
|
|
198
|
-
" ",
|
|
199
|
-
i("comradecircle.communities.community.online", { defaultValue: "online" })
|
|
200
|
-
] })]
|
|
201
|
-
}),
|
|
202
|
-
/* @__PURE__ */ h("div", {
|
|
203
|
-
className: "flex items-center space-x-2 text-sm text-muted-foreground",
|
|
204
|
-
children: [/* @__PURE__ */ m(o, { className: "h-4 w-4" }), /* @__PURE__ */ m("span", { children: e.stats.totalMessages.toLocaleString() })]
|
|
205
|
-
}),
|
|
206
|
-
/* @__PURE__ */ h("div", {
|
|
207
|
-
className: "flex items-center space-x-2 text-sm text-muted-foreground",
|
|
208
|
-
children: [/* @__PURE__ */ m(d, { className: "h-4 w-4" }), /* @__PURE__ */ h("span", { children: [
|
|
209
|
-
"+",
|
|
210
|
-
e.stats.weeklyGrowth,
|
|
211
|
-
"%",
|
|
212
|
-
" ",
|
|
213
|
-
i("comradecircle.communities.community.week", { defaultValue: "week" })
|
|
214
|
-
] })]
|
|
215
|
-
})
|
|
216
|
-
]
|
|
217
|
-
}),
|
|
218
|
-
/* @__PURE__ */ h("div", {
|
|
219
|
-
className: "flex flex-wrap gap-1 mb-4",
|
|
220
|
-
children: [e.features.slice(0, 3).map((e) => /* @__PURE__ */ m(g, {
|
|
221
|
-
variant: "outline",
|
|
222
|
-
className: "text-xs",
|
|
223
|
-
children: e
|
|
224
|
-
}, e)), e.features.length > 3 && /* @__PURE__ */ h(g, {
|
|
225
|
-
variant: "outline",
|
|
226
|
-
className: "text-xs",
|
|
227
|
-
children: [
|
|
228
|
-
"+",
|
|
229
|
-
e.features.length - 3,
|
|
230
|
-
" ",
|
|
231
|
-
i("comradecircle.communities.community.more", { defaultValue: "more" })
|
|
232
|
-
]
|
|
233
|
-
})]
|
|
234
|
-
}),
|
|
235
|
-
/* @__PURE__ */ h("div", {
|
|
236
|
-
className: "flex items-center justify-between",
|
|
237
|
-
children: [/* @__PURE__ */ h("div", {
|
|
238
|
-
className: "flex items-center space-x-2",
|
|
239
|
-
children: [e.price && /* @__PURE__ */ m(g, {
|
|
240
|
-
className: "text-xs",
|
|
241
|
-
children: e.price
|
|
242
|
-
}), e.unreadMessages && /* @__PURE__ */ h(g, {
|
|
243
|
-
variant: "destructive",
|
|
244
|
-
className: "text-xs",
|
|
245
|
-
children: [
|
|
246
|
-
e.unreadMessages,
|
|
247
|
-
" ",
|
|
248
|
-
i("comradecircle.communities.community.new", { defaultValue: "new" })
|
|
249
|
-
]
|
|
250
|
-
})]
|
|
251
|
-
}), /* @__PURE__ */ h("div", {
|
|
252
|
-
className: "flex space-x-2",
|
|
253
|
-
children: [/* @__PURE__ */ h(_, {
|
|
254
|
-
size: "sm",
|
|
255
|
-
variant: "outline",
|
|
256
|
-
children: [/* @__PURE__ */ m(o, { className: "h-3 w-3 mr-1" }), i("comradecircle.communities.actions.chat", { defaultValue: "Chat" })]
|
|
257
|
-
}), /* @__PURE__ */ m(_, {
|
|
258
|
-
size: "sm",
|
|
259
|
-
children: e.isOwner ? i("comradecircle.communities.actions.manage", { defaultValue: "Manage" }) : i("comradecircle.communities.actions.join", { defaultValue: "Join" })
|
|
260
|
-
})]
|
|
261
|
-
})]
|
|
262
|
-
}),
|
|
263
|
-
/* @__PURE__ */ m("div", {
|
|
264
|
-
className: "mt-3 pt-3 border-t border-border",
|
|
265
|
-
children: /* @__PURE__ */ h("p", {
|
|
266
|
-
className: "text-xs text-muted-foreground",
|
|
267
|
-
children: [
|
|
268
|
-
i("comradecircle.communities.community.lastActivity", { defaultValue: "Last activity:" }),
|
|
269
|
-
" ",
|
|
270
|
-
e.lastActivity
|
|
271
|
-
]
|
|
272
|
-
})
|
|
273
|
-
})
|
|
274
|
-
] })]
|
|
275
|
-
}, e.id);
|
|
276
|
-
})
|
|
277
|
-
}),
|
|
278
|
-
j.length === 0 && /* @__PURE__ */ h("div", {
|
|
279
|
-
className: "text-center py-12",
|
|
280
|
-
children: [
|
|
281
|
-
/* @__PURE__ */ m(p, { className: "h-12 w-12 text-muted-foreground mx-auto mb-4" }),
|
|
282
|
-
/* @__PURE__ */ m("h3", {
|
|
283
|
-
className: "text-lg font-semibold mb-2",
|
|
284
|
-
children: i("comradecircle.communities.empty.title", { defaultValue: "No communities found" })
|
|
285
|
-
}),
|
|
286
|
-
/* @__PURE__ */ m("p", {
|
|
287
|
-
className: "text-muted-foreground mb-4",
|
|
288
|
-
children: O ? `${i("comradecircle.communities.empty.noMatchPrefix", { defaultValue: "No communities match" })} "${O}"` : i("comradecircle.communities.empty.noFilter", { defaultValue: "No communities in this filter" })
|
|
289
|
-
}),
|
|
290
|
-
/* @__PURE__ */ h(_, { children: [/* @__PURE__ */ m(c, { className: "w-4 h-4 mr-2" }), i("comradecircle.communities.empty.createFirst", { defaultValue: "Create Your First Community" })] })
|
|
291
|
-
]
|
|
292
|
-
})
|
|
293
|
-
]
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
//#endregion
|
|
297
|
-
export { E as CommunitiesPage };
|
|
298
|
-
|
|
299
|
-
//# sourceMappingURL=CommunitiesPage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommunitiesPage.js","names":[],"sources":["../../../src/comradecircle/pages/CommunitiesPage.tsx"],"sourcesContent":["import {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Badge,\n Button,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport {\n Plus,\n Users,\n MessageCircle,\n Crown,\n TrendingUp,\n Shield,\n Globe,\n Lock,\n MoreVertical,\n UserPlus,\n Eye,\n Search,\n} from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useComradeCircleStore } from '../store/comradecircleStore';\nimport type { CommunityType } from '../types';\n\nfunction getTypeIcon(type: CommunityType) {\n switch (type) {\n case 'private':\n return Lock;\n case 'premium':\n return Crown;\n default:\n return Globe;\n }\n}\n\nfunction getTypeColor(type: CommunityType) {\n switch (type) {\n case 'private':\n return 'bg-red-500/10 text-red-600';\n case 'premium':\n return 'bg-amber-500/10 text-amber-600';\n default:\n return 'bg-emerald-500/10 text-emerald-600';\n }\n}\n\nexport function CommunitiesPage() {\n const { t } = useI18n();\n const {\n communities,\n communityStats,\n communityFilter,\n communitySearchQuery,\n setCommunityFilter,\n setCommunitySearchQuery,\n } = useComradeCircleStore();\n\n const filteredCommunities = communities.filter((community) => {\n if (\n communitySearchQuery &&\n !community.name.toLowerCase().includes(communitySearchQuery.toLowerCase()) &&\n !community.description.toLowerCase().includes(communitySearchQuery.toLowerCase())\n ) {\n return false;\n }\n switch (communityFilter) {\n case 'owned':\n return community.isOwner;\n case 'moderated':\n return community.isModerator;\n case 'member':\n return community.isMember && !community.isOwner && !community.isModerator;\n default:\n return true;\n }\n });\n\n const filterLabelByValue = {\n all: t('comradecircle.communities.filters.all', { defaultValue: 'All' }),\n owned: t('comradecircle.communities.filters.owned', { defaultValue: 'Owned' }),\n moderated: t('comradecircle.communities.filters.moderated', { defaultValue: 'Moderated' }),\n member: t('comradecircle.communities.filters.member', { defaultValue: 'Member' }),\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n {/* Header */}\n <div className=\"flex flex-col sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h1 className=\"text-3xl font-bold\">\n {t('comradecircle.communities.title', { defaultValue: 'Communities' })}\n </h1>\n <p className=\"text-muted-foreground mt-1\">\n {t('comradecircle.communities.subtitle', {\n defaultValue: 'Manage and discover communities that match your interests',\n })}\n </p>\n </div>\n <Button>\n <Plus className=\"w-4 h-4 mr-2\" />\n {t('comradecircle.communities.actions.createCommunity', {\n defaultValue: 'Create Community',\n })}\n </Button>\n </div>\n\n {/* Stats Cards */}\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-muted-foreground\">\n {t('comradecircle.communities.stats.totalCommunities', {\n defaultValue: 'Total Communities',\n })}\n </p>\n <p className=\"text-2xl font-bold\">{communityStats.totalCommunities}</p>\n </div>\n <Users className=\"h-8 w-8 text-blue-600\" />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-muted-foreground\">\n {t('comradecircle.communities.stats.communitiesOwned', {\n defaultValue: 'Communities Owned',\n })}\n </p>\n <p className=\"text-2xl font-bold\">{communityStats.ownedCommunities}</p>\n </div>\n <Crown className=\"h-8 w-8 text-amber-500\" />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-muted-foreground\">\n {t('comradecircle.communities.stats.totalMembers', {\n defaultValue: 'Total Members',\n })}\n </p>\n <p className=\"text-2xl font-bold\">{communityStats.totalMembers.toLocaleString()}</p>\n </div>\n <UserPlus className=\"h-8 w-8 text-emerald-600\" />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-muted-foreground\">\n {t('comradecircle.communities.stats.weeklyGrowth', {\n defaultValue: 'Weekly Growth',\n })}\n </p>\n <p className=\"text-2xl font-bold\">+{communityStats.weeklyGrowth}%</p>\n </div>\n <TrendingUp className=\"h-8 w-8 text-violet-600\" />\n </div>\n </CardContent>\n </Card>\n </div>\n\n {/* Search and Filters */}\n <div className=\"flex flex-col sm:flex-row gap-4\">\n <div className=\"flex-1 relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder={t('comradecircle.communities.search.placeholder', {\n defaultValue: 'Search communities...',\n })}\n className=\"pl-10\"\n value={communitySearchQuery}\n onChange={(e) => setCommunitySearchQuery(e.target.value)}\n />\n </div>\n <div className=\"flex items-center space-x-2\">\n {(['all', 'owned', 'moderated', 'member'] as const).map((f) => (\n <Button\n key={f}\n variant={communityFilter === f ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setCommunityFilter(f)}\n >\n {f === 'owned' && <Crown className=\"w-3 h-3 mr-1\" />}\n {f === 'moderated' && <Shield className=\"w-3 h-3 mr-1\" />}\n {f === 'member' && <Users className=\"w-3 h-3 mr-1\" />}\n {filterLabelByValue[f]}\n </Button>\n ))}\n </div>\n </div>\n\n {/* Communities Grid */}\n <div className=\"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-6\">\n {filteredCommunities.map((community) => {\n const TypeIcon = getTypeIcon(community.type);\n return (\n <Card key={community.id} className=\"hover:shadow-lg transition-shadow\">\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-start justify-between\">\n <div className=\"flex items-center space-x-3\">\n <div className=\"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center text-lg font-bold text-primary\">\n {community.name.charAt(0)}\n </div>\n <div>\n <CardTitle className=\"text-lg\">{community.name}</CardTitle>\n <div className=\"flex items-center space-x-2 mt-1\">\n <Badge variant=\"secondary\" className=\"text-xs\">\n {community.category}\n </Badge>\n <div className={`p-1 rounded-full ${getTypeColor(community.type)}`}>\n <TypeIcon className=\"h-3 w-3\" />\n </div>\n </div>\n </div>\n </div>\n <div className=\"flex items-center space-x-2\">\n {community.isOwner && <Crown className=\"h-4 w-4 text-amber-500\" />}\n {community.isModerator && <Shield className=\"h-4 w-4 text-blue-600\" />}\n <Button variant=\"ghost\" size=\"sm\">\n <MoreVertical className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n </CardHeader>\n\n <CardContent>\n <CardDescription className=\"text-sm mb-4 line-clamp-2\">\n {community.description}\n </CardDescription>\n\n {/* Community Stats */}\n <div className=\"grid grid-cols-2 gap-3 mb-4\">\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground\">\n <Users className=\"h-4 w-4\" />\n <span>{community.memberCount.toLocaleString()}</span>\n </div>\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground\">\n <Eye className=\"h-4 w-4\" />\n <span>\n {community.stats.onlineMembers}{' '}\n {t('comradecircle.communities.community.online', { defaultValue: 'online' })}\n </span>\n </div>\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground\">\n <MessageCircle className=\"h-4 w-4\" />\n <span>{community.stats.totalMessages.toLocaleString()}</span>\n </div>\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground\">\n <TrendingUp className=\"h-4 w-4\" />\n <span>\n +{community.stats.weeklyGrowth}%{' '}\n {t('comradecircle.communities.community.week', { defaultValue: 'week' })}\n </span>\n </div>\n </div>\n\n {/* Features */}\n <div className=\"flex flex-wrap gap-1 mb-4\">\n {community.features.slice(0, 3).map((feature) => (\n <Badge key={feature} variant=\"outline\" className=\"text-xs\">\n {feature}\n </Badge>\n ))}\n {community.features.length > 3 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n +{community.features.length - 3}{' '}\n {t('comradecircle.communities.community.more', { defaultValue: 'more' })}\n </Badge>\n )}\n </div>\n\n {/* Actions */}\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center space-x-2\">\n {community.price && <Badge className=\"text-xs\">{community.price}</Badge>}\n {community.unreadMessages && (\n <Badge variant=\"destructive\" className=\"text-xs\">\n {community.unreadMessages}{' '}\n {t('comradecircle.communities.community.new', { defaultValue: 'new' })}\n </Badge>\n )}\n </div>\n <div className=\"flex space-x-2\">\n <Button size=\"sm\" variant=\"outline\">\n <MessageCircle className=\"h-3 w-3 mr-1\" />\n {t('comradecircle.communities.actions.chat', { defaultValue: 'Chat' })}\n </Button>\n <Button size=\"sm\">\n {community.isOwner\n ? t('comradecircle.communities.actions.manage', { defaultValue: 'Manage' })\n : t('comradecircle.communities.actions.join', { defaultValue: 'Join' })}\n </Button>\n </div>\n </div>\n\n <div className=\"mt-3 pt-3 border-t border-border\">\n <p className=\"text-xs text-muted-foreground\">\n {t('comradecircle.communities.community.lastActivity', {\n defaultValue: 'Last activity:',\n })}{' '}\n {community.lastActivity}\n </p>\n </div>\n </CardContent>\n </Card>\n );\n })}\n </div>\n\n {/* Empty State */}\n {filteredCommunities.length === 0 && (\n <div className=\"text-center py-12\">\n <Users className=\"h-12 w-12 text-muted-foreground mx-auto mb-4\" />\n <h3 className=\"text-lg font-semibold mb-2\">\n {t('comradecircle.communities.empty.title', { defaultValue: 'No communities found' })}\n </h3>\n <p className=\"text-muted-foreground mb-4\">\n {communitySearchQuery\n ? `${t('comradecircle.communities.empty.noMatchPrefix', {\n defaultValue: 'No communities match',\n })} \"${communitySearchQuery}\"`\n : t('comradecircle.communities.empty.noFilter', {\n defaultValue: 'No communities in this filter',\n })}\n </p>\n <Button>\n <Plus className=\"w-4 h-4 mr-2\" />\n {t('comradecircle.communities.empty.createFirst', {\n defaultValue: 'Create Your First Community',\n })}\n </Button>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|