diff --git a/web/src/channel_folders.ts b/web/src/channel_folders.ts index e5df4db562..7aa519db04 100644 --- a/web/src/channel_folders.ts +++ b/web/src/channel_folders.ts @@ -73,6 +73,18 @@ export function get_channel_folder_by_id(folder_id: number): ChannelFolder { return channel_folder; } +export function user_has_folders(): boolean { + const subscribed_subs = stream_data.subscribed_subs(); + + for (const sub of subscribed_subs) { + if (sub.folder_id) { + return true; + } + } + + return false; +} + export function update(event: ChannelFolderUpdateEvent): void { const folder_id = event.channel_folder_id; const channel_folder = get_channel_folder_by_id(folder_id); diff --git a/web/tests/channel_folders.test.cjs b/web/tests/channel_folders.test.cjs index a6f9532445..94c7f9dd8a 100644 --- a/web/tests/channel_folders.test.cjs +++ b/web/tests/channel_folders.test.cjs @@ -89,6 +89,9 @@ run_test("basics", () => { folder_id: frontend_folder.id, }); stream_data.add_sub(stream_1); + + assert.deepEqual(channel_folders.user_has_folders(), false); + stream_data.add_sub(stream_2); stream_data.add_sub(stream_3); stream_data.add_sub(stream_4); @@ -120,4 +123,6 @@ run_test("basics", () => { channel_folders.get_channels_in_folders_matching_seach_term_in_folder_name("Nonexistent"), [], ); + + assert.deepEqual(channel_folders.user_has_folders(), true); });