@syra.fm/sdk 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,7 @@ var _jsxRuntime = require("react/jsx-runtime");
16
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
17
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
18
  // --- Utility helpers ---
19
+
19
20
  function formatCompact(num) {
20
21
  if (num >= 1_000_000) return `${(num / 1_000_000).toFixed(1).replace(/\.0$/, '')}M`;
21
22
  if (num >= 1_000) return `${(num / 1_000).toFixed(1).replace(/\.0$/, '')}k`;
@@ -29,36 +30,86 @@ function formatDuration(startedAt, endedAt) {
29
30
  const m = totalMin % 60;
30
31
  return m > 0 ? `${h}h ${m}m` : `${h}h`;
31
32
  }
32
- const MONTH_SHORT = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
33
- function formatDate(dateStr) {
34
- const d = new Date(dateStr);
35
- return `${d.getDate()} ${MONTH_SHORT[d.getMonth()]} ${d.getFullYear()}`;
33
+ const DAY_MS = 86_400_000;
34
+ function startOfDay(date) {
35
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();
36
36
  }
37
- function getTimeLabel(room) {
38
- if (room.status === 'ended' && room.startedAt && room.endedAt) {
39
- return `${formatDuration(room.startedAt, room.endedAt)} · ${formatDate(room.endedAt)}`;
40
- }
41
- if (room.status === 'live' && room.startedAt) {
42
- return `Live · Started ${formatDate(room.startedAt)}`;
43
- }
37
+
38
+ /** `Today` / `Tomorrow` / `Yesterday`, else a locale short date (year only when it differs). */
39
+ function formatDay(date, now) {
40
+ const dayDelta = Math.round((startOfDay(date) - startOfDay(now)) / DAY_MS);
41
+ if (dayDelta === 0) return 'Today';
42
+ if (dayDelta === 1) return 'Tomorrow';
43
+ if (dayDelta === -1) return 'Yesterday';
44
+ const options = {
45
+ day: 'numeric',
46
+ month: 'short'
47
+ };
48
+ if (date.getFullYear() !== now.getFullYear()) options.year = 'numeric';
49
+ return date.toLocaleDateString(undefined, options);
50
+ }
51
+ function formatTime(date) {
52
+ return date.toLocaleTimeString(undefined, {
53
+ hour: 'numeric',
54
+ minute: '2-digit'
55
+ });
56
+ }
57
+
58
+ /**
59
+ * The when-label for a room that is NOT live: the start time for a scheduled room
60
+ * (`Tomorrow 18:00`), the day + duration for an ended one (`Yesterday · 45 min`).
61
+ * A live room never uses this — its lead metric is the listener count.
62
+ */
63
+ function getScheduleLabel(room, now) {
44
64
  if (room.status === 'scheduled' && room.scheduledStart) {
45
- return formatDate(room.scheduledStart);
65
+ const start = new Date(room.scheduledStart);
66
+ return `${formatDay(start, now)} ${formatTime(start)}`;
67
+ }
68
+ if (room.status === 'ended' && room.endedAt) {
69
+ const day = formatDay(new Date(room.endedAt), now);
70
+ return room.startedAt ? `${day} · ${formatDuration(room.startedAt, room.endedAt)}` : day;
46
71
  }
47
72
  if (room.createdAt) {
48
- return formatDate(room.createdAt);
73
+ return formatDay(new Date(room.createdAt), now);
49
74
  }
50
75
  return '';
51
76
  }
52
77
 
53
78
  // --- Constants ---
54
79
 
55
- const MAX_SPEAKER_AVATARS = 4;
80
+ const MAX_SPEAKER_AVATARS = 3;
56
81
  const SPEAKER_AVATAR_SIZE = 44;
82
+ const ROW_AVATAR_SIZE = 40;
83
+ const BYLINE_AVATAR_SIZE = 20;
84
+ const ACTION_HIT_SLOP = {
85
+ top: 8,
86
+ bottom: 8,
87
+ left: 8,
88
+ right: 8
89
+ };
57
90
 
58
91
  // --- Types ---
59
92
 
60
93
  // --- Component ---
61
94
 
95
+ /**
96
+ * A room in a list. The `default` variant renders ONE of two presentations,
97
+ * selected by `room.status`, because a live room and a listing of one are
98
+ * different objects:
99
+ *
100
+ * - **live** → a featured card: the LIVE chip + the listener count (the only
101
+ * number that matters while a room is on air), the speaker faces, the host,
102
+ * and an explicit Join CTA.
103
+ * - **scheduled / ended** → a flush full-width row: host avatar, title + when,
104
+ * byline, and one subtle right-side action. No card chrome, no CTA — there is
105
+ * nothing to join yet (or ever again).
106
+ *
107
+ * At most ONE status chip is ever shown (a live room is not a scheduled one, and
108
+ * the date already says "scheduled"); the room type carries no badge at all.
109
+ *
110
+ * The `compact` variant is the small fixed-width card used by post attachments
111
+ * and the composer preview, and follows the same rules in miniature.
112
+ */
62
113
  const RoomCard = ({
63
114
  room,
64
115
  onPress,
@@ -85,6 +136,7 @@ const RoomCard = ({
85
136
  const isLive = room.status === 'live';
86
137
  const isScheduled = room.status === 'scheduled';
87
138
  const isCompact = variant === 'compact';
139
+ const isFeatured = isLive && !isCompact;
88
140
 
89
141
  // Resolve host display: an explicit prop wins, then the @handle, then the
90
142
  // canonical API-owned `name.displayName` from the Oxy user DTO (never a
@@ -93,16 +145,17 @@ const RoomCard = ({
93
145
  const hostName = hostNameProp ?? (hostProfile?.username ? `@${hostProfile.username}` : (typeof hostProfileName === 'object' ? hostProfileName?.displayName : null) || room.host?.slice(0, 10) || 'Unknown');
94
146
  const hostAvatarUri = hostAvatarUriProp ?? (0, _useRoomUsers.getAvatarUrl)(hostProfile, oxyServices, getCachedFileDownloadUrlSync);
95
147
 
96
- // Resolve speaker avatars (default variant only)
148
+ // Speaker faces only earn their space on the featured (live) card.
97
149
  const speakerIds = (0, _react.useMemo)(() => {
98
- if (isCompact) return [];
150
+ if (!isFeatured) return [];
99
151
  const ids = room.speakers?.length ? room.speakers : [room.host];
100
152
  return ids.slice(0, MAX_SPEAKER_AVATARS);
101
- }, [room.speakers, room.host, isCompact]);
153
+ }, [isFeatured, room.speakers, room.host]);
154
+ const hiddenSpeakerCount = Math.max(0, (room.speakers?.length ?? 0) - speakerIds.length);
102
155
  (0, _useRoomUsers.useRoomUsers)(speakerIds);
103
- const typeMeta = (0, _colors.getRoomTypeMeta)(room.type);
104
156
  const listenerCount = room.participants?.length || room.stats?.totalJoined || 0;
105
- const timeLabel = getTimeLabel(room);
157
+ const scheduleLabel = isLive ? '' : getScheduleLabel(room, new Date());
158
+ const byline = house ? `by ${hostName} · ${house.name}` : `by ${hostName}`;
106
159
 
107
160
  // --- Compact variant (post attachments, composer preview) ---
108
161
  // It lives inside HORIZONTAL carousels, where a percentage width has no parent
@@ -118,125 +171,140 @@ const RoomCard = ({
118
171
  disabled: !onPress,
119
172
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
120
173
  className: "flex-1",
121
- children: [house && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
122
- className: "mb-1 text-[9px] font-bold tracking-[0.5px] text-muted-foreground",
123
- numberOfLines: 1,
124
- children: house.name.toUpperCase()
174
+ children: [isLive && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
175
+ className: "mb-1.5 flex-row",
176
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(LiveBadge, {})
125
177
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
126
178
  className: "text-sm font-semibold leading-[18px] text-foreground",
127
179
  numberOfLines: 2,
128
180
  children: room.title
129
- }), (isLive || isScheduled || typeMeta) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
130
- className: "mt-1 flex-row flex-wrap gap-1",
131
- children: [isLive && /*#__PURE__*/(0, _jsxRuntime.jsx)(LiveBadge, {}), isScheduled && /*#__PURE__*/(0, _jsxRuntime.jsx)(ScheduledBadge, {
132
- iconSize: 10,
133
- iconColor: theme.colors.textSecondary
134
- }), typeMeta && /*#__PURE__*/(0, _jsxRuntime.jsx)(TypeBadge, {
135
- meta: typeMeta
136
- })]
137
181
  })]
138
182
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
139
- className: "mt-2 flex-row items-center gap-1",
140
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
141
- name: "account-group",
142
- size: 14,
143
- color: theme.colors.textSecondary
144
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
145
- className: "text-[11px] text-muted-foreground",
146
- children: [listenerCount, " listening"]
183
+ className: "mt-2 gap-1",
184
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
185
+ className: "flex-row items-center gap-1",
186
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AvatarComponent, {
187
+ size: 14,
188
+ source: hostAvatarUri,
189
+ shape: "squircle"
190
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
191
+ className: "flex-1 text-[11px] text-muted-foreground",
192
+ numberOfLines: 1,
193
+ children: byline
194
+ })]
147
195
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
148
- className: "text-[10px] text-muted-foreground",
149
- children: "\u2022"
150
- }), hostAvatarUri && /*#__PURE__*/(0, _jsxRuntime.jsx)(AvatarComponent, {
151
- size: 14,
196
+ className: "text-[11px] text-muted-foreground",
197
+ numberOfLines: 1,
198
+ children: isLive ? `${formatCompact(listenerCount)} listening` : scheduleLabel
199
+ })]
200
+ })]
201
+ });
202
+ }
203
+
204
+ // --- Featured card: a LIVE room, with presence and an explicit CTA ---
205
+ if (isFeatured) {
206
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
207
+ className: "mb-3 w-full gap-2.5 rounded-2xl border border-border bg-surface p-3",
208
+ style: style,
209
+ onPress: onPress,
210
+ activeOpacity: onPress ? 0.7 : 1,
211
+ disabled: !onPress,
212
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
213
+ className: "flex-row items-center gap-1.5",
214
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(LiveBadge, {}), listenerCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
215
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
216
+ className: "text-[13px] text-muted-foreground",
217
+ children: "\xB7"
218
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
219
+ className: "text-[13px] font-semibold text-muted-foreground",
220
+ numberOfLines: 1,
221
+ children: [formatCompact(listenerCount), " listening"]
222
+ })]
223
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
224
+ className: "flex-1"
225
+ }), onSave && /*#__PURE__*/(0, _jsxRuntime.jsx)(SaveAction, {
226
+ onSave: onSave,
227
+ isSaved: isSaved,
228
+ isScheduled: false,
229
+ theme: theme
230
+ }), onMenuPress && /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuAction, {
231
+ onMenuPress: onMenuPress,
232
+ theme: theme
233
+ })]
234
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
235
+ className: "text-[17px] font-bold leading-[22px] text-foreground",
236
+ numberOfLines: 2,
237
+ children: room.title
238
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(SpeakerStack, {
239
+ speakerIds: speakerIds,
240
+ hiddenCount: hiddenSpeakerCount
241
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
242
+ className: "flex-row items-center gap-2",
243
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AvatarComponent, {
244
+ size: BYLINE_AVATAR_SIZE,
152
245
  source: hostAvatarUri,
153
- shape: "squircle",
154
- style: {
155
- marginRight: 2
156
- }
246
+ shape: "squircle"
157
247
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
158
- className: "flex-1 text-[11px] text-muted-foreground",
248
+ className: "flex-1 text-[13px] text-muted-foreground",
159
249
  numberOfLines: 1,
160
- children: hostName
250
+ children: byline
251
+ }), onPress && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
252
+ className: "rounded-full px-4 py-1.5",
253
+ style: {
254
+ backgroundColor: _colors.LIVE_COLOR
255
+ },
256
+ onPress: onPress,
257
+ accessibilityRole: "button",
258
+ accessibilityLabel: "Join room",
259
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
260
+ className: "text-[13px] font-bold",
261
+ style: {
262
+ color: _colors.LIVE_FOREGROUND_COLOR
263
+ },
264
+ children: "Join"
265
+ })
161
266
  })]
