All files / src/app/footer FooterLegal.tsx

100% Statements 75/75
100% Branches 1/1
100% Functions 1/1
100% Lines 75/75

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 761x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x  
/**
 * @file FooterLegal.tsx
 * @module app/footer/FooterLegal
 *
 * @summary
 * Footer legal and copyright information component.
 * Displays copyright, version, build ID, and environment metadata.
 *
 * @enterprise
 * - Legal and meta information display
 * - Version and build tracking
 * - Environment identification
 * - i18n support for all text
 * - Full TypeDoc coverage for legal section
 */
 
import { Box, Typography } from '@mui/material';
import { useTranslation } from 'react-i18next';
 
interface FooterLegalProps {
  /** Application version number */
  appVersion: string;
 
  /** Build ID or commit hash */
  buildId: string;
 
  /** Environment name (e.g., "Production (Koyeb)") */
  environment: string;
}
 
/**
 * Footer legal and meta information component.
 *
 * Displays copyright notice, version, build ID, and environment information.
 * Isolated from other footer sections for independent testing and reuse.
 *
 * @param props - Component props
 * @returns JSX element rendering legal and meta information
 *
 * @example
 * ```tsx
 * <FooterLegal
 *   appVersion="1.0.0"
 *   buildId="4a9c12f"
 *   environment="Production (Koyeb)"
 * />
 * ```
 */
export default function FooterLegal({
  appVersion,
  buildId,
  environment,
}: FooterLegalProps) {
  const { t } = useTranslation(['footer']);
 
  return (
    <Box sx={{ minWidth: 0, flex: 1 }}>
      <Typography
        variant="caption"
        sx={{ fontWeight: 600, display: 'block', mb: 0.25 }}
      >
        {t('footer:section.legal', 'Legal & Meta')}
      </Typography>
      <Typography variant="caption" color="text.secondary" display="block">
        © 2025 Smart Supply Pro • {t('footer:legal.rights', 'All rights reserved')}
      </Typography>
      <Typography variant="caption" color="text.secondary" display="block">
        {t('footer:meta.version', 'Version')}: {appVersion} • {t('footer:meta.build', 'Build')}: {buildId}
      </Typography>
      <Typography variant="caption" color="text.secondary" display="block">
        {t('footer:meta.environment', 'Environment')}: {environment}
      </Typography>
    </Box>
  );
}