diff --git a/apps/rebreak-native/app/(app)/blocker.tsx b/apps/rebreak-native/app/(app)/blocker.tsx
index 9cab1a1..8b87b23 100644
--- a/apps/rebreak-native/app/(app)/blocker.tsx
+++ b/apps/rebreak-native/app/(app)/blocker.tsx
@@ -61,8 +61,6 @@ export default function BlockerScreen() {
}, [refreshDomains, syncBlocklist, refresh]);
useDomainSubmissionRealtime(onDomainChange, true);
- // Section collapse state — beide Sections starten offen
- const [webOpen, setWebOpen] = useState(true);
const [mailOpen, setMailOpen] = useState(true);
// AddSheet state: tracks which section opened it
@@ -369,8 +367,6 @@ export default function BlockerScreen() {
title={t('blocker.section_domains')}
count={countsByType.web}
max={limits.web}
- open={webOpen}
- onToggle={() => setWebOpen((v) => !v)}
onAdd={() => openAddSheet('web')}
atLimit={countsByType.web >= limits.web}
>
@@ -388,6 +384,7 @@ export default function BlockerScreen() {
title={t('blocker.section_mails')}
count={countsByType.mail}
max={limits.mail}
+ collapsible
open={mailOpen}
onToggle={() => setMailOpen((v) => !v)}
onAdd={() => openAddSheet('mail')}
@@ -448,7 +445,8 @@ function DomainSection({
title,
count,
max,
- open,
+ collapsible = false,
+ open = true,
onToggle,
onAdd,
atLimit,
@@ -457,8 +455,9 @@ function DomainSection({
title: string;
count: number;
max: number;
- open: boolean;
- onToggle: () => void;
+ collapsible?: boolean;
+ open?: boolean;
+ onToggle?: () => void;
onAdd: () => void;
atLimit: boolean;
children: React.ReactNode;
@@ -496,8 +495,8 @@ function DomainSection({
>
{/* Section Header */}
-
+ {collapsible && (
+
+ )}
- {open && (
+ {(!collapsible || open) && (
{/* Progressbar */}