vmi-virtual-memorial/vmi-wd-frontend / cc2b939

Browse files

better approach to documents indicator

Authored by espadonne
SHA
cc2b939d847b4f0d0504cee743f806d584eea1aa
Parents
62cb8d8
Tree
a95dfe0

4 changed files

StatusFile+-
M app/memorial/conflict/[id]/page.tsx 2 2
M app/memorial/page.tsx 2 10
M app/memorial/search/page.tsx 2 2
M lib/api.ts 2 2
app/memorial/conflict/[id]/page.tsxmodified
@@ -3,7 +3,7 @@
33
 import { useState, useEffect } from 'react';
44
 import Link from 'next/link';
55
 import { useParams } from 'next/navigation';
6
-import { getConflicts, getPeopleByConflict, Conflict, Person } from '@/lib/api';
6
+import { getConflicts, getPeopleByConflict, Conflict, PersonDetail } from '@/lib/api';
77
 import Header from '@/components/Header';
88
 import DocumentIcon from '@/components/DocumentIcon';
99
 
@@ -12,7 +12,7 @@ export default function ConflictPage() {
1212
   const conflictId = parseInt(params.id as string);
1313
   
1414
   const [conflict, setConflict] = useState<Conflict | null>(null);
15
-  const [people, setPeople] = useState<Person[]>([]);
15
+  const [people, setPeople] = useState<PersonDetail[]>([]);
1616
   const [loading, setLoading] = useState(true);
1717
   const [error, setError] = useState<string | null>(null);
1818
 
app/memorial/page.tsxmodified
@@ -4,15 +4,7 @@ import { useState, useEffect } from 'react';
44
 import Link from 'next/link';
55
 import Header from '@/components/Header';
66
 import DocumentIcon from '@/components/DocumentIcon';
7
-
8
-interface Person {
9
-  id: number;
10
-  display_name: string;
11
-  rank: string;
12
-  unit: string;
13
-  death_description?: string;
14
-  pdf_key?: string;
15
-}
7
+import { PersonDetail } from '@/lib/api';
168
 
179
 interface ConflictWithCasualties {
1810
   id: number;
@@ -21,7 +13,7 @@ interface ConflictWithCasualties {
2113
   end_year: number | null;
2214
   description: string;
2315
   casualty_count: number;
24
-  casualties: Person[];
16
+  casualties: PersonDetail[];
2517
 }
2618
 
2719
 export default function MemorialIndexPage() {
app/memorial/search/page.tsxmodified
@@ -2,7 +2,7 @@
22
 
33
 import { useState, useEffect } from 'react';
44
 import Link from 'next/link';
5
-import { searchPeople, getSearchFilters, PersonSearchResult, SearchFilters } from '@/lib/api';
5
+import { searchPeople, getSearchFilters, PersonDetail, SearchFilters } from '@/lib/api';
66
 import Header from '@/components/Header';
77
 import DocumentIcon from '@/components/DocumentIcon';
88
 
@@ -16,7 +16,7 @@ export default function MemorialSearchPage() {
1616
   const [noDate, setNoDate] = useState(false);
1717
   
1818
   // Results state
19
-  const [results, setResults] = useState<PersonSearchResult[]>([]);
19
+  const [results, setResults] = useState<PersonDetail[]>([]);
2020
   const [totalCount, setTotalCount] = useState(0);
2121
   const [loading, setLoading] = useState(false);
2222
   const [hasSearched, setHasSearched] = useState(false);
lib/api.tsmodified
@@ -139,7 +139,7 @@ export async function getConflicts(): Promise<Conflict[]> {
139139
 }
140140
 
141141
 // Fetch people by conflict
142
-export async function getPeopleByConflict(conflictId: number): Promise<Person[]> {
142
+export async function getPeopleByConflict(conflictId: number): Promise<PersonDetail[]> {
143143
   const response = await fetch(`${API_BASE_URL}/memorial/persons/?conflict=${conflictId}`);
144144
   if (!response.ok) {
145145
     throw new Error('Failed to fetch people');
@@ -167,7 +167,7 @@ export async function getMemorialIndex(): Promise<Conflict[]> {
167167
 }
168168
 
169169
 // Search people with filters
170
-export async function searchPeople(params: SearchParams): Promise<{ count: number; results: PersonSearchResult[] }> {
170
+export async function searchPeople(params: SearchParams): Promise<{ count: number; results: PersonDetail[] }> {
171171
   const queryParams = new URLSearchParams();
172172
   
173173
   if (params.q) queryParams.append('q', params.q);