Spaces:
Sleeping
Sleeping
Resolve merge conflicts
Browse files- demo/src/lib/index.ts +0 -34
- demo/src/lib/settings.svelte.ts +0 -9
- demo/src/routes/+page.svelte +1 -3
- demo/src/routes/[workspaceId]/+page.svelte +0 -9
- demo/src/routes/[workspaceId]/robotics/+page.svelte +0 -4
- demo/src/routes/[workspaceId]/robotics/consumer/+page.svelte +0 -5
- demo/src/routes/[workspaceId]/robotics/producer/+page.svelte +0 -9
- demo/src/routes/[workspaceId]/video/+page.svelte +0 -5
- demo/src/routes/[workspaceId]/video/consumer/+page.svelte +3 -6
- demo/src/routes/[workspaceId]/video/producer/+page.svelte +2 -3
demo/src/lib/index.ts
CHANGED
@@ -1,35 +1 @@
|
|
1 |
// place files you want to import through the `$lib` alias in this folder.
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Get the server URL based on environment variables and dev/prod mode
|
5 |
-
* Priority: ENV variable > dev mode (localhost:8000) > prod mode (HF Space)
|
6 |
-
*/
|
7 |
-
export function getServerUrl(): string {
|
8 |
-
// Check for environment variable first
|
9 |
-
if (typeof window !== 'undefined') {
|
10 |
-
// Client-side: check for runtime environment variable
|
11 |
-
const envUrl = (window as any).__SERVER_URL__;
|
12 |
-
if (envUrl) {
|
13 |
-
return envUrl;
|
14 |
-
}
|
15 |
-
} else {
|
16 |
-
// Server-side: check for build-time environment variable
|
17 |
-
const envUrl = process.env.PUBLIC_SERVER_URL;
|
18 |
-
if (envUrl) {
|
19 |
-
return envUrl;
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
// Fall back to dev/prod detection
|
24 |
-
if (typeof window !== 'undefined') {
|
25 |
-
// Client-side: check if we're in development
|
26 |
-
const isDev = window.location.hostname === 'localhost' ||
|
27 |
-
window.location.hostname === '127.0.0.1' ||
|
28 |
-
window.location.hostname.startsWith('192.168.');
|
29 |
-
|
30 |
-
return isDev ? 'http://localhost:8000' : 'https://blanchon-robottransportserver.hf.space/api';
|
31 |
-
}
|
32 |
-
|
33 |
-
// Server-side fallback
|
34 |
-
return 'http://localhost:8000';
|
35 |
-
}
|
|
|
1 |
// place files you want to import through the `$lib` alias in this folder.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
demo/src/lib/settings.svelte.ts
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
import { getServerUrl } from './index.js';
|
2 |
-
|
3 |
-
interface Settings {
|
4 |
-
transportServerUrl: string;
|
5 |
-
}
|
6 |
-
|
7 |
-
export const settings: Settings = $state({
|
8 |
-
transportServerUrl: getServerUrl()
|
9 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
demo/src/routes/+page.svelte
CHANGED
@@ -3,8 +3,6 @@
|
|
3 |
import { robotics } from '@robothub/transport-server-client';
|
4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
5 |
import { goto } from '$app/navigation';
|
6 |
-
import { settings } from '$lib/settings.svelte.js';
|
7 |
-
|
8 |
|
9 |
// Server status
|
10 |
let serverStatus = $state<'checking' | 'connected' | 'error'>('checking');
|
@@ -32,7 +30,7 @@
|
|
32 |
|
33 |
try {
|
34 |
// Use the configured server URL
|
35 |
-
const client = new robotics.RoboticsClientCore(
|
36 |
const roomList = await client.listRooms('');
|
37 |
rooms = roomList;
|
38 |
serverInfo = { rooms: roomList.length, version: '1.0.0' };
|
|
|
3 |
import { robotics } from '@robothub/transport-server-client';
|
4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
5 |
import { goto } from '$app/navigation';
|
|
|
|
|
6 |
|
7 |
// Server status
|
8 |
let serverStatus = $state<'checking' | 'connected' | 'error'>('checking');
|
|
|
30 |
|
31 |
try {
|
32 |
// Use the configured server URL
|
33 |
+
const client = new robotics.RoboticsClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
34 |
const roomList = await client.listRooms('');
|
35 |
rooms = roomList;
|
36 |
serverInfo = { rooms: roomList.length, version: '1.0.0' };
|
demo/src/routes/[workspaceId]/+page.svelte
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<script lang="ts">
|
2 |
-
import { settings } from '$lib/settings.svelte.js';
|
3 |
import { onMount } from 'svelte';
|
4 |
import { robotics, video } from '@robothub/transport-server-client';
|
5 |
import type { robotics as roboticsTypes, video as videoTypes } from '@robothub/transport-server-client';
|
@@ -43,11 +42,7 @@
|
|
43 |
|
44 |
// Load robotics rooms
|
45 |
try {
|
46 |
-
<<<<<<< HEAD
|
47 |
roboticsClient = new robotics.RoboticsClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
48 |
-
=======
|
49 |
-
roboticsClient = new robotics.RoboticsClientCore(settings.transportServerUrl);
|
50 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
51 |
roboticsRooms = await roboticsClient.listRooms(workspaceId);
|
52 |
} catch (err) {
|
53 |
roboticsError = 'Failed to load robotics rooms';
|
@@ -56,11 +51,7 @@
|
|
56 |
|
57 |
// Load video rooms
|
58 |
try {
|
59 |
-
<<<<<<< HEAD
|
60 |
videoClient = new video.VideoClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
61 |
-
=======
|
62 |
-
videoClient = new video.VideoClientCore(settings.transportServerUrl);
|
63 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
64 |
videoRooms = await videoClient.listRooms(workspaceId);
|
65 |
} catch (err) {
|
66 |
videoError = 'Failed to load video rooms';
|
|
|
1 |
<script lang="ts">
|
|
|
2 |
import { onMount } from 'svelte';
|
3 |
import { robotics, video } from '@robothub/transport-server-client';
|
4 |
import type { robotics as roboticsTypes, video as videoTypes } from '@robothub/transport-server-client';
|
|
|
42 |
|
43 |
// Load robotics rooms
|
44 |
try {
|
|
|
45 |
roboticsClient = new robotics.RoboticsClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
46 |
roboticsRooms = await roboticsClient.listRooms(workspaceId);
|
47 |
} catch (err) {
|
48 |
roboticsError = 'Failed to load robotics rooms';
|
|
|
51 |
|
52 |
// Load video rooms
|
53 |
try {
|
|
|
54 |
videoClient = new video.VideoClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
55 |
videoRooms = await videoClient.listRooms(workspaceId);
|
56 |
} catch (err) {
|
57 |
videoError = 'Failed to load video rooms';
|
demo/src/routes/[workspaceId]/robotics/+page.svelte
CHANGED
@@ -43,11 +43,7 @@
|
|
43 |
try {
|
44 |
loading = true;
|
45 |
error = '';
|
46 |
-
<<<<<<< HEAD
|
47 |
client = new robotics.RoboticsClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
48 |
-
=======
|
49 |
-
client = new robotics.RoboticsClientCore(settings.transportServerUrl);
|
50 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
51 |
rooms = await client.listRooms(workspaceId);
|
52 |
debugInfo.responseTime = Date.now() - startTime;
|
53 |
} catch (err) {
|
|
|
43 |
try {
|
44 |
loading = true;
|
45 |
error = '';
|
|
|
46 |
client = new robotics.RoboticsClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
47 |
rooms = await client.listRooms(workspaceId);
|
48 |
debugInfo.responseTime = Date.now() - startTime;
|
49 |
} catch (err) {
|
demo/src/routes/[workspaceId]/robotics/consumer/+page.svelte
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<script lang="ts">
|
2 |
-
import { settings } from '$lib/settings.svelte.js';
|
3 |
import { onMount } from 'svelte';
|
4 |
import { robotics } from '@robothub/transport-server-client';
|
5 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
@@ -72,11 +71,7 @@
|
|
72 |
connecting = true;
|
73 |
error = '';
|
74 |
|
75 |
-
<<<<<<< HEAD
|
76 |
consumer = new robotics.RoboticsConsumer('https://blanchon-robothub-transportserver.hf.space/api');
|
77 |
-
=======
|
78 |
-
consumer = new robotics.RoboticsConsumer(settings.transportServerUrl);
|
79 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
80 |
|
81 |
// Set up event handlers
|
82 |
consumer.onConnected(() => {
|
|
|
1 |
<script lang="ts">
|
|
|
2 |
import { onMount } from 'svelte';
|
3 |
import { robotics } from '@robothub/transport-server-client';
|
4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
|
|
71 |
connecting = true;
|
72 |
error = '';
|
73 |
|
|
|
74 |
consumer = new robotics.RoboticsConsumer('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
75 |
|
76 |
// Set up event handlers
|
77 |
consumer.onConnected(() => {
|
demo/src/routes/[workspaceId]/robotics/producer/+page.svelte
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<script lang="ts">
|
2 |
-
import { settings } from '$lib/settings.svelte.js';
|
3 |
import { onMount } from 'svelte';
|
4 |
import { robotics } from '@robothub/transport-server-client';
|
5 |
|
@@ -100,11 +99,7 @@
|
|
100 |
connecting = true;
|
101 |
error = '';
|
102 |
|
103 |
-
<<<<<<< HEAD
|
104 |
producer = new robotics.RoboticsProducer('https://blanchon-robothub-transportserver.hf.space/api');
|
105 |
-
=======
|
106 |
-
producer = new robotics.RoboticsProducer(settings.transportServerUrl);
|
107 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
108 |
|
109 |
producer.onConnected(() => {
|
110 |
connected = true;
|
@@ -144,11 +139,7 @@
|
|
144 |
connecting = true;
|
145 |
error = '';
|
146 |
|
147 |
-
<<<<<<< HEAD
|
148 |
producer = new robotics.RoboticsProducer('https://blanchon-robothub-transportserver.hf.space/api');
|
149 |
-
=======
|
150 |
-
producer = new robotics.RoboticsProducer(settings.transportServerUrl);
|
151 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
152 |
|
153 |
producer.onConnected(() => {
|
154 |
connected = true;
|
|
|
1 |
<script lang="ts">
|
|
|
2 |
import { onMount } from 'svelte';
|
3 |
import { robotics } from '@robothub/transport-server-client';
|
4 |
|
|
|
99 |
connecting = true;
|
100 |
error = '';
|
101 |
|
|
|
102 |
producer = new robotics.RoboticsProducer('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
103 |
|
104 |
producer.onConnected(() => {
|
105 |
connected = true;
|
|
|
139 |
connecting = true;
|
140 |
error = '';
|
141 |
|
|
|
142 |
producer = new robotics.RoboticsProducer('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
143 |
|
144 |
producer.onConnected(() => {
|
145 |
connected = true;
|
demo/src/routes/[workspaceId]/video/+page.svelte
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<script lang="ts">
|
2 |
-
import { settings } from '$lib/settings.svelte.js';
|
3 |
import { onMount } from 'svelte';
|
4 |
import { video } from '@robothub/transport-server-client';
|
5 |
import type { video as videoTypes } from '@robothub/transport-server-client';
|
@@ -44,11 +43,7 @@
|
|
44 |
try {
|
45 |
loading = true;
|
46 |
error = '';
|
47 |
-
<<<<<<< HEAD
|
48 |
client = new video.VideoClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
49 |
-
=======
|
50 |
-
client = new video.VideoClientCore(settings.transportServerUrl);
|
51 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
52 |
rooms = await client.listRooms(workspaceId);
|
53 |
debugInfo.responseTime = Date.now() - startTime;
|
54 |
} catch (err) {
|
|
|
1 |
<script lang="ts">
|
|
|
2 |
import { onMount } from 'svelte';
|
3 |
import { video } from '@robothub/transport-server-client';
|
4 |
import type { video as videoTypes } from '@robothub/transport-server-client';
|
|
|
43 |
try {
|
44 |
loading = true;
|
45 |
error = '';
|
|
|
46 |
client = new video.VideoClientCore('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
47 |
rooms = await client.listRooms(workspaceId);
|
48 |
debugInfo.responseTime = Date.now() - startTime;
|
49 |
} catch (err) {
|
demo/src/routes/[workspaceId]/video/consumer/+page.svelte
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<script lang="ts">
|
2 |
-
import { settings } from '$lib/settings.svelte.js';
|
3 |
import { onMount } from 'svelte';
|
4 |
import { video } from '@robothub/transport-server-client';
|
5 |
|
@@ -19,7 +18,7 @@
|
|
19 |
|
20 |
// Remote video stream
|
21 |
let remoteVideoStream = $state<MediaStream | null>(null);
|
22 |
-
let remoteVideoRef: HTMLVideoElement;
|
23 |
|
24 |
// Stream status
|
25 |
let streamActive = $state<boolean>(false);
|
@@ -80,11 +79,7 @@
|
|
80 |
connecting = true;
|
81 |
error = '';
|
82 |
|
83 |
-
<<<<<<< HEAD
|
84 |
consumer = new video.VideoConsumer('https://blanchon-robothub-transportserver.hf.space/api');
|
85 |
-
=======
|
86 |
-
consumer = new video.VideoConsumer(settings.transportServerUrl);
|
87 |
-
>>>>>>> ccb03a313c3f3278e408a849294738a50b7ec4d0
|
88 |
|
89 |
// Set up event handlers
|
90 |
consumer.onConnected(() => {
|
@@ -259,6 +254,7 @@
|
|
259 |
remoteVideoRef.play().catch((err) => {
|
260 |
console.warn('Auto-play failed:', err);
|
261 |
// Try to play with user gesture required
|
|
|
262 |
remoteVideoRef.muted = true;
|
263 |
remoteVideoRef.play().catch((err2) => {
|
264 |
console.error('Failed to play video even when muted:', err2);
|
@@ -514,6 +510,7 @@
|
|
514 |
{#if streamActive && remoteVideoRef}
|
515 |
<button
|
516 |
onclick={() => {
|
|
|
517 |
if (remoteVideoRef.requestFullscreen) {
|
518 |
remoteVideoRef.requestFullscreen();
|
519 |
}
|
|
|
1 |
<script lang="ts">
|
|
|
2 |
import { onMount } from 'svelte';
|
3 |
import { video } from '@robothub/transport-server-client';
|
4 |
|
|
|
18 |
|
19 |
// Remote video stream
|
20 |
let remoteVideoStream = $state<MediaStream | null>(null);
|
21 |
+
let remoteVideoRef: HTMLVideoElement | null = $state(null);
|
22 |
|
23 |
// Stream status
|
24 |
let streamActive = $state<boolean>(false);
|
|
|
79 |
connecting = true;
|
80 |
error = '';
|
81 |
|
|
|
82 |
consumer = new video.VideoConsumer('https://blanchon-robothub-transportserver.hf.space/api');
|
|
|
|
|
|
|
83 |
|
84 |
// Set up event handlers
|
85 |
consumer.onConnected(() => {
|
|
|
254 |
remoteVideoRef.play().catch((err) => {
|
255 |
console.warn('Auto-play failed:', err);
|
256 |
// Try to play with user gesture required
|
257 |
+
if (!remoteVideoRef) return;
|
258 |
remoteVideoRef.muted = true;
|
259 |
remoteVideoRef.play().catch((err2) => {
|
260 |
console.error('Failed to play video even when muted:', err2);
|
|
|
510 |
{#if streamActive && remoteVideoRef}
|
511 |
<button
|
512 |
onclick={() => {
|
513 |
+
if (!remoteVideoRef) return;
|
514 |
if (remoteVideoRef.requestFullscreen) {
|
515 |
remoteVideoRef.requestFullscreen();
|
516 |
}
|
demo/src/routes/[workspaceId]/video/producer/+page.svelte
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<script lang="ts">
|
2 |
-
import { settings } from '$lib/settings.svelte.js';
|
3 |
import { onMount } from 'svelte';
|
4 |
import { video } from '@robothub/transport-server-client';
|
5 |
|
@@ -131,7 +130,7 @@
|
|
131 |
connecting = true;
|
132 |
error = '';
|
133 |
|
134 |
-
producer = new video.VideoProducer(
|
135 |
|
136 |
producer.onConnected(() => {
|
137 |
connected = true;
|
@@ -195,7 +194,7 @@
|
|
195 |
connecting = true;
|
196 |
error = '';
|
197 |
|
198 |
-
producer = new video.VideoProducer(
|
199 |
|
200 |
producer.onConnected(() => {
|
201 |
connected = true;
|
|
|
1 |
<script lang="ts">
|
|
|
2 |
import { onMount } from 'svelte';
|
3 |
import { video } from '@robothub/transport-server-client';
|
4 |
|
|
|
130 |
connecting = true;
|
131 |
error = '';
|
132 |
|
133 |
+
producer = new video.VideoProducer("https://blanchon-robothub-transportserver.hf.space/api");
|
134 |
|
135 |
producer.onConnected(() => {
|
136 |
connected = true;
|
|
|
194 |
connecting = true;
|
195 |
error = '';
|
196 |
|
197 |
+
producer = new video.VideoProducer('https://blanchon-robothub-transportserver.hf.space/api');
|
198 |
|
199 |
producer.onConnected(() => {
|
200 |
connected = true;
|