Files
TREK/server/src/services/inAppNotificationActions.ts
jubnl c0e9a771d6 feat: add in-app notification system with real-time delivery
Introduces a full in-app notification system with three types (simple,
boolean with server-side callbacks, navigate), three scopes (user, trip,
admin), fan-out persistence per recipient, and real-time push via
WebSocket. Includes a notification bell in the navbar, dropdown, dedicated
/notifications page, and a dev-only admin tab for testing all notification
variants.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 18:57:52 +02:00

23 lines
671 B
TypeScript

type ActionHandler = (payload: Record<string, unknown>, respondingUserId: number) => Promise<void>;
const actionRegistry = new Map<string, ActionHandler>();
function registerAction(actionType: string, handler: ActionHandler): void {
actionRegistry.set(actionType, handler);
}
function getAction(actionType: string): ActionHandler | undefined {
return actionRegistry.get(actionType);
}
// Dev/test actions
registerAction('test_approve', async () => {
console.log('[notifications] Test approve action executed');
});
registerAction('test_deny', async () => {
console.log('[notifications] Test deny action executed');
});
export { registerAction, getAction };