@appsocom/react-native 0.0.0-stage → 0.5.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/dist/index.js ADDED
@@ -0,0 +1,246 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * @appsocom/react-native: video calls in React Native apps, on react-native-webrtc.
4
+ *
5
+ * import { VideoConference } from "@appsocom/react-native";
6
+ * <VideoConference url="https://video.example.com" token={token} />
7
+ *
8
+ * Or build your own UI with <SfuRoom> + the hooks (the same hooks as @appsocom/react).
9
+ */
10
+ import { useEffect, useMemo, useRef, useState } from "react";
11
+ import { FlatList, PermissionsAndroid, Platform, Pressable, StyleSheet, Text, TextInput, View, } from "react-native";
12
+ import { MediaStream, RTCPeerConnection, RTCView, mediaDevices } from "react-native-webrtc";
13
+ import { RoomProvider, initials, useAudioFallback, useChat, useConnectionQuality, useConnectionState, useIsSpeaking, useJoin, useLocalParticipant, useLocalTrack, useParticipants, useRaisedHands, useRoom, useRoomState, useTrack, } from "@appsocom/react/hooks";
14
+ import { joinNativeRoom, NativeRoom } from "./core/room.js";
15
+ export * from "@appsocom/react/hooks";
16
+ export { NativeRoom, joinNativeRoom, decodeClaims, TOKEN_HEADER, SfuSession, } from "./core/index.js";
17
+ const webrtc = { RTCPeerConnection, MediaStream, mediaDevices };
18
+ /** Join a room with react-native-webrtc. Resolves once you're in. */
19
+ export function joinRoom(options) {
20
+ return joinNativeRoom({ ...options, webrtc });
21
+ }
22
+ /**
23
+ * Ask for camera + microphone access (Android shows the system dialog; on iOS
24
+ * the dialog appears on first use, using the Info.plist usage strings).
25
+ * Returns true if both were granted.
26
+ */
27
+ export async function requestMediaPermissions() {
28
+ if (Platform.OS !== "android")
29
+ return true;
30
+ const res = await PermissionsAndroid.requestMultiple([
31
+ PermissionsAndroid.PERMISSIONS.CAMERA,
32
+ PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
33
+ ]);
34
+ return Object.values(res).every((r) => r === PermissionsAndroid.RESULTS.GRANTED);
35
+ }
36
+ // ---------------------------------------------------------------- theme
37
+ export const theme = {
38
+ bg: "#111318",
39
+ surface: "#1d2028",
40
+ surface2: "#2a2e39",
41
+ text: "#f2f3f5",
42
+ muted: "#a3a8b5",
43
+ accent: "#4f8cff",
44
+ danger: "#e5484d",
45
+ speaking: "#3ecf8e",
46
+ };
47
+ // ---------------------------------------------------------------- media
48
+ /** Shows one video track. */
49
+ export function VideoView({ track, mirror = false, objectFit = "cover", style, zOrder, }) {
50
+ const url = useMemo(() => {
51
+ if (!track)
52
+ return undefined;
53
+ const stream = new MediaStream([track]);
54
+ return stream.toURL();
55
+ }, [track]);
56
+ if (!url)
57
+ return null;
58
+ return _jsx(RTCView, { streamURL: url, mirror: mirror, objectFit: objectFit, zOrder: zOrder, style: [StyleSheet.absoluteFill, style] });
59
+ }
60
+ // ---------------------------------------------------------------- tiles
61
+ const QUALITY_BARS = { excellent: 3, good: 2, poor: 1, lost: 0 };
62
+ /** One participant: video (or initials), name, mic state, speaking border, quality. */
63
+ export function ParticipantTile({ participant, local = !participant, style, moderation = true, onLongPress }) {
64
+ const room = useRoom();
65
+ const me = useLocalParticipant();
66
+ const p = local ? me.self : participant;
67
+ const remoteTrack = useTrack(local ? undefined : p?.id, "video");
68
+ const localTrack = useLocalTrack("video");
69
+ const track = local ? localTrack : remoteTrack;
70
+ const state = local ? me.state : p?.state;
71
+ const speaking = useIsSpeaking(p?.id);
72
+ const quality = useConnectionQuality(p?.id);
73
+ const hands = useRaisedHands();
74
+ const [menu, setMenu] = useState(false);
75
+ if (!p)
76
+ return null;
77
+ const handUp = hands.some((h) => h.userId === p.userId);
78
+ const videoOn = !!state?.cameraOn && !state?.videoPaused && !state?.audioOnly && !!track;
79
+ const canModerate = moderation && !local && me.permissions.moderate;
80
+ return (_jsxs(Pressable, { style: [styles.tile, speaking && styles.speaking, style], onLongPress: () => (onLongPress ? onLongPress(p) : canModerate && setMenu(true)), testID: `tile-${p.userId}`, accessibilityLabel: `${p.name}${state?.micOn ? "" : ", muted"}`, children: [videoOn ? (_jsx(VideoView, { track: track, mirror: local })) : (_jsx(View, { style: styles.avatarWrap, children: _jsx(View, { style: styles.avatar, children: _jsx(Text, { style: styles.avatarText, children: initials(p.name || p.userId) }) }) })), _jsxs(View, { style: styles.tileBar, children: [!state?.micOn && _jsx(Text, { style: [styles.badge, { color: theme.danger }], children: "\uD83D\uDD07" }), handUp && _jsx(Text, { style: styles.badge, children: "\u270B" }), _jsx(Text, { numberOfLines: 1, style: [styles.badge, styles.name], children: local ? `${p.name || "You"} (you)` : p.name || p.userId }), quality && (_jsx(Text, { style: [styles.badge, { color: quality === "poor" || quality === "lost" ? "#f5a524" : theme.speaking }], children: "▮".repeat(QUALITY_BARS[quality]) || "×" }))] }), menu && (_jsxs(View, { style: styles.menu, children: [room.mute && p.state.micOn && _jsx(MenuItem, { label: "Mute", onPress: () => (room.mute(p.userId, ["mic"]), setMenu(false)) }), room.mute && p.state.cameraOn && (_jsx(MenuItem, { label: "Stop camera", onPress: () => (room.mute(p.userId, ["camera"]), setMenu(false)) })), room.lowerHand && handUp && _jsx(MenuItem, { label: "Lower hand", onPress: () => (room.lowerHand(p.userId), setMenu(false)) }), room.remove && _jsx(MenuItem, { label: "Remove", danger: true, onPress: () => (room.remove(p.userId), setMenu(false)) }), _jsx(MenuItem, { label: "Cancel", onPress: () => setMenu(false) })] }))] }));
81
+ }
82
+ function MenuItem({ label, onPress, danger }) {
83
+ return (_jsx(Pressable, { onPress: onPress, style: styles.menuItem, accessibilityRole: "button", children: _jsx(Text, { style: { color: danger ? theme.danger : theme.text }, children: label }) }));
84
+ }
85
+ // ---------------------------------------------------------------- grid
86
+ /** Everyone's video in a grid that fits the space (spotlighted people first). */
87
+ export function VideoGrid({ includeLocal = true, style }) {
88
+ const participants = useParticipants();
89
+ const { self } = useLocalParticipant();
90
+ const roomState = useRoomState();
91
+ const [size, setSize] = useState({ w: 0, h: 0 });
92
+ const spotlight = roomState?.spotlight ?? [];
93
+ const items = [
94
+ ...(includeLocal && self ? [{ key: "local", local: true }] : []),
95
+ ...participants.filter((p) => p.kind !== "bot").map((p) => ({ key: p.id, p, local: false })),
96
+ ].sort((a, b) => {
97
+ const sa = spotlight.indexOf(a.local ? self?.userId ?? "" : a.p.userId);
98
+ const sb = spotlight.indexOf(b.local ? self?.userId ?? "" : b.p.userId);
99
+ return (sa < 0 ? 99 : sa) - (sb < 0 ? 99 : sb);
100
+ });
101
+ const n = Math.max(1, items.length);
102
+ // Pick the column count that gives the biggest tiles.
103
+ let cols = 1;
104
+ let best = 0;
105
+ for (let c = 1; c <= n; c++) {
106
+ const rows = Math.ceil(n / c);
107
+ const w = size.w / c;
108
+ const h = size.h / rows;
109
+ const tile = Math.min(w, (h * 16) / 9);
110
+ if (tile > best) {
111
+ best = tile;
112
+ cols = c;
113
+ }
114
+ }
115
+ const rows = Math.ceil(n / cols);
116
+ const tileH = rows > 3 ? (size.w / cols) * 0.75 : size.h / rows;
117
+ return (_jsx(View, { style: [{ flex: 1 }, style], onLayout: (e) => setSize({ w: e.nativeEvent.layout.width, h: e.nativeEvent.layout.height }), children: size.w > 0 && (_jsx(FlatList, { data: items, numColumns: cols, keyExtractor: (it) => it.key, scrollEnabled: rows > 3, renderItem: ({ item }) => (_jsx(View, { style: { width: size.w / cols, height: tileH, padding: 3 }, children: _jsx(ParticipantTile, { participant: item.p, local: item.local }) })) }, cols)) }));
118
+ }
119
+ // ---------------------------------------------------------------- controls
120
+ function RoundButton({ label, icon, onPress, active, off, danger, testID, }) {
121
+ return (_jsx(Pressable, { onPress: onPress, accessibilityRole: "button", accessibilityLabel: label, accessibilityState: { selected: !!active }, testID: testID, style: [styles.btn, active && { backgroundColor: theme.accent }, (off || danger) && { backgroundColor: theme.danger }], children: _jsx(Text, { style: styles.btnIcon, children: icon }) }));
122
+ }
123
+ /** Mic, camera, flip camera, raise hand, chat, leave. */
124
+ export function ControlBar({ onLeave, onToggleChat, style, children, }) {
125
+ const room = useRoom();
126
+ const { state, permissions, self } = useLocalParticipant();
127
+ const hands = useRaisedHands();
128
+ const handUp = !!self && hands.some((h) => h.userId === self.userId);
129
+ return (_jsxs(View, { style: [styles.controls, style], children: [permissions.mic && (_jsx(RoundButton, { testID: "control-mic", label: state.micOn ? "Mute microphone" : "Unmute microphone", icon: state.micOn ? "🎙️" : "🔇", off: !state.micOn, onPress: () => room.toggleMic() })), permissions.camera && (_jsx(RoundButton, { testID: "control-camera", label: state.cameraOn ? "Turn camera off" : "Turn camera on", icon: state.cameraOn ? "📷" : "🚫", off: !state.cameraOn, onPress: () => room.toggleCamera() })), permissions.camera && state.cameraOn && room.switchCamera && (_jsx(RoundButton, { testID: "control-flip", label: "Switch camera", icon: "\uD83D\uDD04", onPress: () => room.switchCamera() })), room.raiseHand && !permissions.moderate && (_jsx(RoundButton, { testID: "control-hand", label: handUp ? "Lower hand" : "Raise hand", icon: "\u270B", active: handUp, onPress: () => (handUp ? room.lowerHand?.() : room.raiseHand?.()) })), onToggleChat && _jsx(RoundButton, { testID: "control-chat", label: "Chat", icon: "\uD83D\uDCAC", onPress: onToggleChat }), children, _jsx(RoundButton, { testID: "control-leave", label: "Leave call", icon: "\uD83D\uDCDE", danger: true, onPress: () => {
130
+ room.leave("left");
131
+ onLeave?.();
132
+ } })] }));
133
+ }
134
+ /** "Reconnecting…" banner, or a note while on audio fallback. */
135
+ export function ConnectionBanner() {
136
+ const state = useConnectionState();
137
+ const fallback = useAudioFallback();
138
+ const msg = state === "reconnecting" ? "Reconnecting…" : fallback ? "Weak connection: audio only for now" : null;
139
+ if (!msg)
140
+ return null;
141
+ return (_jsx(View, { style: styles.banner, accessibilityLiveRegion: "polite", children: _jsx(Text, { style: { color: "#111" }, children: msg }) }));
142
+ }
143
+ /** Simple chat panel. */
144
+ export function ChatPanel({ style }) {
145
+ const { messages, send, enabled } = useChat();
146
+ const { permissions } = useLocalParticipant();
147
+ const [text, setText] = useState("");
148
+ const canSend = enabled || permissions.moderate;
149
+ return (_jsxs(View, { style: [styles.chat, style], children: [_jsx(FlatList, { data: messages, keyExtractor: (m) => m.id, renderItem: ({ item }) => (_jsxs(Text, { style: { color: theme.text, marginBottom: 4 }, children: [_jsxs(Text, { style: { fontWeight: "700" }, children: [item.fromName, " "] }), item.text] })) }), _jsx(TextInput, { style: styles.input, value: text, editable: canSend, placeholder: canSend ? "Message everyone" : "Chat is turned off", placeholderTextColor: theme.muted, onChangeText: setText, onSubmitEditing: () => {
150
+ if (text.trim())
151
+ send(text.trim());
152
+ setText("");
153
+ }, returnKeyType: "send" })] }));
154
+ }
155
+ /** Camera preview with mic/camera toggles and a front/back switch. */
156
+ export function PreJoin({ onSubmit, joinLabel = "Join", defaults, }) {
157
+ const [c, setC] = useState({ audio: true, video: true, facingMode: "user", ...defaults });
158
+ const [track, setTrack] = useState(null);
159
+ const [error, setError] = useState(null);
160
+ useEffect(() => {
161
+ if (!c.video)
162
+ return setTrack(null);
163
+ let alive = true;
164
+ let t = null;
165
+ void requestMediaPermissions()
166
+ .then(() => mediaDevices.getUserMedia({ video: { facingMode: c.facingMode }, audio: false }))
167
+ .then((s) => {
168
+ t = s.getVideoTracks()[0] ?? null;
169
+ if (!alive)
170
+ return t?.stop();
171
+ setTrack(t);
172
+ })
173
+ .catch((e) => alive && setError(e.message || "Camera unavailable"));
174
+ return () => {
175
+ alive = false;
176
+ t?.stop();
177
+ };
178
+ }, [c.video, c.facingMode]);
179
+ return (_jsxs(View, { style: styles.prejoin, children: [_jsx(View, { style: styles.preview, children: c.video && track ? (_jsx(VideoView, { track: track, mirror: c.facingMode === "user" })) : (_jsx(View, { style: styles.avatarWrap, children: _jsx(Text, { style: { color: theme.muted }, children: c.video ? "Starting camera…" : "Camera off" }) })) }), error && _jsx(Text, { style: { color: theme.danger }, children: error }), _jsxs(View, { style: styles.controls, children: [_jsx(RoundButton, { testID: "prejoin-mic", label: "Microphone", icon: c.audio ? "🎙️" : "🔇", off: !c.audio, onPress: () => setC({ ...c, audio: !c.audio }) }), _jsx(RoundButton, { testID: "prejoin-camera", label: "Camera", icon: c.video ? "📷" : "🚫", off: !c.video, onPress: () => setC({ ...c, video: !c.video }) }), c.video && (_jsx(RoundButton, { testID: "prejoin-flip", label: "Switch camera", icon: "\uD83D\uDD04", onPress: () => setC({ ...c, facingMode: c.facingMode === "user" ? "environment" : "user" }) }))] }), _jsx(Pressable, { style: styles.join, onPress: () => (track?.stop(), onSubmit(c)), accessibilityRole: "button", testID: "prejoin-join", children: _jsx(Text, { style: { color: "#fff", fontWeight: "700" }, children: joinLabel }) })] }));
180
+ }
181
+ /** Joins a room while mounted and provides it to the hooks/components inside. */
182
+ export function SfuRoom({ connecting, renderError, onJoined, onLeft, onError, children, ...options }) {
183
+ const { room, status, error } = useJoin(joinRoom, options, { key: `${options.url}|${options.token}` });
184
+ const cb = useRef({ onJoined, onLeft, onError });
185
+ cb.current = { onJoined, onLeft, onError };
186
+ useEffect(() => {
187
+ if (!room)
188
+ return;
189
+ const offs = [room.on("left", (r) => cb.current.onLeft?.(r)), room.on("error", (e) => cb.current.onError?.(e))];
190
+ cb.current.onJoined?.(room);
191
+ return () => offs.forEach((o) => o());
192
+ }, [room]);
193
+ useEffect(() => {
194
+ if (error)
195
+ cb.current.onError?.(error);
196
+ }, [error]);
197
+ if (status === "error" && error)
198
+ return _jsx(_Fragment, { children: renderError ? renderError(error) : _jsx(Text, { style: { color: theme.danger, padding: 16 }, children: error.message }) });
199
+ if (!room)
200
+ return _jsx(_Fragment, { children: connecting ?? _jsx(Text, { style: { color: theme.muted, padding: 16 }, children: "Connecting\u2026" }) });
201
+ return _jsx(RoomProvider, { room: room, children: children });
202
+ }
203
+ /** The whole call screen: prejoin → grid + controls + chat. */
204
+ export function VideoConference({ prejoin = true, chat = true, style, ...roomProps }) {
205
+ const [choices, setChoices] = useState(prejoin ? null : { audio: roomProps.audio ?? true, video: roomProps.video ?? true, facingMode: roomProps.facingMode ?? "user" });
206
+ const [left, setLeft] = useState(null);
207
+ const [chatOpen, setChatOpen] = useState(false);
208
+ let body;
209
+ if (left) {
210
+ body = (_jsxs(View, { style: styles.center, children: [_jsx(Text, { style: { color: theme.text, marginBottom: 12 }, children: left === "left" ? "You left the call." : `The call ended (${left}).` }), _jsx(Pressable, { style: styles.join, onPress: () => (setLeft(null), setChoices(prejoin ? null : choices)), children: _jsx(Text, { style: { color: "#fff", fontWeight: "700" }, children: "Rejoin" }) })] }));
211
+ }
212
+ else if (!choices) {
213
+ body = _jsx(PreJoin, { onSubmit: setChoices });
214
+ }
215
+ else {
216
+ body = (_jsxs(SfuRoom, { ...roomProps, audio: choices.audio, video: choices.video, facingMode: choices.facingMode, onLeft: (r) => {
217
+ setLeft(r);
218
+ roomProps.onLeft?.(r);
219
+ }, children: [_jsx(ConnectionBanner, {}), _jsx(VideoGrid, {}), chat && chatOpen && _jsx(ChatPanel, {}), _jsx(ControlBar, { onToggleChat: chat ? () => setChatOpen((o) => !o) : undefined })] }));
220
+ }
221
+ return _jsx(View, { style: [styles.conference, style], children: body });
222
+ }
223
+ const styles = StyleSheet.create({
224
+ conference: { flex: 1, backgroundColor: theme.bg },
225
+ center: { flex: 1, alignItems: "center", justifyContent: "center" },
226
+ tile: { flex: 1, borderRadius: 12, overflow: "hidden", backgroundColor: theme.surface, borderWidth: 2, borderColor: "transparent" },
227
+ speaking: { borderColor: theme.speaking },
228
+ avatarWrap: { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, alignItems: "center", justifyContent: "center" },
229
+ avatar: { minWidth: 64, height: 64, borderRadius: 32, paddingHorizontal: 12, backgroundColor: theme.surface2, alignItems: "center", justifyContent: "center" },
230
+ avatarText: { color: theme.text, fontSize: 22, fontWeight: "600" },
231
+ tileBar: { position: "absolute", left: 6, right: 6, bottom: 6, flexDirection: "row", alignItems: "center", gap: 4 },
232
+ badge: { color: theme.text, backgroundColor: "rgba(0,0,0,0.55)", borderRadius: 6, paddingHorizontal: 6, paddingVertical: 2, fontSize: 12, overflow: "hidden" },
233
+ name: { flexShrink: 1 },
234
+ menu: { position: "absolute", top: 6, right: 6, backgroundColor: theme.surface2, borderRadius: 8, padding: 4 },
235
+ menuItem: { paddingVertical: 8, paddingHorizontal: 12 },
236
+ controls: { flexDirection: "row", justifyContent: "center", flexWrap: "wrap", gap: 10, padding: 12 },
237
+ btn: { width: 52, height: 52, borderRadius: 26, backgroundColor: theme.surface2, alignItems: "center", justifyContent: "center" },
238
+ btnIcon: { fontSize: 22 },
239
+ banner: { position: "absolute", top: 8, alignSelf: "center", backgroundColor: "#f5a524", paddingHorizontal: 14, paddingVertical: 6, borderRadius: 16, zIndex: 10 },
240
+ chat: { height: 220, backgroundColor: theme.surface, margin: 6, borderRadius: 12, padding: 8 },
241
+ input: { backgroundColor: theme.bg, color: theme.text, borderRadius: 8, paddingHorizontal: 10, paddingVertical: 8, marginTop: 6 },
242
+ prejoin: { flex: 1, padding: 16, justifyContent: "center", gap: 12 },
243
+ preview: { aspectRatio: 3 / 4, maxHeight: "60%", alignSelf: "center", width: "100%", borderRadius: 12, overflow: "hidden", backgroundColor: theme.surface },
244
+ join: { backgroundColor: theme.accent, borderRadius: 10, padding: 14, alignItems: "center" },
245
+ });
246
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,62 @@
1
1
  {
2
2
  "name": "@appsocom/react-native",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.5.0",
4
+ "description": "React Native client for Appsocom Live: join rooms, camera and mic, video grid and controls (on react-native-webrtc)",
5
+ "keywords": [
6
+ "appsocom",
7
+ "video",
8
+ "calls",
9
+ "webrtc",
10
+ "sfu",
11
+ "cloudflare",
12
+ "react-native",
13
+ "mobile"
14
+ ],
15
+ "homepage": "https://docs.appsocom.dev",
16
+ "bugs": {
17
+ "url": "https://github.com/appsotechltd/appsotech-sfu/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/appsotechltd/appsotech-sfu.git",
22
+ "directory": "packages/react-native"
23
+ },
24
+ "license": "MIT",
25
+ "author": "Appsotech Limited",
26
+ "type": "module",
27
+ "main": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "react-native": "./dist/index.js",
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "default": "./dist/index.js"
34
+ },
35
+ "./core": {
36
+ "types": "./dist/core/index.d.ts",
37
+ "default": "./dist/core/index.js"
38
+ }
39
+ },
40
+ "files": [
41
+ "dist",
42
+ "README.md",
43
+ "LICENSE"
44
+ ],
45
+ "scripts": {
46
+ "build": "tsc -p tsconfig.json",
47
+ "typecheck": "tsc -p tsconfig.json --noEmit"
48
+ },
49
+ "dependencies": {
50
+ "@appsocom/client": "0.5.0",
51
+ "@appsocom/protocol": "0.5.0",
52
+ "@appsocom/react": "0.5.0"
53
+ },
54
+ "peerDependencies": {
55
+ "react": ">=18",
56
+ "react-native": ">=0.73",
57
+ "react-native-webrtc": ">=118"
58
+ },
59
+ "publishConfig": {
60
+ "access": "public"
61
+ }
62
+ }