From 6a8a94101a8b0f0861ca696984ff0391a48e1fd9 Mon Sep 17 00:00:00 2001 From: Jeffrey C <990135+JeffreyBytes@users.noreply.github.com> Date: Mon, 12 Jan 2026 10:59:52 -0600 Subject: [PATCH 1/9] Add filter to show unassociated streams in Streams table Adds a filter button with 'Only Unassociated' toggle option to the Streams table, allowing users to quickly identify streams from providers that are not associated with any channel. The filter button follows the existing UI pattern from ChannelTableHeader, positioned on the right side of the toolbar. Leverages existing backend support for the unassigned query parameter. Resolves #667 --- .../src/components/tables/StreamsTable.jsx | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/tables/StreamsTable.jsx b/frontend/src/components/tables/StreamsTable.jsx index 21b13baf..8c931a65 100644 --- a/frontend/src/components/tables/StreamsTable.jsx +++ b/frontend/src/components/tables/StreamsTable.jsx @@ -20,6 +20,9 @@ import { ArrowUpNarrowWide, ArrowDownWideNarrow, Search, + Filter, + Square, + SquareCheck, } from 'lucide-react'; import { TextInput, @@ -48,7 +51,6 @@ import { Modal, NumberInput, Radio, - Checkbox, } from '@mantine/core'; import { useNavigate } from 'react-router-dom'; import useSettingsStore from '../../store/settings'; @@ -232,6 +234,7 @@ const StreamsTable = ({ onReady }) => { name: '', channel_group: '', m3u_account: '', + unassigned: '', }); const [columnSizing, setColumnSizing] = useLocalStorage( 'streams-table-column-sizing', @@ -382,6 +385,13 @@ const StreamsTable = ({ onReady }) => { })); }; + const toggleUnassignedOnly = () => { + setFilters((prev) => ({ + ...prev, + unassigned: prev.unassigned === '1' ? '' : '1', + })); + }; + const fetchData = useCallback(async () => { setIsLoading(true); @@ -1057,6 +1067,29 @@ const StreamsTable = ({ onReady }) => { + + + + + + + + ) : ( + + ) + } + > + Only Unassociated + + + +