refactor(messages): remove text channel filter and channel-section grouping

This commit is contained in:
MythEclipse
2026-06-03 20:53:47 +07:00
parent 2a2003e638
commit a24a5e7dfd
4 changed files with 18 additions and 137 deletions
+4 -27
View File
@@ -11,9 +11,7 @@ import {
} from "./features/messages/hooks/useMessages";
import {
type ActiveSpeaker,
type Channel,
getAppConfig,
getTextChannels,
type MediaState,
type MessageRecord,
} from "./shared/api/client";
@@ -62,8 +60,6 @@ export default function App() {
!!localStorage.getItem("admin-password"),
);
const [monitorGuildId, setMonitorGuildId] = useState("");
const [textChannels, setTextChannels] = useState<Channel[]>([]);
const [selectedMessageChannel, setSelectedMessageChannel] = useState<string>("");
const audio = useAudioPlayback();
const activeTab = uiState.activeTab || "live";
@@ -117,7 +113,7 @@ export default function App() {
},
onAttachmentUploaded: () =>
messages
.fetchMessages(monitorGuildId || undefined, selectedMessageChannel || undefined)
.fetchMessages(monitorGuildId || undefined)
.catch(() => undefined),
onMediaState: (state) => media.setMediaState(state as MediaState),
onVoiceRecordingUploaded: (d) =>
@@ -145,38 +141,22 @@ export default function App() {
voice.loadVoiceChannels(selectedVoiceGuild).catch(() => undefined);
}, [selectedVoiceGuild, voice.loadVoiceChannels]);
// Load text channels when monitor guild changes (Messages tab)
useEffect(() => {
if (monitorGuildId)
getTextChannels(monitorGuildId)
.then(setTextChannels)
.catch(() => undefined);
}, [monitorGuildId]);
// Auto-fetch messages for the monitor guild
useEffect(() => {
if (monitorGuildId)
messages
.fetchMessages(monitorGuildId, selectedMessageChannel || undefined)
.fetchMessages(monitorGuildId)
.catch(() => undefined);
}, [monitorGuildId, messages.fetchMessages]);
// Re-fetch when channel filter changes
useEffect(() => {
if (monitorGuildId)
messages
.fetchMessages(monitorGuildId, selectedMessageChannel || undefined)
.catch(() => undefined);
}, [selectedMessageChannel, monitorGuildId, messages.fetchMessages]);
// Periodic refetch — keeps dashboard in sync even if WS events missed
useEffect(() => {
if (!monitorGuildId) return;
const interval = setInterval(() => {
messages.fetchMessages(monitorGuildId, selectedMessageChannel || undefined).catch(() => undefined);
messages.fetchMessages(monitorGuildId).catch(() => undefined);
}, 15_000);
return () => clearInterval(interval);
}, [monitorGuildId, messages.fetchMessages, selectedMessageChannel]);
}, [monitorGuildId, messages.fetchMessages]);
return (
<DashboardLayout
@@ -234,9 +214,6 @@ export default function App() {
onLoadMore={messages.loadMore}
hasMore={messages.hasMore}
loadingMore={messages.loadingMore}
textChannels={textChannels}
selectedChannel={selectedMessageChannel}
onChannelChange={setSelectedMessageChannel}
/>
) : (
<AnalyticsErrorBoundary>