Files
GMW/services/frontend/src/hooks/index.ts
T
asepharyana 31e303c187 feat(fe): optimize error handling, state consistency, and WS feedback
- Add global SWR config with exponential backoff retry (swr-config.ts)
- Add ErrorBoundary component for React crash recovery (error-boundary.tsx)
- Standardize ErrorState onRetry on all 6 dashboard views (dashboard, media,
  messages, moderation, recordings, voice)
- Fix useAction: expose resetError + onError callback
- Refactor useSpeakers to SWR-backed state (was local useState) for
  consistent cache/revalidate semantics with other hooks
- Remove polling in useReview (15s refreshInterval); replace with
  useReviewWsSync subscribing to WS moderation_action events
- Extract hashUserId to lib/hash.ts (de-dup with ambient-canvas)
- WS context: add reconnect/error toast feedback via onStatusChange
- WS connection: expose reconnectAttemptCount getter

All typecheck + lint clean, Next 16 build passes.
2026-08-25 13:46:15 +07:00

64 lines
1.2 KiB
TypeScript

export { useConfig } from "./use-config";
export {
useActivity,
useChannelDetail,
useChannels,
useStats,
useTopReactions,
useTopReactors,
useUserDetail,
useUsers,
} from "./use-dashboard";
export { useGuilds } from "./use-guilds";
export { useChannelCultures, useGlossary } from "./use-knowledge";
export {
useMediaLoop,
useMediaQueue,
useMediaSkip,
useMediaState,
useMediaStop,
useMediaWsSync,
} from "./use-media";
export {
useImages,
useLoadMore,
useMessageActivity,
useMessageDetail,
useMessageSearch,
useMessages,
useMessagesHasMore,
useMessagesStream,
useMessagesWsSync,
useRecentEdits,
useReview,
useReviewWsSync,
useSemanticSearch,
useTextChannels,
} from "./use-messages";
export {
useHourlyModeration,
useLiveModeration,
useModerationActions,
useModerationByCategory,
useModerationCoverage,
useModerationStats,
useModerationTrends,
useTopFlaggedChannels,
useTopFlaggedDomains,
} from "./use-moderation";
export {
useDeleteRecording,
useRecordings,
useRecordingsWsSync,
} from "./use-recordings";
export {
hashUserId,
useMicTransmit,
useSpeakers,
useVoiceChannels,
useVoiceConnect,
useVoiceDisconnect,
useVoiceListen,
useVoiceStatus,
} from "./use-voice";