From 36b2662563786c7941c047bd4ad5b9099e800848 Mon Sep 17 00:00:00 2001 From: MellyGray Date: Tue, 2 May 2023 17:31:03 +0200 Subject: [PATCH 01/17] feat(VersionNumber): add getDataverseVersion use case to footer --- src/info/domain/models/DataverseVersion.ts | 1 + .../repositories/DataverseInfoRepository.ts | 5 ++ .../domain/useCases/getDataverseVersion.ts | 8 +++ src/sections/layout/footer/Footer.tsx | 11 +++- .../layout/footer/useDataverseVersion.tsx | 18 ++++++ tests/sections/layout/footer/Footer.test.tsx | 55 +++++++++++++++++++ 6 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 src/info/domain/models/DataverseVersion.ts create mode 100644 src/info/domain/repositories/DataverseInfoRepository.ts create mode 100644 src/info/domain/useCases/getDataverseVersion.ts create mode 100644 src/sections/layout/footer/useDataverseVersion.tsx create mode 100644 tests/sections/layout/footer/Footer.test.tsx diff --git a/src/info/domain/models/DataverseVersion.ts b/src/info/domain/models/DataverseVersion.ts new file mode 100644 index 000000000..bd032f7d7 --- /dev/null +++ b/src/info/domain/models/DataverseVersion.ts @@ -0,0 +1 @@ +export type DataverseVersion = `v. ${number} build ${string}` diff --git a/src/info/domain/repositories/DataverseInfoRepository.ts b/src/info/domain/repositories/DataverseInfoRepository.ts new file mode 100644 index 000000000..e984f030d --- /dev/null +++ b/src/info/domain/repositories/DataverseInfoRepository.ts @@ -0,0 +1,5 @@ +import { DataverseVersion } from '../models/DataverseVersion' + +export interface DataverseInfoRepository { + getVersion(): Promise +} diff --git a/src/info/domain/useCases/getDataverseVersion.ts b/src/info/domain/useCases/getDataverseVersion.ts new file mode 100644 index 000000000..595eae50e --- /dev/null +++ b/src/info/domain/useCases/getDataverseVersion.ts @@ -0,0 +1,8 @@ +import { DataverseInfoRepository } from '../repositories/DataverseInfoRepository' +import { DataverseVersion } from '../models/DataverseVersion' + +export function getDataverseVersion( + dataverseInfoRepository: DataverseInfoRepository +): Promise { + return dataverseInfoRepository.getVersion() +} diff --git a/src/sections/layout/footer/Footer.tsx b/src/sections/layout/footer/Footer.tsx index 87640535e..0ef852da1 100644 --- a/src/sections/layout/footer/Footer.tsx +++ b/src/sections/layout/footer/Footer.tsx @@ -4,9 +4,16 @@ import { Col } from '../../ui/grid/Col' import styles from './Footer.module.scss' import dataverseProjectLogo from './dataverse-project-logo.svg' import { useTranslation } from 'react-i18next' +import { DataverseInfoRepository } from '../../../info/domain/repositories/DataverseInfoRepository' +import { useDataverseVersion } from './useDataverseVersion' -export function Footer() { +interface FooterProps { + dataverseInfoRepository: DataverseInfoRepository +} + +export function Footer({ dataverseInfoRepository }: FooterProps) { const { t } = useTranslation('footer') + const { dataverseVersion } = useDataverseVersion(dataverseInfoRepository) return (