Skip to content

Commit a31204e

Browse files
authored
feat(ui): add settings search queries (#91)
* feat(ui): add settings search queries This commit gives users the ability to set the stream settings using query parameters. --------- Co-authored-by: ryanontheinstide <ryanfosdick87@gmail.com> Co-authored-by: Elite <john@eliteencoder.net>
1 parent 5725fb4 commit a31204e

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

ui/src/components/settings.tsx

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/**
22
* @file Contains a StreamSettings component for configuring stream settings.
33
*/
4+
import { useSearchParams } from "next/navigation";
45
import { Button } from "@/components/ui/button";
56
import {
67
Dialog,
@@ -27,6 +28,7 @@ import { Label } from "@/components/ui/label";
2728
import { useMediaQuery } from "@/hooks/use-media-query";
2829
import { zodResolver } from "@hookform/resolvers/zod";
2930
import {
31+
Suspense,
3032
useCallback,
3133
useEffect,
3234
useState,
@@ -52,7 +54,7 @@ interface AVDevice {
5254
label: string;
5355
}
5456

55-
export const DEFAULT_CONFIG: StreamConfig = {
57+
const DEFAULT_CONFIG: StreamConfig = {
5658
streamUrl:
5759
process.env.NEXT_PUBLIC_DEFAULT_STREAM_URL || "http://127.0.0.1:8889",
5860
frameRate: 30,
@@ -71,9 +73,27 @@ export function StreamSettings({
7173
onOpenChange,
7274
onSave,
7375
}: StreamSettingsProps) {
74-
const isDesktop = useMediaQuery("(min-width: 768px)");
76+
return (
77+
<Suspense fallback={<div>Loading settings...</div>}>
78+
<StreamSettingsInner open={open} onOpenChange={onOpenChange} onSave={onSave} />
79+
</Suspense>
80+
);
81+
}
7582

76-
const [config, setConfig] = useState<StreamConfig>(DEFAULT_CONFIG);
83+
function StreamSettingsInner({
84+
open,
85+
onOpenChange,
86+
onSave,
87+
}: StreamSettingsProps) {
88+
const isDesktop = useMediaQuery("(min-width: 768px)");
89+
const searchParams = useSearchParams();
90+
91+
const initialConfig: StreamConfig = {
92+
...DEFAULT_CONFIG,
93+
streamUrl: searchParams.get("streamUrl") || DEFAULT_CONFIG.streamUrl,
94+
frameRate: parseInt(searchParams.get("frameRate") || `${DEFAULT_CONFIG.frameRate}`, 10),
95+
}
96+
const [config, setConfig] = useState<StreamConfig>(initialConfig);
7797

7898
const handleSubmit = (config: StreamConfig) => {
7999
setConfig(config);

0 commit comments

Comments
 (0)