162
267
  })]
163
268
  });
164
269
  }
165
270
 
166
- // --- Default variant: a full-width, flush feed row (hairline divider, no card chrome) ---
271
+ // --- Compact row: a SCHEDULED or ENDED room, flush in the feed ---
167
272
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
168
- className: "w-full gap-2 border-b border-border px-3 py-3",
273
+ className: "w-full flex-row items-center gap-3 border-b border-border px-3 py-3",
169
274
  style: style,
170
275
  onPress: onPress,
171
276
  activeOpacity: onPress ? 0.7 : 1,
172
277
  disabled: !onPress,
173
- children: [(house || onMenuPress) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
174
- className: "flex-row items-center gap-1.5",
175
- children: [house && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
176
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
177
- name: "home",
178
- size: 14,
179
- color: theme.colors.primary
180
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
181
- className: "text-[11px] font-bold tracking-[0.5px] text-muted-foreground",
182
- numberOfLines: 1,
183
- children: house.name.toUpperCase()
184
- })]
185
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
186
- className: "flex-1"
187
- }), onMenuPress && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
188
- onPress: onMenuPress,
189
- hitSlop: {
190
- top: 8,
191
- bottom: 8,
192
- left: 8,
193
- right: 8
194
- },
195
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
196
- name: "dots-horizontal",
197
- size: 20,
198
- color: theme.colors.textSecondary
199
- })
200
- })]
278
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AvatarComponent, {
279
+ size: ROW_AVATAR_SIZE,
280
+ source: hostAvatarUri,
281
+ shape: "squircle"
201
282
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
202
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
203
- className: "text-[17px] font-bold leading-[22px] text-foreground",
204
- numberOfLines: 2,
205
- children: room.title
206
- }), (isLive || isScheduled || typeMeta) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
207
- className: "mt-1.5 flex-row flex-wrap items-center gap-1.5",
208
- children: [isLive && /*#__PURE__*/(0, _jsxRuntime.jsx)(LiveBadge, {}), isScheduled && /*#__PURE__*/(0, _jsxRuntime.jsx)(ScheduledBadge, {
209
- iconColor: theme.colors.textSecondary
210
- }), typeMeta && /*#__PURE__*/(0, _jsxRuntime.jsx)(TypeBadge, {
211
- meta: typeMeta
283
+ className: "flex-1 gap-0.5",
284
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
285
+ className: "flex-row items-baseline gap-1.5",
286
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
287
+ className: "shrink text-[15px] font-semibold text-foreground",
288
+ numberOfLines: 1,
289
+ children: room.title
290
+ }), scheduleLabel !== '' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
291
+ className: "shrink-0 text-[13px] text-muted-foreground",
292
+ numberOfLines: 1,
293
+ children: ["\xB7 ", scheduleLabel]
212
294
  })]
