diff --git a/frontend/components/nodes/filter-node/filter-node.tsx b/frontend/components/nodes/filter-node/filter-node.tsx index 6dd7831..2032775 100644 --- a/frontend/components/nodes/filter-node/filter-node.tsx +++ b/frontend/components/nodes/filter-node/filter-node.tsx @@ -195,6 +195,24 @@ export default function FilterNode({ id }: FilterNodeProps) { isConnected={isConnected} isDataStreamOn={dataStreaming} /> + + {isConnected && ( + <> + setCutoff(Number(e.target.value))} + /> + +

+ {selectedFilter === 'lowpass' + ? 'Frequencies below cutoff will pass through' + : 'Frequencies above cutoff will pass through'} +

+ + )} ); } \ No newline at end of file diff --git a/frontend/components/ui-header/settings-bar.tsx b/frontend/components/ui-header/settings-bar.tsx index 5b642bc..3bed852 100644 --- a/frontend/components/ui-header/settings-bar.tsx +++ b/frontend/components/ui-header/settings-bar.tsx @@ -21,6 +21,27 @@ export default function SettingsBar() { const [leftTimerSeconds, setLeftTimerSeconds] = useState(0); const intervalRef = useRef(null); const [isResetDialogOpen, setIsResetDialogOpen] = useState(false); + const [sessionId, setSessionId] = useState(null); + + useEffect(() => { + async function fetchSessions() { + try { + const res = await fetch('/api/sessions'); + const sessions = await res.json(); + + console.log('sessions response:', sessions); + + if (sessions.length > 0) { + setSessionId(sessions[0].id); + } + } catch (err) { + console.error('Failed to fetch sessions', err); + } + } + + fetchSessions(); + }, []); + // useEffect(() => { // console.log('dataStreaming:', dataStreaming); // }); @@ -88,13 +109,12 @@ export default function SettingsBar() { {/* System Control Panel, Filters, Settings */} - System Control Panel - - - Filters + + Session {sessionId ? sessionId.slice(0, 8) : 'ID'} + - Settings + Tutorials