All files / src/components Layout.tsx

100% Statements 4/4
50% Branches 1/2
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102                        2x 4x   4x                                                                                                                                                                 2x          
import React, { ReactNode } from 'react'
import Header from './Header'
import Footer from './Footer'
import { useTranslation } from 'next-i18next'
 
interface LayoutProps {
  children: ReactNode
  locale?: string
  title?: string
  langToggleLink?: string
}
 
const Layout: React.FC<LayoutProps> = (props) => {
  const { t } = useTranslation('common')
 
  return (
    <>
      <Header
        language={props.locale ?? 'en'}
        langToggleLink={props.langToggleLink}
      />
 
      <main>
        <div>{props.children}</div>
      </main>
 
      <Footer
        footerLogoAltText="symbol2"
        footerLogoImage="/assets/wmms-blk.svg"
        footerNav1="aboutGovernment"
        footerNav2="aboutThisSite"
        links={[
          {
            link: t('footerSocialMediaURL'),
            linkText: t('footerSocialMedia'),
          },
          {
            link: t('footerMobileAppURL'),
            linkText: t('footerMobileApp'),
          },
          {
            link: t('footerAboutURL'),
            linkText: t('footerAbout'),
          },
          {
            link: t('footerTermsAndConditionURL'),
            linkText: t('footerTermsAndCondition'),
          },
          {
            link: t('footerPrivacyURL'),
            linkText: t('footerPrivacy'),
          },
        ]}
        footerBoxLinks={[
          {
            footerBoxlink: t('footerContactUsURL'),
            footerBoxLinkText: t('footerContactUs'),
          },
          {
            footerBoxlink: t('footerNewsURL'),
            footerBoxLinkText: t('footerNews'),
          },
          {
            footerBoxlink: t('footerPmURL'),
            footerBoxLinkText: t('footerPm'),
          },
          {
            footerBoxlink: t('footerDepartmentAgenciesURL'),
            footerBoxLinkText: t('footerDepartmentAgencies'),
          },
          {
            footerBoxlink: t('footerTreatiesURL'),
            footerBoxLinkText: t('footerTreaties'),
          },
          {
            footerBoxlink: t('footerHowGovWorksURL'),
            footerBoxLinkText: t('footerHowGovWorks'),
          },
          {
            footerBoxlink: t('footerPublicServiceURL'),
            footerBoxLinkText: t('footerPublicService'),
          },
          {
            footerBoxlink: t('footerGovReportingURL'),
            footerBoxLinkText: t('footerGovReporting'),
          },
          {
            footerBoxlink: t('footerOpenGovURL'),
            footerBoxLinkText: t('footerOpenGov'),
          },
        ]}
      />
    </>
  )
}
 
Layout.defaultProps = {
  title: 'Next Template - Canada.ca',
}
 
export default Layout