@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.
- package/lib/commonjs/live/components/RoomCard.js +241 -158
- package/lib/commonjs/live/components/RoomCard.js.map +1 -1
- package/lib/module/live/components/RoomCard.js +243 -161
- package/lib/module/live/components/RoomCard.js.map +1 -1
- package/lib/typescript/commonjs/live/components/RoomCard.d.ts +18 -0
- package/lib/typescript/commonjs/live/components/RoomCard.d.ts.map +1 -1
- package/lib/typescript/module/live/components/RoomCard.d.ts +18 -0
- package/lib/typescript/module/live/components/RoomCard.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/live/components/RoomCard.tsx +202 -129
|
@@ -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
|
|
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
|
|
28
|
-
function
|
|
29
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
-
//
|
|
142
|
+
// Speaker faces only earn their space on the featured (live) card.
|
|
92
143
|
const speakerIds = useMemo(() => {
|
|
93
|
-
if (
|
|
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
|
|
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
|
|
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: [
|
|
117
|
-
className: "mb-1
|
|
118
|
-
|
|
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
|
|
135
|
-
children: [/*#__PURE__*/
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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-[
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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-[
|
|
242
|
+
className: "flex-1 text-[13px] text-muted-foreground",
|
|
154
243
|
numberOfLines: 1,
|
|
155
|
-
children:
|
|
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
|
-
// ---
|
|
265
|
+
// --- Compact row: a SCHEDULED or ENDED room, flush in the feed ---
|
|
162
266
|
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
163
|
-
className: "w-full gap-
|
|
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: [
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
children:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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
|
-
|
|
217
|
-
|
|
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
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
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
|
|
276
|
-
|
|
356
|
+
function MenuAction({
|
|
357
|
+
onMenuPress,
|
|
358
|
+
theme
|
|
277
359
|
}) {
|
|
278
|
-
return /*#__PURE__*/
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
children:
|
|
284
|
-
name:
|
|
285
|
-
size:
|
|
286
|
-
color:
|
|
287
|
-
})
|
|
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
|
|
373
|
+
// --- Speaker stack (featured card only) ---
|
|
298
374
|
|
|
299
|
-
function
|
|
375
|
+
function SpeakerStack({
|
|
300
376
|
speakerIds,
|
|
301
|
-
|
|
377
|
+
hiddenCount
|
|
302
378
|
}) {
|
|
379
|
+
if (speakerIds.length === 0) return null;
|
|
303
380
|
return /*#__PURE__*/_jsxs(View, {
|
|
304
|
-
className: "flex-row items-center
|
|
305
|
-
children: [speakerIds.map(id => /*#__PURE__*/_jsx(
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
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
|
|
311
|
-
height: SPEAKER_AVATAR_SIZE
|
|
390
|
+
width: SPEAKER_AVATAR_SIZE,
|
|
391
|
+
height: SPEAKER_AVATAR_SIZE
|
|
312
392
|
},
|
|
313
393
|
children: /*#__PURE__*/_jsxs(Text, {
|
|
314
|
-
className: "text-
|
|
315
|
-
children: ["+", formatCompact(
|
|
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-
|
|
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":"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","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;
|
|
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;
|
|
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"}
|