website refactor
This commit is contained in:
@@ -2,23 +2,19 @@
|
||||
|
||||
import { useState } from 'react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import type { TeamDetailPageDto } from '@/lib/page-queries/page-queries/TeamDetailPageQuery';
|
||||
import { TeamDetailPresenter } from '@/lib/view-models/TeamDetailPresenter';
|
||||
import type { TeamDetailViewData } from '@/lib/view-data/TeamDetailViewData';
|
||||
import { TeamDetailTemplate } from '@/templates/TeamDetailTemplate';
|
||||
|
||||
type Tab = 'overview' | 'roster' | 'standings' | 'admin';
|
||||
|
||||
interface TeamDetailPageClientProps {
|
||||
pageDto: TeamDetailPageDto;
|
||||
viewData: TeamDetailViewData;
|
||||
}
|
||||
|
||||
export function TeamDetailPageClient({ pageDto }: TeamDetailPageClientProps) {
|
||||
export function TeamDetailPageClient({ viewData }: TeamDetailPageClientProps) {
|
||||
const router = useRouter();
|
||||
|
||||
// Use presenter to create ViewData
|
||||
const viewData = TeamDetailPresenter.createViewData(pageDto);
|
||||
|
||||
// UI state
|
||||
// UI state only (no business logic)
|
||||
const [activeTab, setActiveTab] = useState<Tab>('overview');
|
||||
const [loading] = useState(false);
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { notFound } from 'next/navigation';
|
||||
import { TeamDetailPageQuery } from '@/lib/page-queries/page-queries/TeamDetailPageQuery';
|
||||
import { TeamDetailViewDataBuilder } from '@/lib/builders/view-data/TeamDetailViewDataBuilder';
|
||||
import { TeamDetailPageClient } from './TeamDetailPageClient';
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
@@ -7,7 +8,8 @@ export default async function Page({ params }: { params: { id: string } }) {
|
||||
|
||||
switch (result.status) {
|
||||
case 'ok':
|
||||
return <TeamDetailPageClient pageDto={result.dto} />;
|
||||
const viewData = TeamDetailViewDataBuilder.build(result.dto);
|
||||
return <TeamDetailPageClient viewData={viewData} />;
|
||||
case 'notFound':
|
||||
notFound();
|
||||
case 'redirect':
|
||||
|
||||
Reference in New Issue
Block a user