diff --git a/frontend/src/components/Species/Tabs/SynonymTab.tsx b/frontend/src/components/Species/Tabs/SynonymTab.tsx index 914b5f12..8e8cd9ef 100755 --- a/frontend/src/components/Species/Tabs/SynonymTab.tsx +++ b/frontend/src/components/Species/Tabs/SynonymTab.tsx @@ -7,9 +7,13 @@ import { EditingForm, EditingFormField } from '@/components/DetailView/common/Ed import { useNotify } from '@/hooks/notification' import { validateSynonym } from '@/shared/validators/synonym' import { convertSynonymTaxonomyFields } from '@/util/taxonomyUtilities' +import { useGetAllSpeciesQuery } from '@/redux/speciesReducer' +import { skipToken } from '@reduxjs/toolkit/query' +import { CircularProgress } from '@mui/material' export const SynonymTab = () => { const { mode, setEditData, editData } = useDetailContext() + const { data: speciesQueryData, isFetching } = useGetAllSpeciesQuery(mode.read ? skipToken : undefined) const { notify } = useNotify() const convertAndCheckNewSynonymTaxonomy = (newSynonym: EditDataType) => { @@ -43,6 +47,21 @@ export const SynonymTab = () => { } } + for (const existingSpecies of speciesQueryData!) { + if ( + convertedSynonym.syn_genus_name === existingSpecies.genus_name && + convertedSynonym.syn_species_name === existingSpecies.species_name + ) { + notify( + `${convertedSynonym.syn_genus_name} ${convertedSynonym.syn_species_name} \ + has already been created as a separate species, adding it as a synonym is currently not allowed.`, + 'error', + null + ) + return false + } + } + return convertedSynonym } @@ -88,6 +107,8 @@ export const SynonymTab = () => { /> ) + if (isFetching) return + return ( <> diff --git a/frontend/src/util/taxonomyUtilities.tsx b/frontend/src/util/taxonomyUtilities.tsx index 73644ae4..4c226a66 100644 --- a/frontend/src/util/taxonomyUtilities.tsx +++ b/frontend/src/util/taxonomyUtilities.tsx @@ -19,6 +19,9 @@ const isDuplicateTaxon = (newSpecies: EditDataType, existingSpecies: Sp newSpecies.species_name === existingSpecies.species_name && newSpecies.unique_identifier === existingSpecies.unique_identifier ) { + console.log('joo') + console.log(newSpecies) + console.log(existingSpecies) return true }