website refactor

This commit is contained in:
2026-01-14 02:02:24 +01:00
parent 8d7c709e0c
commit 4522d41aef
291 changed files with 12763 additions and 9309 deletions

View File

@@ -1,11 +1,11 @@
'use client';
import { useState, useMemo } from 'react';
import { useRouter } from 'next/navigation';
import type { TeamsPageDto } from '@/lib/page-queries/page-queries/TeamsPageQuery';
import { TeamsPresenter } from '@/lib/presenters/TeamsPresenter';
import type { TeamSummaryData } from '@/lib/view-data/TeamsViewData';
import { TeamsTemplate } from '@/templates/TeamsTemplate';
import type { TeamSummaryData } from '@/templates/view-data/TeamsViewData';
import { useRouter } from 'next/navigation';
import { useMemo, useState } from 'react';
interface TeamsPageClientProps {
pageDto: TeamsPageDto;

View File

@@ -3,8 +3,8 @@
import { useState } from 'react';
import { useRouter } from 'next/navigation';
import type { TeamDetailPageDto } from '@/lib/page-queries/page-queries/TeamDetailPageQuery';
import { TeamDetailPresenter } from '@/lib/presenters/TeamDetailPresenter';
import TeamDetailTemplate from '@/templates/TeamDetailTemplate';
import { TeamDetailPresenter } from '@/lib/view-models/TeamDetailPresenter';
import { TeamDetailTemplate } from '@/templates/TeamDetailTemplate';
type Tab = 'overview' | 'roster' | 'standings' | 'admin';
@@ -53,11 +53,9 @@ export function TeamDetailPageClient({ pageDto }: TeamDetailPageClientProps) {
return (
<TeamDetailTemplate
team={viewData.team}
memberships={viewData.memberships}
viewData={viewData}
activeTab={activeTab}
loading={loading}
isAdmin={viewData.isAdmin}
onTabChange={handleTabChange}
onUpdate={handleUpdate}
onRemoveMember={handleRemoveMember}

View File

@@ -1,6 +1,6 @@
import { notFound } from 'next/navigation';
import { TeamDetailPageQuery } from '@/lib/page-queries/TeamDetailPageQuery';
import TeamDetailPageClient from './TeamDetailPageClient';
import { TeamDetailPageQuery } from '@/lib/page-queries/page-queries/TeamDetailPageQuery';
import { TeamDetailPageClient } from './TeamDetailPageClient';
export default async function Page({ params }: { params: { id: string } }) {
const result = await TeamDetailPageQuery.execute(params.id);

View File

@@ -1,10 +1,11 @@
import { PageWrapper } from '@/components/shared/state/PageWrapper';
import { PageDataFetcher } from '@/lib/page/PageDataFetcher';
import { TEAM_SERVICE_TOKEN } from '@/lib/di/tokens';
import { TeamService } from '@/lib/services/teams/TeamService';
import { TeamsApiClient } from '@/lib/api/teams/TeamsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Trophy } from 'lucide-react';
import { redirect } from 'next/navigation';
import type { TeamSummaryViewModel } from '@/lib/view-models/TeamSummaryViewModel';
import { TeamSummaryViewModel } from '@/lib/view-models/TeamSummaryViewModel';
import { TeamLeaderboardPageWrapper } from './TeamLeaderboardPageWrapper';
// ============================================================================
@@ -12,11 +13,23 @@ import { TeamLeaderboardPageWrapper } from './TeamLeaderboardPageWrapper';
// ============================================================================
export default async function TeamLeaderboardPage() {
// Fetch data using PageDataFetcher
const teamsData = await PageDataFetcher.fetch<TeamService, 'getAllTeams'>(
TEAM_SERVICE_TOKEN,
'getAllTeams'
);
// Manual wiring: create dependencies
const baseUrl = getWebsiteApiBaseUrl();
const logger = new ConsoleLogger();
const errorReporter = new EnhancedErrorReporter(logger, {
showUserNotifications: true,
logToConsole: true,
reportToExternal: process.env.NODE_ENV === 'production',
});
// Create API client
const apiClient = new TeamsApiClient(baseUrl, errorReporter, logger);
// Fetch data
const result = await apiClient.getAll();
// Transform DTO to ViewModel
const teamsData: TeamSummaryViewModel[] = result.teams.map(team => new TeamSummaryViewModel(team));
// Prepare data for template
const data: TeamSummaryViewModel[] | null = teamsData;

View File

@@ -1,6 +1,6 @@
import { notFound } from 'next/navigation';
import { TeamsPageQuery } from '@/lib/page-queries/TeamsPageQuery';
import TeamsPageClient from './TeamsPageClient';
import { TeamsPageQuery } from '@/lib/page-queries/page-queries/TeamsPageQuery';
import { TeamsPageClient } from './TeamsPageClient';
export default async function Page() {
const result = await TeamsPageQuery.execute();