department-of-veterans-affairs/vets-website

View on GitHub
src/applications/mhv-medical-records/routes.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react';
import { Switch, Route } from 'react-router-dom';
import FEATURE_FLAG_NAMES from '@department-of-veterans-affairs/platform-utilities/featureFlagNames';
import PageNotFound from '@department-of-veterans-affairs/platform-site-wide/PageNotFound';
import { useMyHealthAccessGuard } from '~/platform/mhv/hooks/useMyHealthAccessGuard';
import FeatureFlagRoute from './components/shared/FeatureFlagRoute';
import AppRoute from './components/shared/AppRoute';
import HealthConditions from './containers/HealthConditions';
import VaccineDetails from './containers/VaccineDetails';
import Vaccines from './containers/Vaccines';
import VitalDetails from './containers/VitalDetails';
import Vitals from './containers/Vitals';
import LandingPage from './containers/LandingPage';
import LabsAndTests from './containers/LabsAndTests';
import CareSummariesAndNotes from './containers/CareSummariesAndNotes';
import ConditionDetails from './containers/ConditionDetails';
import LabAndTestDetails from './containers/LabAndTestDetails';
import Allergies from './containers/Allergies';
import AllergyDetails from './containers/AllergyDetails';
import CareSummariesDetails from './containers/CareSummariesDetails';
import DownloadRecordsPage from './containers/DownloadRecordsPage';
import SettingsPage from './containers/SettingsPage';
import RadiologyImagesList from './containers/RadiologyImagesList';
import RadiologySingleImage from './containers/RadiologySingleImage';

const AccessGuardWrapper = ({ children }) => {
  const redirectToMyHealth = useMyHealthAccessGuard();
  if (redirectToMyHealth) {
    return redirectToMyHealth;
  }
  return children;
};

const routes = (
  <AccessGuardWrapper>
    <Switch>
      <AppRoute exact path="/" key="Medical Records Home">
        <LandingPage />
      </AppRoute>
      <AppRoute exact path="/allergies" key="Allergies">
        <Allergies />
      </AppRoute>
      <AppRoute exact path="/allergies/:allergyId" key="AllergyDetails">
        <AllergyDetails />
      </AppRoute>
      <FeatureFlagRoute
        exact
        path="/vaccines"
        key="Vaccines"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayVaccines}
      >
        <Vaccines />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/vaccines/:vaccineId"
        key="Vaccine"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayVaccines}
      >
        <VaccineDetails />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/summaries-and-notes"
        key="CareSummariesAndNotes"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayNotes}
      >
        <CareSummariesAndNotes />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/summaries-and-notes/:summaryId"
        key="CareSummaryAndNotesDetails"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayNotes}
      >
        <CareSummariesDetails />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/conditions"
        key="Health Conditions"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayConditions}
      >
        <HealthConditions />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/conditions/:conditionId"
        key="Condition Details"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayConditions}
      >
        <ConditionDetails />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/vitals"
        key="Vitals"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayVitals}
      >
        <Vitals />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/vitals/:vitalType-history"
        key="VitalDetails"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayVitals}
      >
        <VitalDetails />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/labs-and-tests"
        key="LabsAndTests"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayLabsAndTests}
      >
        <LabsAndTests />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/labs-and-tests/:labId"
        key="LabAndTestDetails"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayLabsAndTests}
      >
        <LabAndTestDetails />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/labs-and-tests/:labId/images"
        key="RadiologyImagesList"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayLabsAndTests}
      >
        <RadiologyImagesList />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/labs-and-tests/:labId/images/:imageId"
        key="RadiologySingleImage"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplayLabsAndTests}
      >
        <RadiologySingleImage />
      </FeatureFlagRoute>
      <FeatureFlagRoute
        exact
        path="/settings"
        key="Settings"
        featureFlag={FEATURE_FLAG_NAMES.mhvMedicalRecordsDisplaySettingsPage}
      >
        <SettingsPage />
      </FeatureFlagRoute>
      <AppRoute exact path="/download-all" key="DownloadRecords">
        <DownloadRecordsPage />
      </AppRoute>
      <Route>
        <PageNotFound />
      </Route>
    </Switch>
  </AccessGuardWrapper>
);

export default routes;