This commit is contained in:
2025-12-11 00:57:32 +01:00
parent 1303a14493
commit 6a427eab57
112 changed files with 6148 additions and 2272 deletions

View File

@@ -37,11 +37,8 @@ import {
DollarSign,
} from 'lucide-react';
import {
getDriverRepository,
getDriverStats,
getAllDriverRankings,
getGetProfileOverviewUseCase,
getGetDriverTeamUseCase,
getSocialRepository,
getImageService,
getGetAllTeamsUseCase,
getGetTeamMembersUseCase,
@@ -321,6 +318,7 @@ export default function DriverDetailPage({
const [allTeamMemberships, setAllTeamMemberships] = useState<TeamMembershipInfo[]>([]);
const [friends, setFriends] = useState<Driver[]>([]);
const [friendRequestSent, setFriendRequestSent] = useState(false);
const [profileData, setProfileData] = useState<any>(null);
const unwrappedSearchParams = use(searchParams) as URLSearchParams | undefined;
@@ -362,24 +360,28 @@ export default function DriverDetailPage({
const loadDriver = async () => {
try {
const driverRepo = getDriverRepository();
const driverEntity = await driverRepo.findById(driverId);
// Use GetProfileOverviewUseCase to load all profile data
const profileUseCase = getGetProfileOverviewUseCase();
await profileUseCase.execute({ driverId });
const profileViewModel = profileUseCase.presenter.getViewModel();
if (!driverEntity) {
if (!profileViewModel || !profileViewModel.currentDriver) {
setError('Driver not found');
setLoading(false);
return;
}
const driverDto = EntityMappers.toDriverDTO(driverEntity);
if (!driverDto) {
setError('Driver not found');
setLoading(false);
return;
}
setDriver(driverDto);
// Set driver from ViewModel
const driverData: DriverDTO = {
id: profileViewModel.currentDriver.id,
name: profileViewModel.currentDriver.name,
iracingId: profileViewModel.currentDriver.iracingId,
country: profileViewModel.currentDriver.country,
bio: profileViewModel.currentDriver.bio || '',
joinedAt: profileViewModel.currentDriver.joinedAt,
};
setDriver(driverData);
setProfileData(profileViewModel);
// Load team data
const teamUseCase = getGetDriverTeamUseCase();
@@ -410,9 +412,14 @@ export default function DriverDetailPage({
}
setAllTeamMemberships(memberships);
// Load friends
const socialRepo = getSocialRepository();
const friendsList = await socialRepo.getFriends(driverId);
// Set friends from ViewModel
const friendsList = profileViewModel.socialSummary?.friends.map(f => {
return {
id: f.id,
name: f.name,
country: f.country,
} as Driver;
}) || [];
setFriends(friendsList);
} catch (err) {
setError(err instanceof Error ? err.message : 'Failed to load driver');
@@ -452,10 +459,9 @@ export default function DriverDetailPage({
);
}
const extendedProfile = getDemoExtendedProfile(driver.id);
const stats = getDriverStats(driver.id);
const allRankings = getAllDriverRankings();
const globalRank = stats?.overallRank ?? allRankings.findIndex(r => r.driverId === driver.id) + 1;
const extendedProfile = profileData?.extendedProfile || getDemoExtendedProfile(driver.id);
const stats = profileData?.stats || null;
const globalRank = profileData?.currentDriver?.globalRank || 1;
// Build sponsor insights for driver
const driverMetrics = [