From dddf80ae438b742e254d6c7436a2bd5a394b7337 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Tue, 22 Jul 2025 15:42:12 +0100 Subject: [PATCH] feat: allow disabling groups --- packages/core/src/db/schemas.ts | 1 + packages/core/src/streams/fetcher.ts | 6 +++++- packages/frontend/src/components/menu/addons.tsx | 14 +++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/core/src/db/schemas.ts b/packages/core/src/db/schemas.ts index b886fa3f..94f208d5 100644 --- a/packages/core/src/db/schemas.ts +++ b/packages/core/src/db/schemas.ts @@ -339,6 +339,7 @@ export const UserDataSchema = z.object({ requiredStreamExpressions: z.array(z.string().min(1).max(3000)).optional(), preferredStreamExpressions: z.array(z.string().min(1).max(3000)).optional(), includedStreamExpressions: z.array(z.string().min(1).max(3000)).optional(), + disableGroups: z.boolean().optional(), groups: z .array( z.object({ diff --git a/packages/core/src/streams/fetcher.ts b/packages/core/src/streams/fetcher.ts index 88ce8958..6ecc2bbc 100644 --- a/packages/core/src/streams/fetcher.ts +++ b/packages/core/src/streams/fetcher.ts @@ -155,7 +155,11 @@ class StreamFetcher { }; // If groups are configured, handle group-based fetching - if (this.userData.groups && this.userData.groups.length > 0) { + if ( + this.userData.groups && + this.userData.groups.length > 0 && + this.userData.disableGroups !== true + ) { const groupPromises = this.userData.groups.map((group) => { const groupAddons = addons.filter( (addon) => diff --git a/packages/frontend/src/components/menu/addons.tsx b/packages/frontend/src/components/menu/addons.tsx index 7613e864..9edc5b3f 100644 --- a/packages/frontend/src/components/menu/addons.tsx +++ b/packages/frontend/src/components/menu/addons.tsx @@ -1215,12 +1215,22 @@ function AddonGroupCard() { {' '} for a detailed guide to using groups. + { + setUserData((prev) => ({ ...prev, disableGroups: value })); + }} + side="right" + help="If enabled, groups will be ignored and all addons will be used." + /> {(userData.groups || []).map((group, index) => (
{ @@ -1246,6 +1256,7 @@ function AddonGroupCard() { } intent="alert-subtle" onClick={() => { @@ -1267,6 +1278,7 @@ function AddonGroupCard() { size="sm" intent="primary-subtle" icon={} + disabled={userData.disableGroups} onClick={() => { setUserData((prev) => { const currentGroups = prev.groups || [];