213
- })]
214
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(SpeakerRow, {
215
- speakerIds: speakerIds,
216
- listenerCount: listenerCount
217
- }), (timeLabel || onSave) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
218
- className: "flex-row items-center justify-between",
219
- children: [timeLabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
295
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
220
296
  className: "text-[13px] text-muted-foreground",
221
- children: timeLabel
222
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {}), onSave && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
223
- className: "flex-row items-center gap-1",
224
- onPress: onSave,
225
- hitSlop: {
226
- top: 8,
227
- bottom: 8,
228
- left: 8,
229
- right: 8
230
- },
231
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
232
- name: isSaved ? 'bookmark' : 'bookmark-outline',
233
- size: 18,
234
- color: isSaved ? theme.colors.primary : theme.colors.textSecondary
235
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
236
- className: isSaved ? 'text-[13px] font-medium text-primary' : 'text-[13px] font-medium text-muted-foreground',
237
- children: "Save"
238
- })]
297
+ numberOfLines: 1,
298
+ children: byline
239
299
  })]
300
+ }), onSave && /*#__PURE__*/(0, _jsxRuntime.jsx)(SaveAction, {
301
+ onSave: onSave,
302
+ isSaved: isSaved,
303
+ isScheduled: isScheduled,
304
+ theme: theme
305
+ }), onMenuPress && /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuAction, {
306
+ onMenuPress: onMenuPress,
307
+ theme: theme
240
308
  })]
