@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/LICENSE +21 -0
- package/README.md +24 -2
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/room.d.ts +186 -0
- package/dist/core/room.js +1236 -0
- package/dist/core/room.js.map +1 -0
- package/dist/core/session.d.ts +64 -0
- package/dist/core/session.js +229 -0
- package/dist/core/session.js.map +1 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.js +246 -0
- package/dist/index.js.map +1 -0
- package/package.json +60 -4
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.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
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
|
+
}
|