Files
gridpilot.gg/apps/website/lib/presenters/SessionPresenter.ts
2026-01-14 02:02:24 +01:00

24 lines
604 B
TypeScript

'use client';
import type { AuthSessionDTO } from '@/lib/types/generated/AuthSessionDTO';
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
/**
* Session Presenter
*
* Converts AuthSessionDTO to SessionViewModel for client-side presentation.
* Pure and deterministic - no side effects.
*/
export class SessionPresenter {
/**
* Present session data as a view model
*/
present(sessionDto: AuthSessionDTO | null): SessionViewModel | null {
if (!sessionDto || !sessionDto.user) {
return null;
}
return new SessionViewModel(sessionDto.user);
}
}