241
309
  });
242
310
  };
@@ -262,63 +330,76 @@ function LiveBadge() {
262
330
  })]
263
331
  });
264
332
  }
265
- function ScheduledBadge({
266
- iconSize = 12,
267
- iconColor
333
+
334
+ // --- Actions (icon-only, like the surrounding feed) ---
335
+
336
+ /**
337
+ * The saved-state toggle. On a SCHEDULED room, saving it is how you ask to be
338
+ * pulled back when it starts, so the icon reads as a reminder bell; anywhere
339
+ * else it is a bookmark.
340
+ */
341
+ function SaveAction({
342
+ onSave,
343
+ isSaved,
344
+ isScheduled,
345
+ theme
268
346
  }) {
269
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
270
- className: "flex-row items-center gap-1 rounded-[4px] bg-muted px-2 py-1",
271
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
272
- name: "calendar",
273
- size: iconSize,
274
- color: iconColor
275
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
276
- className: "text-[10px] font-bold text-muted-foreground",
277
- children: "SCHEDULED"
278
- })]
347
+ const icon = isScheduled ? isSaved ? 'bell' : 'bell-outline' : isSaved ? 'bookmark' : 'bookmark-outline';
348
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
349
+ onPress: onSave,
350
+ hitSlop: ACTION_HIT_SLOP,
351
+ accessibilityRole: "button",
352
+ accessibilityLabel: isScheduled ? 'Remind me about this room' : 'Save room',
353
+ accessibilityState: {
354
+ selected: Boolean(isSaved)
355
+ },
356
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
357
+ name: icon,
358
+ size: 20,
359
+ color: isSaved ? theme.colors.primary : theme.colors.textSecondary
360
+ })
279
361
  });
