website refactor
This commit is contained in:
23
apps/website/lib/presenters/SessionPresenter.ts
Normal file
23
apps/website/lib/presenters/SessionPresenter.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
'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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user