From 6dde6893a66a1e7bc2e203f8317de0718693a965 Mon Sep 17 00:00:00 2001 From: juhanikat Date: Thu, 28 Aug 2025 17:20:33 +0300 Subject: [PATCH] fix bug with update tab key props, and update references now show details properly, and the view link works, also change typing a lot --- backend/src/services/species.ts | 5 +-- .../DetailView/common/UpdateTab.tsx | 38 +++++++++++-------- .../src/components/Species/SpeciesDetails.tsx | 2 +- frontend/src/shared/types/data.ts | 6 ++- 4 files changed, 30 insertions(+), 21 deletions(-) diff --git a/backend/src/services/species.ts b/backend/src/services/species.ts index 6d12e950..ca317db5 100644 --- a/backend/src/services/species.ts +++ b/backend/src/services/species.ts @@ -94,14 +94,13 @@ export const getSpeciesDetails = async (id: number) => { now_sau: { include: { now_sr: { - select: { + include: { ref_ref: { - select: { + include: { ref_authors: true, ref_journal: true, }, }, - rid: true, }, }, }, diff --git a/frontend/src/components/DetailView/common/UpdateTab.tsx b/frontend/src/components/DetailView/common/UpdateTab.tsx index f875e918..7d6a7cca 100755 --- a/frontend/src/components/DetailView/common/UpdateTab.tsx +++ b/frontend/src/components/DetailView/common/UpdateTab.tsx @@ -1,4 +1,11 @@ -import { ReferenceOfUpdate, UpdateLog } from '@/shared/types' +import { + LocalityReference, + ReferenceOfUpdate, + SpeciesReference, + TimeBoundReference, + TimeUnitReference, + UpdateLog, +} from '@/shared/types' import { useDetailContext } from '@/components/DetailView/Context/DetailContext' import { EditingModal } from '@/components/DetailView/common/EditingModal' import { SimpleTable } from '@/components/DetailView/common/SimpleTable' @@ -18,9 +25,16 @@ const makeNameList = (names: Array) => { return names[0] ?? '' } -const ReferenceList = ({ references, big }: { references: ReferenceOfUpdate[]; big: boolean }) => { +const ReferenceList = ({ + references, + big, +}: { + references: Array + big: boolean +}) => { const getReferenceText = (ref: ReferenceOfUpdate) => { // php version: html/include/database.php -> referenceCitation() + //const ref = referenceOfUpdate.ref_ref const authors = makeNameList(ref.ref_authors.map(author => author.author_surname)) const issue = ref.issue ? ` (${ref.issue}) ` : '' if (ref.ref_type_id === 1) { @@ -37,6 +51,7 @@ const ReferenceList = ({ references, big }: { references: ReferenceOfUpdate[]; b // All other types return `${authors} ${ref.date_primary ? `(${ref.date_primary}). ` : ''} ${ref.title_primary?.concat('. ') ?? ''}${ref.title_secondary?.concat('. ') ?? ''}${ref.title_series?.concat('. ') ?? ''}${ref.gen_notes?.concat('.') ?? ''}` } + return ( {references.map(ref => ( @@ -44,7 +59,7 @@ const ReferenceList = ({ references, big }: { references: ReferenceOfUpdate[]; b key={ref.rid} sx={{ padding: '0.4em', margin: '0.5em', maxWidth: big ? '50em' : '30em', backgroundColor: 'lightblue' }} > -
{getReferenceText(ref)}
+
{getReferenceText(ref.ref_ref)}
{big && (
View @@ -90,10 +105,7 @@ export const UpdateTab = }) => ( - item.ref_ref)} - big={false} - /> + ), }, { @@ -105,7 +117,7 @@ export const UpdateTab = ), }, @@ -118,7 +130,7 @@ export const UpdateTab = ({ +const DetailsModal = ({ updates, references, comment, @@ -127,7 +139,7 @@ const DetailsModal = ({ coordinator, }: { updates: UpdateLog[] - references: RefType[] + references: Array comment: string date: Date authorizer: string @@ -179,11 +191,7 @@ const DetailsModal = ({

References

- {references.length === 0 ? ( - Update has no references. - ) : ( - ref.ref_ref)} big /> - )} + {references.length === 0 ? Update has no references. : }

Changed database values

diff --git a/frontend/src/components/Species/SpeciesDetails.tsx b/frontend/src/components/Species/SpeciesDetails.tsx index c2ed6f33..c09fa73b 100755 --- a/frontend/src/components/Species/SpeciesDetails.tsx +++ b/frontend/src/components/Species/SpeciesDetails.tsx @@ -24,7 +24,7 @@ export const SpeciesDetails = () => { document.title = 'New species' } const [editSpeciesRequest, { isLoading: mutationLoading }] = useEditSpeciesMutation() - const { isError, isFetching, data } = useGetSpeciesDetailsQuery(id!, { skip: isNew }) + const { isError, isFetching, data } = useGetSpeciesDetailsQuery(encodeURIComponent(id!), { skip: isNew }) const { notify } = useNotify() const navigate = useNavigate() const [deleteMutation, { isSuccess: deleteSuccess, isError: deleteError }] = useDeleteSpeciesMutation() diff --git a/frontend/src/shared/types/data.ts b/frontend/src/shared/types/data.ts index 8b47bb03..40c14eab 100755 --- a/frontend/src/shared/types/data.ts +++ b/frontend/src/shared/types/data.ts @@ -443,8 +443,10 @@ export type ReferenceOfUpdate = Prisma.ref_ref & { ref_journal: Prisma.ref_journal } -export type LocalityReference = Prisma.now_lr & ReferenceOfUpdate -export type SpeciesReference = Prisma.now_sr & ReferenceOfUpdate +export type LocalityReference = Prisma.now_lr & { ref_ref: ReferenceOfUpdate } +export type SpeciesReference = Prisma.now_sr & { ref_ref: ReferenceOfUpdate } +export type TimeUnitReference = Prisma.now_tr & { ref_ref: ReferenceOfUpdate } +export type TimeBoundReference = Prisma.now_br & { ref_ref: ReferenceOfUpdate } export type ReferenceJournalType = { journal_id?: number