@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.
@@ -7,10 +7,10 @@ import { useAuth } from '@oxyhq/services';
7
7
  import { useLiveConfig } from "../context/LiveConfigContext.js";
8
8
  import { AnimatedPulse } from "./AnimatedPulse.js";
9
9
  import { useRoomUsers, getAvatarUrl } from "../hooks/useRoomUsers.js";
10
- import { LIVE_COLOR, LIVE_FOREGROUND_COLOR, getRoomTypeMeta } from "../colors.js";
11
-
12
- // --- Utility helpers ---
10
+ import { LIVE_COLOR, LIVE_FOREGROUND_COLOR } from "../colors.js";
13
11
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
+ // --- Utility helpers ---
13
+
14
14
  function formatCompact(num) {
15
15
  if (num >= 1_000_000) return `${(num / 1_000_000).toFixed(1).replace(/\.0$/, '')}M`;
16
16
  if (num >= 1_000) return `${(num / 1_000).toFixed(1).replace(/\.0$/, '')}k`;
@@ -24,36 +24,86 @@ function formatDuration(startedAt, endedAt) {
24
24
  const m = totalMin % 60;
25
25
  return m > 0 ? `${h}h ${m}m` : `${h}h`;
26
26
  }
27
- const MONTH_SHORT = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
28
- function formatDate(dateStr) {
29
- const d = new Date(dateStr);
30
- return `${d.getDate()} ${MONTH_SHORT[d.getMonth()]} ${d.getFullYear()}`;
27
+ const DAY_MS = 86_400_000;
28
+ function startOfDay(date) {
29
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();
31
30
  }
32
- function getTimeLabel(room) {
33
- if (room.status === 'ended' && room.startedAt && room.endedAt) {
34
- return `${formatDuration(room.startedAt, room.endedAt)} · ${formatDate(room.endedAt)}`;
35
- }
36
- if (room.status === 'live' && room.startedAt) {
37
- return `Live · Started ${formatDate(room.startedAt)}`;
38
- }
31
+
32
+ /** `Today` / `Tomorrow` / `Yesterday`, else a locale short date (year only when it differs). */
33
+ function formatDay(date, now) {
34
+ const dayDelta = Math.round((startOfDay(date) - startOfDay(now)) / DAY_MS);
35
+ if (dayDelta === 0) return 'Today';
36
+ if (dayDelta === 1) return 'Tomorrow';
37
+ if (dayDelta === -1) return 'Yesterday';
38
+ const options = {
39
+ day: 'numeric',
40
+ month: 'short'
41
+ };
42
+ if (date.getFullYear() !== now.getFullYear()) options.year = 'numeric';
43
+ return date.toLocaleDateString(undefined, options);
44
+ }
45
+ function formatTime(date) {
46
+ return date.toLocaleTimeString(undefined, {
47
+ hour: 'numeric',
48
+ minute: '2-digit'
49
+ });
50
+ }
51
+
52
+ /**
53
+ * The when-label for a room that is NOT live: the start time for a scheduled room
54
+ * (`Tomorrow 18:00`), the day + duration for an ended one (`Yesterday · 45 min`).
55
+ * A live room never uses this — its lead metric is the listener count.
56
+ */
57
+ function getScheduleLabel(room, now) {
39
58
  if (room.status === 'scheduled' && room.scheduledStart) {
40
- return formatDate(room.scheduledStart);
59
+ const start = new Date(room.scheduledStart);
60
+ return `${formatDay(start, now)} ${formatTime(start)}`;
61
+ }
62
+ if (room.status === 'ended' && room.endedAt) {
63
+ const day = formatDay(new Date(room.endedAt), now);
64
+ return room.startedAt ? `${day} · ${formatDuration(room.startedAt, room.endedAt)}` : day;
41
65
  }
42
66
  if (room.createdAt) {
43
- return formatDate(room.createdAt);
67
+ return formatDay(new Date(room.createdAt), now);
44
68
  }
45
69
  return '';
46
70
  }
47
71
 
48
72
  // --- Constants ---
49
73
 
50
- const MAX_SPEAKER_AVATARS = 4;
74
+ const MAX_SPEAKER_AVATARS = 3;
51
75
  const SPEAKER_AVATAR_SIZE = 44;
76
+ const ROW_AVATAR_SIZE = 40;
77
+ const BYLINE_AVATAR_SIZE = 20;
78
+ const ACTION_HIT_SLOP = {
79
+ top: 8,
80
+ bottom: 8,
81
+ left: 8,
82
+ right: 8
83
+ };
52
84
 
53
85
  // --- Types ---
54
86
 
55
87
  // --- Component ---
56
88
 
89
+ /**
90
+ * A room in a list. The `default` variant renders ONE of two presentations,
91
+ * selected by `room.status`, because a live room and a listing of one are
92
+ * different objects:
93
+ *
94
+ * - **live** → a featured card: the LIVE chip + the listener count (the only
95
+ * number that matters while a room is on air), the speaker faces, the host,
96
+ * and an explicit Join CTA.
97
+ * - **scheduled / ended** → a flush full-width row: host avatar, title + when,
98
+ * byline, and one subtle right-side action. No card chrome, no CTA — there is
99
+ * nothing to join yet (or ever again).
100
+ *
101
+ * At most ONE status chip is ever shown (a live room is not a scheduled one, and
102
+ * the date already says "scheduled"); the room type carries no badge at all.
103
+ *
104
+ * The `compact` variant is the small fixed-width card used by post attachments
105
+ * and the composer preview, and follows the same rules in miniature.
106
+ */
57
107
  export const RoomCard = ({
58
108
  room,
59
109
  onPress,
@@ -80,6 +130,7 @@ export const RoomCard = ({
80
130
  const isLive = room.status === 'live';
81
131
  const isScheduled = room.status === 'scheduled';
82
132
  const isCompact = variant === 'compact';
133
+ const isFeatured = isLive && !isCompact;
83
134
 
84
135
  // Resolve host display: an explicit prop wins, then the @handle, then the
85
136
  // canonical API-owned `name.displayName` from the Oxy user DTO (never a
@@ -88,16 +139,17 @@ export const RoomCard = ({
88
139
  const hostName = hostNameProp ?? (hostProfile?.username ? `@${hostProfile.username}` : (typeof hostProfileName === 'object' ? hostProfileName?.displayName : null) || room.host?.slice(0, 10) || 'Unknown');
89
140
  const hostAvatarUri = hostAvatarUriProp ?? getAvatarUrl(hostProfile, oxyServices, getCachedFileDownloadUrlSync);
90
141
 
91
- // Resolve speaker avatars (default variant only)
142
+ // Speaker faces only earn their space on the featured (live) card.
92
143
  const speakerIds = useMemo(() => {
93
- if (isCompact) return [];
144
+ if (!isFeatured) return [];
94
145
  const ids = room.speakers?.length ? room.speakers : [room.host];
95
146
  return ids.slice(0, MAX_SPEAKER_AVATARS);
96
- }, [room.speakers, room.host, isCompact]);
147
+ }, [isFeatured, room.speakers, room.host]);
148
+ const hiddenSpeakerCount = Math.max(0, (room.speakers?.length ?? 0) - speakerIds.length);
97
149
  useRoomUsers(speakerIds);
98
- const typeMeta = getRoomTypeMeta(room.type);
99
150
  const listenerCount = room.participants?.length || room.stats?.totalJoined || 0;
100
- const timeLabel = getTimeLabel(room);
151
+ const scheduleLabel = isLive ? '' : getScheduleLabel(room, new Date());
152
+ const byline = house ? `by ${hostName} · ${house.name}` : `by ${hostName}`;
101
153
 
102
154
  // --- Compact variant (post attachments, composer preview) ---
103
155
  // It lives inside HORIZONTAL carousels, where a percentage width has no parent
@@ -113,125 +165,140 @@ export const RoomCard = ({
113
165
  disabled: !onPress,
114
166
  children: [/*#__PURE__*/_jsxs(View, {
115
167
  className: "flex-1",
116
- children: [house && /*#__PURE__*/_jsx(Text, {
117
- className: "mb-1 text-[9px] font-bold tracking-[0.5px] text-muted-foreground",
118
- numberOfLines: 1,
119
- children: house.name.toUpperCase()
168
+ children: [isLive && /*#__PURE__*/_jsx(View, {
169
+ className: "mb-1.5 flex-row",
170
+ children: /*#__PURE__*/_jsx(LiveBadge, {})
120
171
  }), /*#__PURE__*/_jsx(Text, {
121
172
  className: "text-sm font-semibold leading-[18px] text-foreground",
122
173
  numberOfLines: 2,
123
174
  children: room.title
124
- }), (isLive || isScheduled || typeMeta) && /*#__PURE__*/_jsxs(View, {
125
- className: "mt-1 flex-row flex-wrap gap-1",
126
- children: [isLive && /*#__PURE__*/_jsx(LiveBadge, {}), isScheduled && /*#__PURE__*/_jsx(ScheduledBadge, {
127
- iconSize: 10,
128
- iconColor: theme.colors.textSecondary
129
- }), typeMeta && /*#__PURE__*/_jsx(TypeBadge, {
130
- meta: typeMeta
131
- })]
132
175
  })]
133
176
  }), /*#__PURE__*/_jsxs(View, {
134
- className: "mt-2 flex-row items-center gap-1",
135
- children: [/*#__PURE__*/_jsx(MaterialCommunityIcons, {
136
- name: "account-group",
137
- size: 14,
138
- color: theme.colors.textSecondary
139
- }), /*#__PURE__*/_jsxs(Text, {
140
- className: "text-[11px] text-muted-foreground",
141
- children: [listenerCount, " listening"]
177
+ className: "mt-2 gap-1",
178
+ children: [/*#__PURE__*/_jsxs(View, {
179
+ className: "flex-row items-center gap-1",
180
+ children: [/*#__PURE__*/_jsx(AvatarComponent, {
181
+ size: 14,
182
+ source: hostAvatarUri,
183
+ shape: "squircle"
184
+ }), /*#__PURE__*/_jsx(Text, {
185
+ className: "flex-1 text-[11px] text-muted-foreground",
186
+ numberOfLines: 1,
187
+ children: byline
188
+ })]
142
189
  }), /*#__PURE__*/_jsx(Text, {
143
- className: "text-[10px] text-muted-foreground",
144
- children: "\u2022"
145
- }), hostAvatarUri && /*#__PURE__*/_jsx(AvatarComponent, {
146
- size: 14,
190
+ className: "text-[11px] text-muted-foreground",
191
+ numberOfLines: 1,
192
+ children: isLive ? `${formatCompact(listenerCount)} listening` : scheduleLabel
193
+ })]
194
+ })]
195
+ });
196
+ }
197
+
198
+ // --- Featured card: a LIVE room, with presence and an explicit CTA ---
199
+ if (isFeatured) {
200
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
201
+ className: "mb-3 w-full gap-2.5 rounded-2xl border border-border bg-surface p-3",
202
+ style: style,
203
+ onPress: onPress,
204
+ activeOpacity: onPress ? 0.7 : 1,
205
+ disabled: !onPress,
206
+ children: [/*#__PURE__*/_jsxs(View, {
207
+ className: "flex-row items-center gap-1.5",
208
+ children: [/*#__PURE__*/_jsx(LiveBadge, {}), listenerCount > 0 && /*#__PURE__*/_jsxs(_Fragment, {
209
+ children: [/*#__PURE__*/_jsx(Text, {
210
+ className: "text-[13px] text-muted-foreground",
211
+ children: "\xB7"
212
+ }), /*#__PURE__*/_jsxs(Text, {
213
+ className: "text-[13px] font-semibold text-muted-foreground",
214
+ numberOfLines: 1,
215
+ children: [formatCompact(listenerCount), " listening"]
216
+ })]
217
+ }), /*#__PURE__*/_jsx(View, {
218
+ className: "flex-1"
219
+ }), onSave && /*#__PURE__*/_jsx(SaveAction, {
220
+ onSave: onSave,
221
+ isSaved: isSaved,
222
+ isScheduled: false,
223
+ theme: theme
224
+ }), onMenuPress && /*#__PURE__*/_jsx(MenuAction, {
225
+ onMenuPress: onMenuPress,
226
+ theme: theme
227
+ })]
228
+ }), /*#__PURE__*/_jsx(Text, {
229
+ className: "text-[17px] font-bold leading-[22px] text-foreground",
230
+ numberOfLines: 2,
231
+ children: room.title
232
+ }), /*#__PURE__*/_jsx(SpeakerStack, {
233
+ speakerIds: speakerIds,
234
+ hiddenCount: hiddenSpeakerCount
235
+ }), /*#__PURE__*/_jsxs(View, {
236
+ className: "flex-row items-center gap-2",
237
+ children: [/*#__PURE__*/_jsx(AvatarComponent, {
238
+ size: BYLINE_AVATAR_SIZE,
147
239
  source: hostAvatarUri,
148
- shape: "squircle",
149
- style: {
150
- marginRight: 2
151
- }
240
+ shape: "squircle"
152
241
  }), /*#__PURE__*/_jsx(Text, {
153
- className: "flex-1 text-[11px] text-muted-foreground",
242
+ className: "flex-1 text-[13px] text-muted-foreground",
154
243
  numberOfLines: 1,
155
- children: hostName
244
+ children: byline
245
+ }), onPress && /*#__PURE__*/_jsx(TouchableOpacity, {
246
+ className: "rounded-full px-4 py-1.5",
247
+ style: {
248
+ backgroundColor: LIVE_COLOR
249
+ },
250
+ onPress: onPress,
251
+ accessibilityRole: "button",
252
+ accessibilityLabel: "Join room",
253
+ children: /*#__PURE__*/_jsx(Text, {
254
+ className: "text-[13px] font-bold",
255
+ style: {
256
+ color: LIVE_FOREGROUND_COLOR
257
+ },
258
+ children: "Join"
259
+ })
156
260
  })]
157
261
  })]
158
262
  });
159
263
  }
160
264
 
161
- // --- Default variant: a full-width, flush feed row (hairline divider, no card chrome) ---
265
+ // --- Compact row: a SCHEDULED or ENDED room, flush in the feed ---
162
266
  return /*#__PURE__*/_jsxs(TouchableOpacity, {
163
- className: "w-full gap-2 border-b border-border px-3 py-3",
267
+ className: "w-full flex-row items-center gap-3 border-b border-border px-3 py-3",
164
268
  style: style,
165
269
  onPress: onPress,
166
270
  activeOpacity: onPress ? 0.7 : 1,
167
271
  disabled: !onPress,
168
- children: [(house || onMenuPress) && /*#__PURE__*/_jsxs(View, {
169
- className: "flex-row items-center gap-1.5",
170
- children: [house && /*#__PURE__*/_jsxs(_Fragment, {
171
- children: [/*#__PURE__*/_jsx(MaterialCommunityIcons, {
172
- name: "home",
173
- size: 14,
174
- color: theme.colors.primary
175
- }), /*#__PURE__*/_jsx(Text, {
176
- className: "text-[11px] font-bold tracking-[0.5px] text-muted-foreground",
177
- numberOfLines: 1,
178
- children: house.name.toUpperCase()
179
- })]
180
- }), /*#__PURE__*/_jsx(View, {
181
- className: "flex-1"
182
- }), onMenuPress && /*#__PURE__*/_jsx(TouchableOpacity, {
183
- onPress: onMenuPress,
184
- hitSlop: {
185
- top: 8,
186
- bottom: 8,
187
- left: 8,
188
- right: 8
189
- },
190
- children: /*#__PURE__*/_jsx(MaterialCommunityIcons, {
191
- name: "dots-horizontal",
192
- size: 20,
193
- color: theme.colors.textSecondary
194
- })
195
- })]
272
+ children: [/*#__PURE__*/_jsx(AvatarComponent, {
273
+ size: ROW_AVATAR_SIZE,
274
+ source: hostAvatarUri,
275
+ shape: "squircle"
196
276
  }), /*#__PURE__*/_jsxs(View, {
197
- children: [/*#__PURE__*/_jsx(Text, {
198
- className: "text-[17px] font-bold leading-[22px] text-foreground",
199
- numberOfLines: 2,
200
- children: room.title
201
- }), (isLive || isScheduled || typeMeta) && /*#__PURE__*/_jsxs(View, {
202
- className: "mt-1.5 flex-row flex-wrap items-center gap-1.5",
203
- children: [isLive && /*#__PURE__*/_jsx(LiveBadge, {}), isScheduled && /*#__PURE__*/_jsx(ScheduledBadge, {
204
- iconColor: theme.colors.textSecondary
205
- }), typeMeta && /*#__PURE__*/_jsx(TypeBadge, {
206
- meta: typeMeta
277
+ className: "flex-1 gap-0.5",
278
+ children: [/*#__PURE__*/_jsxs(View, {
279
+ className: "flex-row items-baseline gap-1.5",
280
+ children: [/*#__PURE__*/_jsx(Text, {
281
+ className: "shrink text-[15px] font-semibold text-foreground",
282
+ numberOfLines: 1,
283
+ children: room.title
284
+ }), scheduleLabel !== '' && /*#__PURE__*/_jsxs(Text, {
285
+ className: "shrink-0 text-[13px] text-muted-foreground",
286
+ numberOfLines: 1,
287
+ children: ["\xB7 ", scheduleLabel]
207
288
  })]
208
- })]
209
- }), /*#__PURE__*/_jsx(SpeakerRow, {
210
- speakerIds: speakerIds,
211
- listenerCount: listenerCount
212
- }), (timeLabel || onSave) && /*#__PURE__*/_jsxs(View, {
213
- className: "flex-row items-center justify-between",
214
- children: [timeLabel ? /*#__PURE__*/_jsx(Text, {
289
+ }), /*#__PURE__*/_jsx(Text, {
215
290
  className: "text-[13px] text-muted-foreground",
216
- children: timeLabel
217
- }) : /*#__PURE__*/_jsx(View, {}), onSave && /*#__PURE__*/_jsxs(TouchableOpacity, {
218
- className: "flex-row items-center gap-1",
219
- onPress: onSave,
220
- hitSlop: {
221
- top: 8,
222
- bottom: 8,
223
- left: 8,
224
- right: 8
225
- },
226
- children: [/*#__PURE__*/_jsx(MaterialCommunityIcons, {
227
- name: isSaved ? 'bookmark' : 'bookmark-outline',
228
- size: 18,
229
- color: isSaved ? theme.colors.primary : theme.colors.textSecondary
230
- }), /*#__PURE__*/_jsx(Text, {
231
- className: isSaved ? 'text-[13px] font-medium text-primary' : 'text-[13px] font-medium text-muted-foreground',
232
- children: "Save"
233
- })]
291
+ numberOfLines: 1,
292
+ children: byline
234
293
  })]
294
+ }), onSave && /*#__PURE__*/_jsx(SaveAction, {
295
+ onSave: onSave,
296
+ isSaved: isSaved,
297
+ isScheduled: isScheduled,
298
+ theme: theme
299
+ }), onMenuPress && /*#__PURE__*/_jsx(MenuAction, {
300
+ onMenuPress: onMenuPress,
301
+ theme: theme
235
302
  })]
236
303
  });
237
304
  };
@@ -256,63 +323,76 @@ function LiveBadge() {
256
323
  })]
257
324
  });
258
325
  }
259
- function ScheduledBadge({
260
- iconSize = 12,
261
- iconColor
326
+
327
+ // --- Actions (icon-only, like the surrounding feed) ---
328
+
329
+ /**
330
+ * The saved-state toggle. On a SCHEDULED room, saving it is how you ask to be
331
+ * pulled back when it starts, so the icon reads as a reminder bell; anywhere
332
+ * else it is a bookmark.
333
+ */
334
+ function SaveAction({
335
+ onSave,
336
+ isSaved,
337
+ isScheduled,
338
+ theme
262
339
  }) {
263
- return /*#__PURE__*/_jsxs(View, {
264
- className: "flex-row items-center gap-1 rounded-[4px] bg-muted px-2 py-1",
265
- children: [/*#__PURE__*/_jsx(MaterialCommunityIcons, {
266
- name: "calendar",
267
- size: iconSize,
268
- color: iconColor
269
- }), /*#__PURE__*/_jsx(Text, {
270
- className: "text-[10px] font-bold text-muted-foreground",
271
- children: "SCHEDULED"
272
- })]
340
+ const icon = isScheduled ? isSaved ? 'bell' : 'bell-outline' : isSaved ? 'bookmark' : 'bookmark-outline';
341
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
342
+ onPress: onSave,
343
+ hitSlop: ACTION_HIT_SLOP,
344
+ accessibilityRole: "button",
345
+ accessibilityLabel: isScheduled ? 'Remind me about this room' : 'Save room',
346
+ accessibilityState: {
347
+ selected: Boolean(isSaved)
348
+ },
349
+ children: /*#__PURE__*/_jsx(MaterialCommunityIcons, {
350
+ name: icon,
351
+ size: 20,
352
+ color: isSaved ? theme.colors.primary : theme.colors.textSecondary
353
+ })
273
354
  });
274
355
  }
275
- function TypeBadge({
276
- meta
356
+ function MenuAction({
357
+ onMenuPress,
358
+ theme
277
359
  }) {
278
- return /*#__PURE__*/_jsxs(View, {
279
- className: "flex-row items-center gap-0.5 rounded-[4px] px-1.5 py-0.5",
280
- style: {
281
- backgroundColor: meta.tintColor
282
- },
283
- children: [/*#__PURE__*/_jsx(MaterialCommunityIcons, {
284
- name: meta.icon,
285
- size: 10,
286
- color: meta.color
287
- }), /*#__PURE__*/_jsx(Text, {
288
- className: "text-[9px] font-bold",
289
- style: {
290
- color: meta.color
291
- },
292
- children: meta.label
293
- })]
360
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
361
+ onPress: onMenuPress,
362
+ hitSlop: ACTION_HIT_SLOP,
363
+ accessibilityRole: "button",
364
+ accessibilityLabel: "Room options",
365
+ children: /*#__PURE__*/_jsx(MaterialCommunityIcons, {
366
+ name: "dots-horizontal",
367
+ size: 20,
368
+ color: theme.colors.textSecondary
369
+ })
294
370
  });
295
371
  }
296
372
 
297
- // --- Speaker row sub-component ---
373
+ // --- Speaker stack (featured card only) ---
298
374
 
299
- function SpeakerRow({
375
+ function SpeakerStack({
300
376
  speakerIds,
301
- listenerCount
377
+ hiddenCount
302
378
  }) {
379
+ if (speakerIds.length === 0) return null;
303
380
  return /*#__PURE__*/_jsxs(View, {
304
- className: "flex-row items-center gap-2",
305
- children: [speakerIds.map(id => /*#__PURE__*/_jsx(SpeakerAvatar, {
306
- userId: id
307
- }, id)), listenerCount > 0 && /*#__PURE__*/_jsx(View, {
308
- className: "items-center justify-center rounded-[14px] border-2 border-border bg-muted",
381
+ className: "flex-row items-center",
382
+ children: [speakerIds.map((id, index) => /*#__PURE__*/_jsx(View, {
383
+ className: index === 0 ? '' : '-ml-3',
384
+ children: /*#__PURE__*/_jsx(SpeakerAvatar, {
385
+ userId: id
386
+ })
387
+ }, id)), hiddenCount > 0 && /*#__PURE__*/_jsx(View, {
388
+ className: "-ml-3 items-center justify-center rounded-full border-2 border-surface bg-muted",
309
389
  style: {
310
- width: SPEAKER_AVATAR_SIZE + 4,
311
- height: SPEAKER_AVATAR_SIZE + 4
390
+ width: SPEAKER_AVATAR_SIZE,
391
+ height: SPEAKER_AVATAR_SIZE
312
392
  },
313
393
  children: /*#__PURE__*/_jsxs(Text, {
314
- className: "text-sm font-bold text-muted-foreground",
315
- children: ["+", formatCompact(listenerCount)]
394
+ className: "text-[13px] font-bold text-muted-foreground",
395
+ children: ["+", formatCompact(hiddenCount)]
316
396
  })
317
397
  })]
318
398
  });
@@ -330,8 +410,10 @@ function SpeakerAvatar({
330
410
  } = useAuth();
331
411
  const profile = useUserById(userId);
332
412
  const avatarUri = getAvatarUrl(profile, oxyServices, getCachedFileDownloadUrlSync);
413
+
414
+ // The ring is the card's own surface color, so overlapping faces stay separable.
333
415
  return /*#__PURE__*/_jsx(View, {
334
- className: "rounded-[14px] border-2 border-border p-0.5",
416
+ className: "rounded-full border-2 border-surface",
335
417
  children: /*#__PURE__*/_jsx(AvatarComponent, {
336
418
  size: SPEAKER_AVATAR_SIZE,
337
419
  source: avatarUri,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","View","Text","TouchableOpacity","MaterialCommunityIcons","useAuth","useLiveConfig","AnimatedPulse","useRoomUsers","getAvatarUrl","LIVE_COLOR","LIVE_FOREGROUND_COLOR","getRoomTypeMeta","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","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","theme","oxyServices","hostProfile","host","isLive","isScheduled","isCompact","hostProfileName","name","username","displayName","slice","speakerIds","ids","speakers","length","typeMeta","type","listenerCount","participants","stats","totalJoined","timeLabel","className","activeOpacity","disabled","children","numberOfLines","toUpperCase","title","LiveBadge","ScheduledBadge","iconSize","iconColor","colors","textSecondary","TypeBadge","meta","size","color","source","shape","marginRight","primary","hitSlop","top","bottom","left","right","SpeakerRow","backgroundColor","tintColor","icon","label","map","id","SpeakerAvatar","userId","width","height","profile","avatarUri"],"sourceRoot":"../../../../src","sources":["live/components/RoomCard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,IAAI,EAAEC,gBAAgB,QAA8B,cAAc;AACjF,OAAOC,sBAAsB,MAAM,2CAA2C;AAC9E,SAASC,OAAO,QAAQ,iBAAiB;AAEzC,SAASC,aAAa,QAAQ,iCAA8B;AAC5D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,YAAY,EAAEC,YAAY,QAAQ,0BAAuB;AAClE,SAASC,UAAU,EAAEC,qBAAqB,EAAEC,eAAe,QAA2B,cAAW;;AAEjG;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEA,SAASC,aAAaA,CAACC,GAAW,EAAU;EAC1C,IAAIA,GAAG,IAAI,SAAS,EAAE,OAAO,GAAG,CAACA,GAAG,GAAG,SAAS,EAAEC,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG;EACnF,IAAIF,GAAG,IAAI,KAAK,EAAE,OAAO,GAAG,CAACA,GAAG,GAAG,KAAK,EAAEC,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG;EAC3E,OAAOC,MAAM,CAACH,GAAG,CAAC;AACpB;AAEA,SAASI,cAAcA,CAACC,SAAiB,EAAEC,OAAe,EAAU;EAClE,MAAMC,EAAE,GAAG,IAAIC,IAAI,CAACF,OAAO,CAAC,CAACG,OAAO,CAAC,CAAC,GAAG,IAAID,IAAI,CAACH,SAAS,CAAC,CAACI,OAAO,CAAC,CAAC;EACtE,MAAMC,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACL,EAAE,GAAG,MAAM,CAAC;EACxC,IAAIG,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAGA,QAAQ,MAAM;EAC3C,MAAMG,CAAC,GAAGF,IAAI,CAACG,KAAK,CAACJ,QAAQ,GAAG,EAAE,CAAC;EACnC,MAAMK,CAAC,GAAGL,QAAQ,GAAG,EAAE;EACvB,OAAOK,CAAC,GAAG,CAAC,GAAG,GAAGF,CAAC,KAAKE,CAAC,GAAG,GAAG,GAAGF,CAAC,GAAG;AACxC;AAEA,MAAMG,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAExG,SAASC,UAAUA,CAACC,OAAe,EAAU;EAC3C,MAAMC,CAAC,GAAG,IAAIX,IAAI,CAACU,OAAO,CAAC;EAC3B,OAAO,GAAGC,CAAC,CAACC,OAAO,CAAC,CAAC,IAAIJ,WAAW,CAACG,CAAC,CAACE,QAAQ,CAAC,CAAC,CAAC,IAAIF,CAAC,CAACG,WAAW,CAAC,CAAC,EAAE;AACzE;AAEA,SAASC,YAAYA,CAACC,IAA2B,EAAU;EACzD,IAAIA,IAAI,CAACC,MAAM,KAAK,OAAO,IAAID,IAAI,CAACnB,SAAS,IAAImB,IAAI,CAAClB,OAAO,EAAE;IAC7D,OAAO,GAAGF,cAAc,CAACoB,IAAI,CAACnB,SAAS,EAAEmB,IAAI,CAAClB,OAAO,CAAC,QAAQW,UAAU,CAACO,IAAI,CAAClB,OAAO,CAAC,EAAE;EAC1F;EACA,IAAIkB,IAAI,CAACC,MAAM,KAAK,MAAM,IAAID,IAAI,CAACnB,SAAS,EAAE;IAC5C,OAAO,oBAAoBY,UAAU,CAACO,IAAI,CAACnB,SAAS,CAAC,EAAE;EACzD;EACA,IAAImB,IAAI,CAACC,MAAM,KAAK,WAAW,IAAID,IAAI,CAACE,cAAc,EAAE;IACtD,OAAOT,UAAU,CAACO,IAAI,CAACE,cAAc,CAAC;EACxC;EACA,IAAIF,IAAI,CAACG,SAAS,EAAE;IAClB,OAAOV,UAAU,CAACO,IAAI,CAACG,SAAS,CAAC;EACnC;EACA,OAAO,EAAE;AACX;;AAEA;;AAEA,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,mBAAmB,GAAG,EAAE;;AAE9B;;AA8BA;;AAEA,OAAO,MAAMC,QAAiC,GAAGA,CAAC;EAChDN,IAAI;EACJO,OAAO;EACPC,OAAO,GAAG,SAAS;EACnBC,KAAK;EACLC,QAAQ,EAAEC,YAAY;EACtBC,aAAa,EAAEC,iBAAiB;EAChCC,WAAW;EACXC,MAAM;EACNC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC,QAAQ;IAAEC,WAAW;IAAEC,eAAe;IAAEC;EAA6B,CAAC,GAAG3D,aAAa,CAAC,CAAC;EAChG,MAAM4D,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAM;IAAEK;EAAY,CAAC,GAAG9D,OAAO,CAAC,CAAC;EACjC,MAAM+D,WAAW,GAAGL,WAAW,CAACnB,IAAI,CAACyB,IAAI,CAAC;EAE1C,MAAMC,MAAM,GAAG1B,IAAI,CAACC,MAAM,KAAK,MAAM;EACrC,MAAM0B,WAAW,GAAG3B,IAAI,CAACC,MAAM,KAAK,WAAW;EAC/C,MAAM2B,SAAS,GAAGpB,OAAO,KAAK,SAAS;;EAEvC;EACA;EACA;EACA,MAAMqB,eAAe,GAAGL,WAAW,EAAEM,IAAI;EACzC,MAAMpB,QAAQ,GAAGC,YAAY,KACvBa,WAAW,EAAEO,QAAQ,GACrB,IAAIP,WAAW,CAACO,QAAQ,EAAE,GAC1B,CAAC,OAAOF,eAAe,KAAK,QAAQ,GAAGA,eAAe,EAAEG,WAAW,GAAG,IAAI,KACvEhC,IAAI,CAACyB,IAAI,EAAEQ,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IACvB,SAAS,CAAC;EACnB,MAAMrB,aAAa,GAAGC,iBAAiB,IAAIhD,YAAY,CAAC2D,WAAW,EAAED,WAAW,EAAEF,4BAA4B,CAAC;;EAE/G;EACA,MAAMa,UAAU,GAAG9E,OAAO,CAAC,MAAM;IAC/B,IAAIwE,SAAS,EAAE,OAAO,EAAE;IACxB,MAAMO,GAAG,GAAGnC,IAAI,CAACoC,QAAQ,EAAEC,MAAM,GAAGrC,IAAI,CAACoC,QAAQ,GAAG,CAACpC,IAAI,CAACyB,IAAI,CAAC;IAC/D,OAAOU,GAAG,CAACF,KAAK,CAAC,CAAC,EAAE7B,mBAAmB,CAAC;EAC1C,CAAC,EAAE,CAACJ,IAAI,CAACoC,QAAQ,EAAEpC,IAAI,CAACyB,IAAI,EAAEG,SAAS,CAAC,CAAC;EAEzChE,YAAY,CAACsE,UAAU,CAAC;EAExB,MAAMI,QAAQ,GAAGtE,eAAe,CAACgC,IAAI,CAACuC,IAAI,CAAC;EAC3C,MAAMC,aAAa,GAAGxC,IAAI,CAACyC,YAAY,EAAEJ,MAAM,IAAIrC,IAAI,CAAC0C,KAAK,EAAEC,WAAW,IAAI,CAAC;EAC/E,MAAMC,SAAS,GAAG7C,YAAY,CAACC,IAAI,CAAC;;EAEpC;EACA;EACA;EACA;EACA;EACA,IAAI4B,SAAS,EAAE;IACb,oBACExD,KAAA,CAACb,gBAAgB;MACfsF,SAAS,EAAC,oGAAoG;MAC9G5B,KAAK,EAAEA,KAAM;MACbV,OAAO,EAAEA,OAAQ;MACjBuC,aAAa,EAAEvC,OAAO,GAAG,GAAG,GAAG,CAAE;MACjCwC,QAAQ,EAAE,CAACxC,OAAQ;MAAAyC,QAAA,gBAEnB5E,KAAA,CAACf,IAAI;QAACwF,SAAS,EAAC,QAAQ;QAAAG,QAAA,GACrBvC,KAAK,iBACJvC,IAAA,CAACZ,IAAI;UACHuF,SAAS,EAAC,kEAAkE;UAC5EI,aAAa,EAAE,CAAE;UAAAD,QAAA,EAEhBvC,KAAK,CAACqB,IAAI,CAACoB,WAAW,CAAC;QAAC,CACrB,CACP,eACDhF,IAAA,CAACZ,IAAI;UAACuF,SAAS,EAAC,sDAAsD;UAACI,aAAa,EAAE,CAAE;UAAAD,QAAA,EACrFhD,IAAI,CAACmD;QAAK,CACP,CAAC,EACN,CAACzB,MAAM,IAAIC,WAAW,IAAIW,QAAQ,kBACjClE,KAAA,CAACf,IAAI;UAACwF,SAAS,EAAC,+BAA+B;UAAAG,QAAA,GAC5CtB,MAAM,iBAAIxD,IAAA,CAACkF,SAAS,IAAE,CAAC,EACvBzB,WAAW,iBAAIzD,IAAA,CAACmF,cAAc;YAACC,QAAQ,EAAE,EAAG;YAACC,SAAS,EAAEjC,KAAK,CAACkC,MAAM,CAACC;UAAc,CAAE,CAAC,EACtFnB,QAAQ,iBAAIpE,IAAA,CAACwF,SAAS;YAACC,IAAI,EAAErB;UAAS,CAAE,CAAC;QAAA,CACtC,CACP;MAAA,CACG,CAAC,eACPlE,KAAA,CAACf,IAAI;QAACwF,SAAS,EAAC,kCAAkC;QAAAG,QAAA,gBAChD9E,IAAA,CAACV,sBAAsB;UAACsE,IAAI,EAAC,eAAe;UAAC8B,IAAI,EAAE,EAAG;UAACC,KAAK,EAAEvC,KAAK,CAACkC,MAAM,CAACC;QAAc,CAAE,CAAC,eAC5FrF,KAAA,CAACd,IAAI;UAACuF,SAAS,EAAC,mCAAmC;UAAAG,QAAA,GAAER,aAAa,EAAC,YAAU;QAAA,CAAM,CAAC,eACpFtE,IAAA,CAACZ,IAAI;UAACuF,SAAS,EAAC,mCAAmC;UAAAG,QAAA,EAAC;QAAC,CAAM,CAAC,EAC3DpC,aAAa,iBACZ1C,IAAA,CAACkD,eAAe;UAACwC,IAAI,EAAE,EAAG;UAACE,MAAM,EAAElD,aAAc;UAACmD,KAAK,EAAC,UAAU;UAAC9C,KAAK,EAAE;YAAE+C,WAAW,EAAE;UAAE;QAAE,CAAE,CAChG,eACD9F,IAAA,CAACZ,IAAI;UAACuF,SAAS,EAAC,0CAA0C;UAACI,aAAa,EAAE,CAAE;UAAAD,QAAA,EACzEtC;QAAQ,CACL,CAAC;MAAA,CACH,CAAC;IAAA,CACS,CAAC;EAEvB;;EAEA;EACA,oBACEtC,KAAA,CAACb,gBAAgB;IACfsF,SAAS,EAAC,+CAA+C;IACzD5B,KAAK,EAAEA,KAAM;IACbV,OAAO,EAAEA,OAAQ;IACjBuC,aAAa,EAAEvC,OAAO,GAAG,GAAG,GAAG,CAAE;IACjCwC,QAAQ,EAAE,CAACxC,OAAQ;IAAAyC,QAAA,GAGlB,CAACvC,KAAK,IAAIK,WAAW,kBACpB1C,KAAA,CAACf,IAAI;MAACwF,SAAS,EAAC,+BAA+B;MAAAG,QAAA,GAC5CvC,KAAK,iBACJrC,KAAA,CAAAE,SAAA;QAAA0E,QAAA,gBACE9E,IAAA,CAACV,sBAAsB;UAACsE,IAAI,EAAC,MAAM;UAAC8B,IAAI,EAAE,EAAG;UAACC,KAAK,EAAEvC,KAAK,CAACkC,MAAM,CAACS;QAAQ,CAAE,CAAC,eAC7E/F,IAAA,CAACZ,IAAI;UACHuF,SAAS,EAAC,8DAA8D;UACxEI,aAAa,EAAE,CAAE;UAAAD,QAAA,EAEhBvC,KAAK,CAACqB,IAAI,CAACoB,WAAW,CAAC;QAAC,CACrB,CAAC;MAAA,CACP,CACH,eACDhF,IAAA,CAACb,IAAI;QAACwF,SAAS,EAAC;MAAQ,CAAE,CAAC,EAC1B/B,WAAW,iBACV5C,IAAA,CAACX,gBAAgB;QAACgD,OAAO,EAAEO,WAAY;QAACoD,OAAO,EAAE;UAAEC,GAAG,EAAE,CAAC;UAAEC,MAAM,EAAE,CAAC;UAAEC,IAAI,EAAE,CAAC;UAAEC,KAAK,EAAE;QAAE,CAAE;QAAAtB,QAAA,eACxF9E,IAAA,CAACV,sBAAsB;UAACsE,IAAI,EAAC,iBAAiB;UAAC8B,IAAI,EAAE,EAAG;UAACC,KAAK,EAAEvC,KAAK,CAACkC,MAAM,CAACC;QAAc,CAAE;MAAC,CAC9E,CACnB;IAAA,CACG,CACP,eAGDrF,KAAA,CAACf,IAAI;MAAA2F,QAAA,gBACH9E,IAAA,CAACZ,IAAI;QAACuF,SAAS,EAAC,sDAAsD;QAACI,aAAa,EAAE,CAAE;QAAAD,QAAA,EACrFhD,IAAI,CAACmD;MAAK,CACP,CAAC,EACN,CAACzB,MAAM,IAAIC,WAAW,IAAIW,QAAQ,kBACjClE,KAAA,CAACf,IAAI;QAACwF,SAAS,EAAC,gDAAgD;QAAAG,QAAA,GAC7DtB,MAAM,iBAAIxD,IAAA,CAACkF,SAAS,IAAE,CAAC,EACvBzB,WAAW,iBAAIzD,IAAA,CAACmF,cAAc;UAACE,SAAS,EAAEjC,KAAK,CAACkC,MAAM,CAACC;QAAc,CAAE,CAAC,EACxEnB,QAAQ,iBAAIpE,IAAA,CAACwF,SAAS;UAACC,IAAI,EAAErB;QAAS,CAAE,CAAC;MAAA,CACtC,CACP;IAAA,CACG,CAAC,eAGPpE,IAAA,CAACqG,UAAU;MAACrC,UAAU,EAAEA,UAAW;MAACM,aAAa,EAAEA;IAAc,CAAE,CAAC,EAGnE,CAACI,SAAS,IAAI7B,MAAM,kBACnB3C,KAAA,CAACf,IAAI;MAACwF,SAAS,EAAC,uCAAuC;MAAAG,QAAA,GACpDJ,SAAS,gBACR1E,IAAA,CAACZ,IAAI;QAACuF,SAAS,EAAC,mCAAmC;QAAAG,QAAA,EAAEJ;MAAS,CAAO,CAAC,gBAEtE1E,IAAA,CAACb,IAAI,IAAE,CACR,EACA0D,MAAM,iBACL3C,KAAA,CAACb,gBAAgB;QACfsF,SAAS,EAAC,6BAA6B;QACvCtC,OAAO,EAAEQ,MAAO;QAChBmD,OAAO,EAAE;UAAEC,GAAG,EAAE,CAAC;UAAEC,MAAM,EAAE,CAAC;UAAEC,IAAI,EAAE,CAAC;UAAEC,KAAK,EAAE;QAAE,CAAE;QAAAtB,QAAA,gBAElD9E,IAAA,CAACV,sBAAsB;UACrBsE,IAAI,EAAEd,OAAO,GAAG,UAAU,GAAG,kBAAmB;UAChD4C,IAAI,EAAE,EAAG;UACTC,KAAK,EAAE7C,OAAO,GAAGM,KAAK,CAACkC,MAAM,CAACS,OAAO,GAAG3C,KAAK,CAACkC,MAAM,CAACC;QAAc,CACpE,CAAC,eACFvF,IAAA,CAACZ,IAAI;UACHuF,SAAS,EACP7B,OAAO,GACH,sCAAsC,GACtC,+CACL;UAAAgC,QAAA,EACF;QAED,CAAM,CAAC;MAAA,CACS,CACnB;IAAA,CACG,CACP;EAAA,CACe,CAAC;AAEvB,CAAC;;AAED;;AAEA;AACA;AACA;AACA,SAASI,SAASA,CAAA,EAAG;EACnB,oBACEhF,KAAA,CAACf,IAAI;IACHwF,SAAS,EAAC,qDAAqD;IAC/D5B,KAAK,EAAE;MAAEuD,eAAe,EAAE1G;IAAW,CAAE;IAAAkF,QAAA,gBAEvC9E,IAAA,CAACP,aAAa;MAACiG,IAAI,EAAE,CAAE;MAACC,KAAK,EAAE9F;IAAsB,CAAE,CAAC,eACxDG,IAAA,CAACZ,IAAI;MAACuF,SAAS,EAAC,kCAAkC;MAAAG,QAAA,EAAC;IAAI,CAAM,CAAC;EAAA,CAC1D,CAAC;AAEX;AAEA,SAASK,cAAcA,CAAC;EAAEC,QAAQ,GAAG,EAAE;EAAEC;AAAoD,CAAC,EAAE;EAC9F,oBACEnF,KAAA,CAACf,IAAI;IAACwF,SAAS,EAAC,8DAA8D;IAAAG,QAAA,gBAC5E9E,IAAA,CAACV,sBAAsB;MAACsE,IAAI,EAAC,UAAU;MAAC8B,IAAI,EAAEN,QAAS;MAACO,KAAK,EAAEN;IAAU,CAAE,CAAC,eAC5ErF,IAAA,CAACZ,IAAI;MAACuF,SAAS,EAAC,6CAA6C;MAAAG,QAAA,EAAC;IAAS,CAAM,CAAC;EAAA,CAC1E,CAAC;AAEX;AAEA,SAASU,SAASA,CAAC;EAAEC;AAA6B,CAAC,EAAE;EACnD,oBACEvF,KAAA,CAACf,IAAI;IACHwF,SAAS,EAAC,2DAA2D;IACrE5B,KAAK,EAAE;MAAEuD,eAAe,EAAEb,IAAI,CAACc;IAAU,CAAE;IAAAzB,QAAA,gBAE3C9E,IAAA,CAACV,sBAAsB;MAACsE,IAAI,EAAE6B,IAAI,CAACe,IAAK;MAACd,IAAI,EAAE,EAAG;MAACC,KAAK,EAAEF,IAAI,CAACE;IAAM,CAAE,CAAC,eACxE3F,IAAA,CAACZ,IAAI;MAACuF,SAAS,EAAC,sBAAsB;MAAC5B,KAAK,EAAE;QAAE4C,KAAK,EAAEF,IAAI,CAACE;MAAM,CAAE;MAAAb,QAAA,EACjEW,IAAI,CAACgB;IAAK,CACP,CAAC;EAAA,CACH,CAAC;AAEX;;AAEA;;AAEA,SAASJ,UAAUA,CAAC;EAAErC,UAAU;EAAEM;AAA+D,CAAC,EAAE;EAClG,oBACEpE,KAAA,CAACf,IAAI;IAACwF,SAAS,EAAC,6BAA6B;IAAAG,QAAA,GAC1Cd,UAAU,CAAC0C,GAAG,CAAEC,EAAE,iBACjB3G,IAAA,CAAC4G,aAAa;MAAUC,MAAM,EAAEF;IAAG,GAAfA,EAAiB,CACtC,CAAC,EACDrC,aAAa,GAAG,CAAC,iBAChBtE,IAAA,CAACb,IAAI;MACHwF,SAAS,EAAC,4EAA4E;MACtF5B,KAAK,EAAE;QAAE+D,KAAK,EAAE3E,mBAAmB,GAAG,CAAC;QAAE4E,MAAM,EAAE5E,mBAAmB,GAAG;MAAE,CAAE;MAAA2C,QAAA,eAE3E5E,KAAA,CAACd,IAAI;QAACuF,SAAS,EAAC,yCAAyC;QAAAG,QAAA,GAAC,GACvD,EAACzE,aAAa,CAACiE,aAAa,CAAC;MAAA,CAC1B;IAAC,CACH,CACP;EAAA,CACG,CAAC;AAEX;AAEA,SAASsC,aAAaA,CAAC;EAAEC;AAA2B,CAAC,EAAE;EACrD,MAAM;IAAE5D,WAAW;IAAEC,eAAe;IAAEC;EAA6B,CAAC,GAAG3D,aAAa,CAAC,CAAC;EACtF,MAAM;IAAE6D;EAAY,CAAC,GAAG9D,OAAO,CAAC,CAAC;EACjC,MAAMyH,OAAO,GAAG/D,WAAW,CAAC4D,MAAM,CAAC;EACnC,MAAMI,SAAS,GAAGtH,YAAY,CAACqH,OAAO,EAAE3D,WAAW,EAAEF,4BAA4B,CAAC;EAElF,oBACEnD,IAAA,CAACb,IAAI;IAACwF,SAAS,EAAC,6CAA6C;IAAAG,QAAA,eAC3D9E,IAAA,CAACkD,eAAe;MAACwC,IAAI,EAAEvD,mBAAoB;MAACyD,MAAM,EAAEqB,SAAU;MAACpB,KAAK,EAAC;IAAU,CAAE;EAAC,CAC9E,CAAC;AAEX;AAEA,eAAezD,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","View","Text","TouchableOpacity","MaterialCommunityIcons","useAuth","useLiveConfig","AnimatedPulse","useRoomUsers","getAvatarUrl","LIVE_COLOR","LIVE_FOREGROUND_COLOR","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","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","theme","oxyServices","hostProfile","host","isLive","isScheduled","isCompact","isFeatured","hostProfileName","name","username","displayName","slice","speakerIds","ids","speakers","length","hiddenSpeakerCount","max","listenerCount","participants","stats","totalJoined","scheduleLabel","byline","className","activeOpacity","disabled","children","LiveBadge","numberOfLines","title","size","source","shape","SaveAction","MenuAction","SpeakerStack","hiddenCount","backgroundColor","accessibilityRole","accessibilityLabel","color","icon","hitSlop","accessibilityState","selected","Boolean","colors","primary","textSecondary","map","id","index","SpeakerAvatar","userId","width","height","profile","avatarUri"],"sourceRoot":"../../../../src","sources":["live/components/RoomCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -33,6 +33,24 @@ interface RoomCardProps {
33
33
  isSaved?: boolean;
34
34
  style?: StyleProp<ViewStyle>;
35
35
  }
36
+ /**
37
+ * A room in a list. The `default` variant renders ONE of two presentations,
38
+ * selected by `room.status`, because a live room and a listing of one are
39
+ * different objects:
40
+ *
41
+ * - **live** → a featured card: the LIVE chip + the listener count (the only
42
+ * number that matters while a room is on air), the speaker faces, the host,
43
+ * and an explicit Join CTA.
44
+ * - **scheduled / ended** → a flush full-width row: host avatar, title + when,
45
+ * byline, and one subtle right-side action. No card chrome, no CTA — there is
46
+ * nothing to join yet (or ever again).
47
+ *
48
+ * At most ONE status chip is ever shown (a live room is not a scheduled one, and
49
+ * the date already says "scheduled"); the room type carries no badge at all.
50
+ *
51
+ * The `compact` variant is the small fixed-width card used by post attachments
52
+ * and the composer preview, and follows the same rules in miniature.
53
+ */
36
54
  export declare const RoomCard: React.FC<RoomCardProps>;
37
55
  export default RoomCard;
38
56
  //# sourceMappingURL=RoomCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoomCard.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/RoomCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAgC,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwDlF,UAAU,aAAa;IACrB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;QACvC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;QACtC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1D,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAID,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkL5C,CAAC;AA6EF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"RoomCard.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/RoomCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAgC,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA+ElF,UAAU,aAAa;IACrB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;QACvC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;QACtC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1D,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgL5C,CAAC;AA+GF,eAAe,QAAQ,CAAC"}
@@ -33,6 +33,24 @@ interface RoomCardProps {
33
33
  isSaved?: boolean;
34
34
  style?: StyleProp<ViewStyle>;
35
35
  }
36
+ /**
37
+ * A room in a list. The `default` variant renders ONE of two presentations,
38
+ * selected by `room.status`, because a live room and a listing of one are
39
+ * different objects:
40
+ *
41
+ * - **live** → a featured card: the LIVE chip + the listener count (the only
42
+ * number that matters while a room is on air), the speaker faces, the host,
43
+ * and an explicit Join CTA.
44
+ * - **scheduled / ended** → a flush full-width row: host avatar, title + when,
45
+ * byline, and one subtle right-side action. No card chrome, no CTA — there is
46
+ * nothing to join yet (or ever again).
47
+ *
48
+ * At most ONE status chip is ever shown (a live room is not a scheduled one, and
49
+ * the date already says "scheduled"); the room type carries no badge at all.
50
+ *
51
+ * The `compact` variant is the small fixed-width card used by post attachments
52
+ * and the composer preview, and follows the same rules in miniature.
53
+ */
36
54
  export declare const RoomCard: React.FC<RoomCardProps>;
37
55
  export default RoomCard;
38
56
  //# sourceMappingURL=RoomCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoomCard.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/RoomCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAgC,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwDlF,UAAU,aAAa;IACrB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;QACvC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;QACtC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1D,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAID,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkL5C,CAAC;AA6EF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"RoomCard.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/RoomCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAgC,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA+ElF,UAAU,aAAa;IACrB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;QACvC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;QACtC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1D,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgL5C,CAAC;AA+GF,eAAe,QAAQ,CAAC"}