diff --git a/api/fishjam-server b/api/fishjam-server index a327dd14..80b73b6b 160000 --- a/api/fishjam-server +++ b/api/fishjam-server @@ -1 +1 @@ -Subproject commit a327dd1400839f6f2ac0a72e411535c05082d08e +Subproject commit 80b73b6bf84fc37e874ff120f0d37045ad0d6ed9 diff --git a/api/protos b/api/protos index 80c65b54..244345c4 160000 --- a/api/protos +++ b/api/protos @@ -1 +1 @@ -Subproject commit 80c65b540df739f10000451b3faceb066fbaa0b3 +Subproject commit 244345c478e8cec97b5603268e16eb831a54e0df diff --git a/api/room-manager b/api/room-manager index 31836f4e..94c2b0b3 160000 --- a/api/room-manager +++ b/api/room-manager @@ -1 +1 @@ -Subproject commit 31836f4ed6c8551b3892cea50d2872cdf2292e71 +Subproject commit 94c2b0b3b21624d251d666b2000d514eccaad08b diff --git a/docs/examples/react-native.mdx b/docs/examples/react-native.mdx index a74dd90b..2ab0f52f 100644 --- a/docs/examples/react-native.mdx +++ b/docs/examples/react-native.mdx @@ -177,4 +177,4 @@ Browse the full source: [video-player on GitHub](https://github.com/fishjam-clou - Follow the [React Native Quick Start](../tutorials/react-native-quick-start) if you haven't set up a project yet - Learn how to [handle screen sharing](../how-to/client/screensharing) - Learn how to [implement background streaming](../how-to/client/background-streaming) -- Learn how to [work with data channels](../how-to/client/data-channels) +- Learn how to [work with data channels](../explanation/data-channels) diff --git a/docs/examples/react.mdx b/docs/examples/react.mdx index d7e5f3c1..070f8bb1 100644 --- a/docs/examples/react.mdx +++ b/docs/examples/react.mdx @@ -188,5 +188,5 @@ Browse the full source: [fishjam-chat on GitHub](https://github.com/fishjam-clou ## Next steps - Follow the [React Quick Start](../tutorials/react-quick-start) if you haven't set up a project yet -- Learn how to [work with data channels](../how-to/client/data-channels) +- Learn how to [work with data channels](../explanation/data-channels) - Learn how to [implement screen sharing](../how-to/client/screensharing) diff --git a/docs/how-to/client/background-streaming.mdx b/docs/how-to/client/background-streaming.mdx index c2829df4..4845d7c7 100644 --- a/docs/how-to/client/background-streaming.mdx +++ b/docs/how-to/client/background-streaming.mdx @@ -140,7 +140,7 @@ On iOS, background calls are achieved through CallKit integration. You can use t ### Manual CallKit Management -Use the [`useCallKit`](../../api/mobile/variables/useCallKit) hook for fine-grained control over CallKit sessions: +Use the [`useCallKit`](../../api/mobile/functions/useCallKit) hook for fine-grained control over CallKit sessions: ```tsx import { useCallKit } from "@fishjam-cloud/react-native-client"; @@ -165,7 +165,7 @@ const handleLeaveRoom = async () => { ### Automatic CallKit Management -Use the [`useCallKitService`](../../api/mobile/variables/useCallKitService) hook for automatic session lifecycle management: +Use the [`useCallKitService`](../../api/mobile/functions/useCallKitService) hook for automatic session lifecycle management: ```tsx import React from "react"; @@ -186,7 +186,7 @@ function CallScreen({ username }: { username: string }) { ### Listening to CallKit Events -Use the [`useCallKitEvent`](../../api/mobile/variables/useCallKitEvent) hook to respond to user interactions with the native CallKit interface: +Use the [`useCallKitEvent`](../../api/mobile/functions/useCallKitEvent) hook to respond to user interactions with the native CallKit interface: ```tsx import { diff --git a/docs/how-to/client/list-other-peers.mdx b/docs/how-to/client/list-other-peers.mdx index 3f0b2b6b..8170ff4f 100644 --- a/docs/how-to/client/list-other-peers.mdx +++ b/docs/how-to/client/list-other-peers.mdx @@ -48,6 +48,7 @@ export function Component() { ```tsx +// @errors: 2739 import React from "react"; import { View, Text } from "react-native"; import { usePeers, RTCView } from "@fishjam-cloud/react-native-client"; diff --git a/docs/how-to/client/managing-devices.mdx b/docs/how-to/client/managing-devices.mdx index d40bb82b..063b1f8d 100644 --- a/docs/how-to/client/managing-devices.mdx +++ b/docs/how-to/client/managing-devices.mdx @@ -168,7 +168,7 @@ Use the [`toggleMicrophone()`](../../api/web/functions/useMicrophone#togglemicro -You can use [`toggleMicrophone`](../../api/mobile/variables/useMicrophone) to toggle the microphone state, or use [`startMicrophone`](../../api/mobile/variables/useMicrophone) and [`stopMicrophone`](../../api/mobile/variables/useMicrophone) for more explicit control. +You can use [`toggleMicrophone`](../../api/mobile/functions/useMicrophone) to toggle the microphone state, or use [`startMicrophone`](../../api/mobile/functions/useMicrophone) and [`stopMicrophone`](../../api/mobile/functions/useMicrophone) for more explicit control. #### Using toggleMicrophone diff --git a/docs/how-to/client/migration-guide.mdx b/docs/how-to/client/migration-guide.mdx index 136f7ace..0b4ce5cb 100644 --- a/docs/how-to/client/migration-guide.mdx +++ b/docs/how-to/client/migration-guide.mdx @@ -146,6 +146,7 @@ const localTrack = localPeer?.tracks.find((t) => t.type === "Video"); ### After ```tsx +// @errors: 2739 import React from "react"; // ---cut--- import { usePeers, RTCView } from "@fishjam-cloud/react-native-client"; @@ -360,6 +361,7 @@ export function VideoCallScreen() { ### After ```tsx +// @errors: 2739 import React, { useRef } from "react"; import { View, Button } from "react-native"; import { diff --git a/docs/how-to/client/picture-in-picture.mdx b/docs/how-to/client/picture-in-picture.mdx index aae27bf6..abfb1bf8 100644 --- a/docs/how-to/client/picture-in-picture.mdx +++ b/docs/how-to/client/picture-in-picture.mdx @@ -166,6 +166,7 @@ Add the `audio` background mode to your `Info.plist`: The `RTCPIPView` component displays video content that can be shown in Picture in Picture mode. Use `startPIP` and `stopPIP` to control PIP manually: ```tsx +// @errors: 2739 import React, { useRef } from "react"; import { View, Button } from "react-native"; import { @@ -207,6 +208,7 @@ By default, Picture in Picture will start automatically when the app goes to the You can customize the Picture in Picture behavior using the `pip` prop on `RTCPIPView`: ```tsx +// @errors: 2739 import React, { useRef } from "react"; import { View } from "react-native"; import { RTCPIPView, useCamera } from "@fishjam-cloud/react-native-client"; @@ -247,6 +249,7 @@ export function VideoCallScreen() { For more control over when Picture in Picture starts and stops, use the `startPIP` and `stopPIP` functions with a ref: ```tsx +// @errors: 2739 import React, { useRef } from "react"; import { Button, View } from "react-native"; import { @@ -294,6 +297,7 @@ export function VideoCallScreen() { Here's a complete example showing Picture in Picture with a video call: ```tsx +// @errors: 2739 import React, { useRef } from "react"; import { FlatList, StyleSheet, View, Text, Button } from "react-native"; import { @@ -422,6 +426,7 @@ Example configuration combining both features: Use `RTCPIPView` to display the livestream with Picture in Picture support: ```tsx +// @errors: 2739 import React, { useRef, useEffect } from "react"; import { View, StyleSheet, Text } from "react-native"; import { @@ -503,6 +508,7 @@ Configure Picture in Picture behavior using the `pip` prop: Here's a complete example showing how to connect to a livestream and display it with Picture in Picture: ```tsx +// @errors: 2739 import React, { useEffect, useRef } from "react"; import { View, StyleSheet, Text, Button } from "react-native"; import { diff --git a/docs/how-to/client/screensharing.mdx b/docs/how-to/client/screensharing.mdx index 52ca09b9..607ad2a6 100644 --- a/docs/how-to/client/screensharing.mdx +++ b/docs/how-to/client/screensharing.mdx @@ -214,11 +214,11 @@ Configuring screen sharing on iOS is a little complicated. ## Usage -You can use [`useScreenShare`](../../api/mobile/variables/useScreenShare) hook to enable screen sharing. +You can use [`useScreenShare`](../../api/mobile/functions/useScreenShare) hook to enable screen sharing. :::tip[Permissions] -Permission request is handled for you as soon as you call [`startStreaming`](../../api/mobile/variables/useScreenShare#startstreaming). +Permission request is handled for you as soon as you call [`startStreaming`](../../api/mobile/functions/useScreenShare#startstreaming). ::: @@ -228,8 +228,8 @@ On Android API level >= 24, you must use a foreground service when screen sharin ::: -You can enable/disable screen sharing with [`startStreaming`](../../api/mobile/variables/useScreenShare#startstreaming) and [`stopStreaming`](../../api/mobile/variables/useScreenShare#stopstreaming) methods. -And check current state by checking if [`stream`](../../api/mobile/variables/useScreenShare#stream) exists. +You can enable/disable screen sharing with [`startStreaming`](../../api/mobile/functions/useScreenShare#startstreaming) and [`stopStreaming`](../../api/mobile/functions/useScreenShare#stopstreaming) methods. +And check current state by checking if [`stream`](../../api/mobile/functions/useScreenShare#stream) exists. ```tsx import React, { useCallback } from "react"; diff --git a/docs/how-to/client/start-streaming.mdx b/docs/how-to/client/start-streaming.mdx index f9839071..4bbd1bf8 100644 --- a/docs/how-to/client/start-streaming.mdx +++ b/docs/how-to/client/start-streaming.mdx @@ -98,7 +98,7 @@ export function ExampleCameraPreview() { -To manage users' camera and microphone devices, use the respective [`useCamera`](../../api/mobile/functions/useCamera) and [`useMicrophone`](../../api/mobile/variables/useMicrophone) hooks. Both of them have similar API. To keep things simple, we will just use the camera hook. +To manage users' camera and microphone devices, use the respective [`useCamera`](../../api/mobile/functions/useCamera) and [`useMicrophone`](../../api/mobile/functions/useMicrophone) hooks. Both of them have similar API. To keep things simple, we will just use the camera hook. You can preview your camera stream using the `RTCView` component. diff --git a/docs/how-to/features/text-chat.mdx b/docs/how-to/features/text-chat.mdx index 6c85a256..7a58aca3 100644 --- a/docs/how-to/features/text-chat.mdx +++ b/docs/how-to/features/text-chat.mdx @@ -16,14 +16,14 @@ This guide shows how to implement text chat in your application using data chann Before implementing text chat, you must be [connected to a room](../client/connecting). Data channels only work after you have successfully joined a room. :::tip -For a deeper understanding of how data channels work, including channel types and broadcast behavior, see [Data Channels](../explanation/data-channels). +For a deeper understanding of how data channels work, including channel types and broadcast behavior, see [Data Channels](../../explanation/data-channels). ::: --- ## Step 1 — Set up the chat hook -Use the [`useDataChannel`](/api/web/functions/useDataChannel) (web) or [`useDataChannel`](/api/mobile/functions/useDataChannel) (mobile) hook to work with data channels. The typical flow is: +Use the [`useDataChannel`](../../api/web/functions/useDataChannel) (web) or [`useDataChannel`](../../api/mobile/functions/useDataChannel) (mobile) hook to work with data channels. The typical flow is: 1. Initialize the data channel after connecting to a room 2. Subscribe to incoming messages diff --git a/docs/tutorials/livestreaming.mdx b/docs/tutorials/livestreaming.mdx index d096155a..287933c0 100644 --- a/docs/tutorials/livestreaming.mdx +++ b/docs/tutorials/livestreaming.mdx @@ -205,7 +205,7 @@ We can now start sending media, which we can obtain from the user's camera, scre If you want to continue screen sharing when the app goes to the background, you need to: 1. Enable VoIP background mode by setting `enableVoIPBackgroundMode: true` in the plugin configuration or adding the VoIP background mode to your `Info.plist` - 2. Use the [`useCallKitService`](../../api/mobile/variables/useCallKitService) hook in your component to manage the CallKit session + 2. Use the [`useCallKitService`](../api/mobile/functions/useCallKitService) hook in your component to manage the CallKit session See the [background calls documentation](../how-to/client/background-streaming) for detailed instructions and code examples. diff --git a/docs/tutorials/react-native-quick-start.mdx b/docs/tutorials/react-native-quick-start.mdx index 48bc1e83..8a3d4289 100644 --- a/docs/tutorials/react-native-quick-start.mdx +++ b/docs/tutorials/react-native-quick-start.mdx @@ -224,6 +224,7 @@ export function ConnectionStatus() { Show your own video stream: ```tsx +// @errors: 2739 import React from "react"; import { Text, View } from "react-native"; import { RTCView, useCamera } from "@fishjam-cloud/react-native-client"; @@ -253,6 +254,7 @@ export function StreamPreview() { Show video from other peers in the room: ```tsx +// @errors: 2739 import React from "react"; import { View, Text } from "react-native"; import { usePeers, RTCView } from "@fishjam-cloud/react-native-client"; @@ -295,6 +297,7 @@ export function ParticipantsView() { Here's a complete working app: ```tsx +// @errors: 2739 import React, { useState } from "react"; import { View, Text, Button, ScrollView, StyleSheet } from "react-native"; import { diff --git a/packages/js-server-sdk b/packages/js-server-sdk index d8c4f410..ad25200e 160000 --- a/packages/js-server-sdk +++ b/packages/js-server-sdk @@ -1 +1 @@ -Subproject commit d8c4f410ed3ad150f039a2a6621e642a68f99b06 +Subproject commit ad25200e98571af994b8d46ff284063493d800cd diff --git a/packages/web-client-sdk b/packages/web-client-sdk index eaa0c2ce..f9c524fd 160000 --- a/packages/web-client-sdk +++ b/packages/web-client-sdk @@ -1 +1 @@ -Subproject commit eaa0c2ceb72e0f7646bc104ad7aeb2201e910202 +Subproject commit f9c524fd1ea91e5bcd57ee915282fefeaed45b65 diff --git a/versioned_docs/version-0.23.0/examples/index.mdx b/versioned_docs/version-0.23.0/examples/index.mdx new file mode 100644 index 00000000..f050d9ac --- /dev/null +++ b/versioned_docs/version-0.23.0/examples/index.mdx @@ -0,0 +1,8 @@ +--- +title: Examples +sidebar_position: 99 +--- + +# Examples + +Check out the latest version of the documentation for up-to-date examples. diff --git a/versioned_docs/version-0.23.0/how-to/react-native/custom-video-sources/index.mdx b/versioned_docs/version-0.23.0/how-to/react-native/custom-video-sources/index.mdx index f2c364ca..0b91ea29 100644 --- a/versioned_docs/version-0.23.0/how-to/react-native/custom-video-sources/index.mdx +++ b/versioned_docs/version-0.23.0/how-to/react-native/custom-video-sources/index.mdx @@ -10,5 +10,5 @@ This section contains guides for implementing custom video sources in the Fishja ## Available Guides -- [Custom Source](../../../how-to/react-native/custom-video-sources/overview) - Learn how to create a basic custom video source -- [Vision Camera](../../../how-to/react-native/custom-video-sources/vision-camera) - Learn how to implement Vision Camera as a custom video source +- [Custom Source](./custom-video-sources/overview) - Learn how to create a basic custom video source +- [Vision Camera](./custom-video-sources/vision-camera) - Learn how to implement Vision Camera as a custom video source diff --git a/versioned_docs/version-0.24.0/examples/index.mdx b/versioned_docs/version-0.24.0/examples/index.mdx new file mode 100644 index 00000000..f050d9ac --- /dev/null +++ b/versioned_docs/version-0.24.0/examples/index.mdx @@ -0,0 +1,8 @@ +--- +title: Examples +sidebar_position: 99 +--- + +# Examples + +Check out the latest version of the documentation for up-to-date examples. diff --git a/versioned_docs/version-0.24.0/how-to/react-native/custom-video-sources/index.mdx b/versioned_docs/version-0.24.0/how-to/react-native/custom-video-sources/index.mdx index f2c364ca..0b91ea29 100644 --- a/versioned_docs/version-0.24.0/how-to/react-native/custom-video-sources/index.mdx +++ b/versioned_docs/version-0.24.0/how-to/react-native/custom-video-sources/index.mdx @@ -10,5 +10,5 @@ This section contains guides for implementing custom video sources in the Fishja ## Available Guides -- [Custom Source](../../../how-to/react-native/custom-video-sources/overview) - Learn how to create a basic custom video source -- [Vision Camera](../../../how-to/react-native/custom-video-sources/vision-camera) - Learn how to implement Vision Camera as a custom video source +- [Custom Source](./custom-video-sources/overview) - Learn how to create a basic custom video source +- [Vision Camera](./custom-video-sources/vision-camera) - Learn how to implement Vision Camera as a custom video source diff --git a/versioned_docs/version-0.24.0/tutorials/livestreaming.mdx b/versioned_docs/version-0.24.0/tutorials/livestreaming.mdx index 4306b123..1d479c7b 100644 --- a/versioned_docs/version-0.24.0/tutorials/livestreaming.mdx +++ b/versioned_docs/version-0.24.0/tutorials/livestreaming.mdx @@ -180,7 +180,7 @@ We can now start sending media, which we can obtain from the user's camera, scre If you want to continue screen sharing when the app goes to the background, you need to: 1. Enable VoIP background mode by setting `enableVoIPBackgroundMode: true` in the plugin configuration or adding the VoIP background mode to your `Info.plist` - 2. Use the [`useCallKitService`](../../api/mobile/variables/useCallKitService) hook in your component to manage the CallKit session + 2. Use the [`useCallKitService`](../api/mobile/variables/useCallKitService) hook in your component to manage the CallKit session See the [background calls documentation](../how-to/react-native/background-streaming) for detailed instructions and code examples. diff --git a/versioned_docs/version-0.25.0/examples/react-native.mdx b/versioned_docs/version-0.25.0/examples/react-native.mdx index a74dd90b..2ab0f52f 100644 --- a/versioned_docs/version-0.25.0/examples/react-native.mdx +++ b/versioned_docs/version-0.25.0/examples/react-native.mdx @@ -177,4 +177,4 @@ Browse the full source: [video-player on GitHub](https://github.com/fishjam-clou - Follow the [React Native Quick Start](../tutorials/react-native-quick-start) if you haven't set up a project yet - Learn how to [handle screen sharing](../how-to/client/screensharing) - Learn how to [implement background streaming](../how-to/client/background-streaming) -- Learn how to [work with data channels](../how-to/client/data-channels) +- Learn how to [work with data channels](../explanation/data-channels) diff --git a/versioned_docs/version-0.25.0/examples/react.mdx b/versioned_docs/version-0.25.0/examples/react.mdx index d7e5f3c1..070f8bb1 100644 --- a/versioned_docs/version-0.25.0/examples/react.mdx +++ b/versioned_docs/version-0.25.0/examples/react.mdx @@ -188,5 +188,5 @@ Browse the full source: [fishjam-chat on GitHub](https://github.com/fishjam-clou ## Next steps - Follow the [React Quick Start](../tutorials/react-quick-start) if you haven't set up a project yet -- Learn how to [work with data channels](../how-to/client/data-channels) +- Learn how to [work with data channels](../explanation/data-channels) - Learn how to [implement screen sharing](../how-to/client/screensharing) diff --git a/versioned_docs/version-0.25.0/explanation/data-channels.mdx b/versioned_docs/version-0.25.0/explanation/data-channels.mdx index 31d51241..86d7fab6 100644 --- a/versioned_docs/version-0.25.0/explanation/data-channels.mdx +++ b/versioned_docs/version-0.25.0/explanation/data-channels.mdx @@ -52,7 +52,7 @@ Use [`useDataChannel`](../api/web/functions/useDataChannel) from `@fishjam-cloud -Use [`useDataChannel`](../api/mobile/functions/useDataChannel) from `@fishjam-cloud/react-native-client`. +Use `useDataChannel` from `@fishjam-cloud/react-native-client`. diff --git a/versioned_docs/version-0.25.0/how-to/client/background-streaming.mdx b/versioned_docs/version-0.25.0/how-to/client/background-streaming.mdx index eb6e47d8..4cf24f8c 100644 --- a/versioned_docs/version-0.25.0/how-to/client/background-streaming.mdx +++ b/versioned_docs/version-0.25.0/how-to/client/background-streaming.mdx @@ -138,7 +138,7 @@ On iOS, background calls are achieved through CallKit integration. You can use t ### Manual CallKit Management -Use the [`useCallKit`](../../api/mobile/variables/useCallKit) hook for fine-grained control over CallKit sessions: +Use the `useCallKit` hook for fine-grained control over CallKit sessions: ```tsx import { useCallKit } from "@fishjam-cloud/react-native-client"; @@ -163,7 +163,7 @@ const handleLeaveRoom = async () => { ### Automatic CallKit Management -Use the [`useCallKitService`](../../api/mobile/variables/useCallKitService) hook for automatic session lifecycle management: +Use the `useCallKitService` hook for automatic session lifecycle management: ```tsx import React from "react"; @@ -184,7 +184,7 @@ function CallScreen({ username }: { username: string }) { ### Listening to CallKit Events -Use the [`useCallKitEvent`](../../api/mobile/variables/useCallKitEvent) hook to respond to user interactions with the native CallKit interface: +Use the `useCallKitEvent` hook to respond to user interactions with the native CallKit interface: ```tsx import { diff --git a/versioned_docs/version-0.25.0/how-to/features/text-chat.mdx b/versioned_docs/version-0.25.0/how-to/features/text-chat.mdx index b9795717..24a8b40b 100644 --- a/versioned_docs/version-0.25.0/how-to/features/text-chat.mdx +++ b/versioned_docs/version-0.25.0/how-to/features/text-chat.mdx @@ -15,14 +15,14 @@ This guide shows how to implement text chat in your application using data chann Before implementing text chat, you must be [connected to a room](../client/connecting). Data channels only work after you have successfully joined a room. :::tip -For a deeper understanding of how data channels work, including channel types and broadcast behavior, see [Data Channels](../explanation/data-channels). +For a deeper understanding of how data channels work, including channel types and broadcast behavior, see [Data Channels](../../explanation/data-channels). ::: --- ## Step 1 — Set up the chat hook -Use the [`useDataChannel`](/api/web/functions/useDataChannel) (web) or [`useDataChannel`](/api/mobile/functions/useDataChannel) (mobile) hook to work with data channels. The typical flow is: +Use the [`useDataChannel`](../../api/web/functions/useDataChannel) (web) or `useDataChannel` (mobile) hook to work with data channels. The typical flow is: 1. Initialize the data channel after connecting to a room 2. Subscribe to incoming messages @@ -356,4 +356,4 @@ This ensures no chat messages are lost or arrive out of order. - [Data Channels](../../explanation/data-channels) — detailed explanation of channel types and broadcast behavior - [Connecting to a room](../../how-to/client/connecting) — prerequisite for using data channels - [`useDataChannel` API reference (Web)](../../api/web/functions/useDataChannel) -- [`useDataChannel` API reference (Mobile)](../../api/mobile/functions/useDataChannel) +- `useDataChannel` API reference (Mobile) diff --git a/versioned_docs/version-0.25.0/tutorials/livestreaming.mdx b/versioned_docs/version-0.25.0/tutorials/livestreaming.mdx index 25691d97..84de3e4c 100644 --- a/versioned_docs/version-0.25.0/tutorials/livestreaming.mdx +++ b/versioned_docs/version-0.25.0/tutorials/livestreaming.mdx @@ -204,7 +204,7 @@ We can now start sending media, which we can obtain from the user's camera, scre If you want to continue screen sharing when the app goes to the background, you need to: 1. Enable VoIP background mode by setting `enableVoIPBackgroundMode: true` in the plugin configuration or adding the VoIP background mode to your `Info.plist` - 2. Use the [`useCallKitService`](../../api/mobile/variables/useCallKitService) hook in your component to manage the CallKit session + 2. Use the `useCallKitService` hook in your component to manage the CallKit session See the [background calls documentation](../how-to/client/background-streaming) for detailed instructions and code examples.