diff --git a/app/(main)/admin/_pages/settings.tsx b/app/(main)/admin/_pages/settings.tsx
index 987ea6333..617a9ced6 100644
--- a/app/(main)/admin/_pages/settings.tsx
+++ b/app/(main)/admin/_pages/settings.tsx
@@ -8,7 +8,7 @@ import { useAdminUnsavedChanges } from '@/stores/admin-unsaved-store';
import { SettingsSection, SectionNav } from '@/components/settings/settings-section';
import { AdminPageHeader } from '@/components/admin/page-header';
import { AdminSaveBar } from '@/components/admin/save-bar';
-import { Flash, useFlash } from '@/components/admin/flash-message';
+import { useAdminFeedback } from '@/components/admin/feedback';
import { ConfigTextItem, ConfigToggleItem, ConfigSelectItem, ConfigNote } from '@/components/admin/config-items';
import { JmapServersSection } from './_jmap-servers-section';
import type { JmapServerEntry } from '@/lib/admin/jmap-servers';
@@ -26,7 +26,7 @@ export function SettingsPage() {
const [edits, setEdits] = useState
>({});
const [loading, setLoading] = useState(true);
const [saving, setSaving] = useState(false);
- const [message, setMessage] = useFlash();
+ const setMessage = useAdminFeedback();
useEffect(() => {
fetchConfig();
@@ -111,7 +111,6 @@ export function SettingsPage() {
-
setMessage(null)} />
diff --git a/app/(main)/admin/_pages/telemetry.tsx b/app/(main)/admin/_pages/telemetry.tsx
index 23ceaf91d..73cdae984 100644
--- a/app/(main)/admin/_pages/telemetry.tsx
+++ b/app/(main)/admin/_pages/telemetry.tsx
@@ -6,7 +6,7 @@ import { SettingsSection, SettingItem, ToggleSwitch } from '@/components/setting
import { Button } from '@/components/ui/button';
import { AdminPageHeader } from '@/components/admin/page-header';
import { AdminSaveBar } from '@/components/admin/save-bar';
-import { Flash, useFlash } from '@/components/admin/flash-message';
+import { useAdminFeedback } from '@/components/admin/feedback';
import { ConfigNote, inputClass } from '@/components/admin/config-items';
import { adminPageDef } from '@/lib/admin/admin-nav';
import { apiFetch } from '@/lib/browser-navigation';
@@ -45,7 +45,7 @@ export function TelemetryPage() {
const [loading, setLoading] = useState(true);
const [busy, setBusy] = useState
(null);
const [endpointDraft, setEndpointDraft] = useState('');
- const [message, setMessage] = useFlash();
+ const setMessage = useAdminFeedback();
// The heartbeat switch waits for Save like the endpoint (one page, one
// save bar).
const [consentDraft, setConsentDraft] = useState<'on' | 'off' | null>(null);
@@ -149,7 +149,6 @@ export function TelemetryPage() {
{header}
-
setMessage(null)} />
diff --git a/app/(main)/admin/_pages/themes.tsx b/app/(main)/admin/_pages/themes.tsx
index c9e1db2ac..f9701e63f 100644
--- a/app/(main)/admin/_pages/themes.tsx
+++ b/app/(main)/admin/_pages/themes.tsx
@@ -16,7 +16,7 @@ import { AdminList, AdminListRow } from '@/components/admin/list';
import { AdminSaveBar } from '@/components/admin/save-bar';
import { Badge } from '@/components/admin/badge';
import { EmptyState } from '@/components/admin/empty-state';
-import { Flash, useFlash } from '@/components/admin/flash-message';
+import { useAdminFeedback } from '@/components/admin/feedback';
import { inputClass } from '@/components/admin/config-items';
import { cn } from '@/lib/utils';
import { ExtensionIcon } from '@/components/admin/extension-icon';
@@ -42,7 +42,7 @@ export function ThemesPage() {
const iconFor = useExtensionIcons();
const [loading, setLoading] = useState(true);
const [uploading, setUploading] = useState(false);
- const [message, setMessage] = useFlash();
+ const setMessage = useAdminFeedback();
// On/off per theme waits for Save, like the policy switches below.
const [enabledDraft, setEnabledDraft] = useState>({});
const fileInputRef = useRef(null);
@@ -262,7 +262,6 @@ export function ThemesPage() {
)}
/>
- setMessage(null)} />
(null);
const [loading, setLoading] = useState(true);
const [checking, setChecking] = useState(false);
- const [message, setMessage] = useFlash();
+ const setMessage = useAdminFeedback();
async function refresh(): Promise {
setLoading(true);
@@ -133,7 +133,6 @@ export function VersionPage() {
{header}
-
setMessage(null)} />
diff --git a/app/(main)/admin/change-password/page.tsx b/app/(main)/admin/change-password/page.tsx
index 2881c69cf..bb1b9073c 100644
--- a/app/(main)/admin/change-password/page.tsx
+++ b/app/(main)/admin/change-password/page.tsx
@@ -6,7 +6,7 @@ import { Loader2 } from '@/components/icons';
import { apiFetch } from '@/lib/browser-navigation';
import { Button } from '@/components/ui/button';
import { AdminPageHeader } from '@/components/admin/page-header';
-import { Flash, useFlash } from '@/components/admin/flash-message';
+import { useAdminFeedback } from '@/components/admin/feedback';
import { inputClass } from '@/components/admin/config-items';
import { cn } from '@/lib/utils';
@@ -15,7 +15,7 @@ export default function ChangePasswordPage() {
const [currentPassword, setCurrentPassword] = useState('');
const [newPassword, setNewPassword] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');
- const [message, setMessage] = useFlash();
+ const setMessage = useAdminFeedback();
const [loading, setLoading] = useState(false);
async function handleSubmit(e: React.FormEvent) {
@@ -61,7 +61,6 @@ export default function ChangePasswordPage() {