280
362
  }
281
- function TypeBadge({
282
- meta
363
+ function MenuAction({
364
+ onMenuPress,
365
+ theme
283
366
  }) {
284
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
285
- className: "flex-row items-center gap-0.5 rounded-[4px] px-1.5 py-0.5",
286
- style: {
287
- backgroundColor: meta.tintColor
288
- },
289
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
290
- name: meta.icon,
291
- size: 10,
292
- color: meta.color
293
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
294
- className: "text-[9px] font-bold",
295
- style: {
296
- color: meta.color
297
- },
298
- children: meta.label
299
- })]
367
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
368
+ onPress: onMenuPress,
369
+ hitSlop: ACTION_HIT_SLOP,
370
+ accessibilityRole: "button",
371
+ accessibilityLabel: "Room options",
372
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
373
+ name: "dots-horizontal",
374
+ size: 20,
375
+ color: theme.colors.textSecondary
376
+ })
300
377
  });
301
378
  }
302
379
 
303
- // --- Speaker row sub-component ---
380
+ // --- Speaker stack (featured card only) ---
304
381
 
305
- function SpeakerRow({
382
+ function SpeakerStack({
306
383
  speakerIds,
307
- listenerCount
384
+ hiddenCount
308
385
  }) {
386
+ if (speakerIds.length === 0) return null;
309
387
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
310
- className: "flex-row items-center gap-2",
311
- children: [speakerIds.map(id => /*#__PURE__*/(0, _jsxRuntime.jsx)(SpeakerAvatar, {
312
- userId: id
313
- }, id)), listenerCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
314
- className: "items-center justify-center rounded-[14px] border-2 border-border bg-muted",
388
+ className: "flex-row items-center",
389
+ children: [speakerIds.map((id, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
390
+ className: index === 0 ? '' : '-ml-3',
391
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SpeakerAvatar, {
392
+ userId: id
393
+ })
394
+ }, id)), hiddenCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
395
+ className: "-ml-3 items-center justify-center rounded-full border-2 border-surface bg-muted",
315
396
  style: {
316
- width: SPEAKER_AVATAR_SIZE + 4,
317
- height: SPEAKER_AVATAR_SIZE + 4
397
+ width: SPEAKER_AVATAR_SIZE,
398
+ height: SPEAKER_AVATAR_SIZE
318
399
  },
319
400
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
320
- className: "text-sm font-bold text-muted-foreground",
321
- children: ["+", formatCompact(listenerCount)]
401
+ className: "text-[13px] font-bold text-muted-foreground",
402
+ children: ["+", formatCompact(hiddenCount)]
322
403
  })
323
404
  })]
324
405
  });
