wip
This commit is contained in:
@@ -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 = [
|
||||
|
||||
Reference in New Issue
Block a user