diff --git a/src/components/pages/common/status-badge.tsx b/src/components/pages/common/status-badge.tsx index d8b0b408c..25a6c55c2 100644 --- a/src/components/pages/common/status-badge.tsx +++ b/src/components/pages/common/status-badge.tsx @@ -13,12 +13,12 @@ interface TaxonStatusBadgeProps { function TaxonStatusBadge({ reco, taxonId, crumbs }: TaxonStatusBadgeProps) { const { t } = useTranslation(); - const taxonLink = `/taxonomy/list?taxonId=${taxonId}&showTaxon=${taxonId}`; + const taxonLink = `/taxonomy/list`; switch (reco?.status) { case "ACCEPTED": return ( - + {t("common:accepted")} diff --git a/src/components/pages/taxonomy/list/table/taxon-modal/document/index.tsx b/src/components/pages/taxonomy/list/table/taxon-modal/document/index.tsx new file mode 100644 index 000000000..8645276bd --- /dev/null +++ b/src/components/pages/taxonomy/list/table/taxon-modal/document/index.tsx @@ -0,0 +1,25 @@ +import { Box, Skeleton, Text } from "@chakra-ui/react"; +import React from "react"; + +import useDocumentCount from "./use-document-count"; + +export function DocumentsLink({ showTaxon }) { + const { countsData } = useDocumentCount(showTaxon); + //const { t } = useTranslation(); + + return ( +
+ + + + {countsData.value || 0} + + {/* + {t("taxon:modal.data_links.observations")} + */} + Documents + + +
+ ); +} diff --git a/src/components/pages/taxonomy/list/table/taxon-modal/document/use-document-count.tsx b/src/components/pages/taxonomy/list/table/taxon-modal/document/use-document-count.tsx new file mode 100644 index 000000000..e96621053 --- /dev/null +++ b/src/components/pages/taxonomy/list/table/taxon-modal/document/use-document-count.tsx @@ -0,0 +1,27 @@ +import { axGetDocumentDataByTaxonId } from "@services/document.service"; +import { useEffect, useState } from "react"; + +export default function useDocumentCount(taxon) { + const [count, setCount] = useState(null); + const [isLoading, setIsLoading] = useState(true); + + const getData = async (taxon) => { + setIsLoading(true); + + const { success, data } = await axGetDocumentDataByTaxonId(taxon); + + if (success) { + setCount(data.length); + } + + setIsLoading(false); + }; + + useEffect(() => { + getData(taxon); + }, []); + + return { + countsData: { value: count, isLoading: isLoading } + }; +} diff --git a/src/components/pages/taxonomy/list/table/taxon-modal/tabs/attributes/attributes-table.tsx b/src/components/pages/taxonomy/list/table/taxon-modal/tabs/attributes/attributes-table.tsx index 2d33c8945..8f72c8cc1 100644 --- a/src/components/pages/taxonomy/list/table/taxon-modal/tabs/attributes/attributes-table.tsx +++ b/src/components/pages/taxonomy/list/table/taxon-modal/tabs/attributes/attributes-table.tsx @@ -4,6 +4,7 @@ import { getInjectableHTML } from "@utils/text"; import useTranslation from "next-translate/useTranslation"; import React from "react"; +import { DocumentsLink } from "../../document"; import { ObservationsLink } from "../../observation"; import { SpeciesPageLink } from "../../species"; @@ -20,6 +21,7 @@ export function TaxonAttributesTable() { + {t("common:information")} diff --git a/src/services/document.service.ts b/src/services/document.service.ts index 3d0a5c0af..2f33d45d5 100644 --- a/src/services/document.service.ts +++ b/src/services/document.service.ts @@ -275,3 +275,13 @@ export const axUpdateScientifcNameToIsDeleted = async (nameId) => { return { succes: false, data: {} }; } }; + +export const axGetDocumentDataByTaxonId = async (taxonId) => { + try { + const { data } = await plainHttp.get(`${ENDPOINT.DOCUMENT}/v1/services/taxonomy/${taxonId}`); + return { success: true, data }; + } catch (e) { + console.error(e); + return { succes: false, data: {} }; + } +};