@@ -336,8 +417,10 @@ function SpeakerAvatar({
336
417
  } = (0, _services.useAuth)();
337
418
  const profile = useUserById(userId);
338
419
  const avatarUri = (0, _useRoomUsers.getAvatarUrl)(profile, oxyServices, getCachedFileDownloadUrlSync);
420
+
421
+ // The ring is the card's own surface color, so overlapping faces stay separable.
339
422
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
340
- className: "rounded-[14px] border-2 border-border p-0.5",
423
+ className: "rounded-full border-2 border-surface",
341
424
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AvatarComponent, {
342
425
  size: SPEAKER_AVATAR_SIZE,
343
426
  source: avatarUri,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_MaterialCommunityIcons","_interopRequireDefault","_services","_LiveConfigContext","_AnimatedPulse","_useRoomUsers","_colors","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","formatCompact","num","toFixed","replace","String","formatDuration","startedAt","endedAt","ms","Date","getTime","totalMin","Math","round","h","floor","m","MONTH_SHORT","formatDate","dateStr","d","getDate","getMonth","getFullYear","getTimeLabel","room","status","scheduledStart","createdAt","MAX_SPEAKER_AVATARS","SPEAKER_AVATAR_SIZE","RoomCard","onPress","variant","house","hostName","hostNameProp","hostAvatarUri","hostAvatarUriProp","onMenuPress","onSave","isSaved","style","useTheme","useUserById","AvatarComponent","getCachedFileDownloadUrlSync","useLiveConfig","theme","oxyServices","useAuth","hostProfile","host","isLive","isScheduled","isCompact","hostProfileName","name","username","displayName","slice","getAvatarUrl","speakerIds","useMemo","ids","speakers","length","useRoomUsers","typeMeta","getRoomTypeMeta","type","listenerCount","participants","stats","totalJoined","timeLabel","jsxs","TouchableOpacity","className","activeOpacity","disabled","children","View","jsx","Text","numberOfLines","toUpperCase","title","LiveBadge","ScheduledBadge","iconSize","iconColor","colors","textSecondary","TypeBadge","meta","size","color","source","shape","marginRight","Fragment","primary","hitSlop","top","bottom","left","right","SpeakerRow","exports","backgroundColor","LIVE_COLOR","AnimatedPulse","LIVE_FOREGROUND_COLOR","tintColor","icon","label","map","id","SpeakerAvatar","userId","width","height","profile","avatarUri","_default"],"sourceRoot":"../../../../src","sources":["live/components/RoomCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_MaterialCommunityIcons","_interopRequireDefault","_services","_LiveConfigContext","_AnimatedPulse","_useRoomUsers","_colors","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","formatCompact","num","toFixed","replace","String","formatDuration","startedAt","endedAt","ms","Date","getTime","totalMin","Math","round","h","floor","m","DAY_MS","startOfDay","date","getFullYear","getMonth","getDate","formatDay","now","dayDelta","options","day","month","year","toLocaleDateString","undefined","formatTime","toLocaleTimeString","hour","minute","getScheduleLabel","room","status","scheduledStart","start","createdAt","MAX_SPEAKER_AVATARS","SPEAKER_AVATAR_SIZE","ROW_AVATAR_SIZE","BYLINE_AVATAR_SIZE","ACTION_HIT_SLOP","top","bottom","left","right","RoomCard","onPress","variant","house","hostName","hostNameProp","hostAvatarUri","hostAvatarUriProp","onMenuPress","onSave","isSaved","style","useTheme","useUserById","AvatarComponent","getCachedFileDownloadUrlSync","useLiveConfig","theme","oxyServices","useAuth","hostProfile","host","isLive","isScheduled","isCompact","isFeatured","hostProfileName","name","username","displayName","slice","getAvatarUrl","speakerIds","useMemo","ids","speakers","length","hiddenSpeakerCount","max","useRoomUsers","listenerCount","participants","stats","totalJoined","scheduleLabel","byline","jsxs","TouchableOpacity","className","activeOpacity","disabled","children","View","jsx","LiveBadge","Text","numberOfLines","title","size","source","shape","Fragment","SaveAction","MenuAction","SpeakerStack","hiddenCount","backgroundColor","LIVE_COLOR","accessibilityRole","accessibilityLabel","color","LIVE_FOREGROUND_COLOR","exports","AnimatedPulse","icon","hitSlop","accessibilityState","selected","Boolean","colors","primary","textSecondary","map","id","index","SpeakerAvatar","userId","width","height","profile","avatarUri","_default"],"sourceRoot":"../../../../src","sources":["live/components/RoomCard.tsx"],"mappings":"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","ignoreList":[]}