All files / src/pages/suppliers/dialogs/DeleteSupplierDialog DeleteSupplierSearchEmpty.tsx

100% Statements 63/63
100% Branches 4/4
100% Functions 1/1
100% Lines 63/63

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 641x 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 3x 3x 3x 3x 3x 3x 2x 2x 1x 1x 1x 1x 1x 1x 1x  
/**
 * @file DeleteSupplierSearchEmpty.tsx
 * @module dialogs/DeleteSupplierDialog/DeleteSupplierSearchEmpty
 *
 * @summary
 * Empty state message for supplier search.
 * Displays when no suppliers are found.
 *
 * @enterprise
 * - Pure presentation component
 * - Clear messaging for empty search results
 */
 
import * as React from 'react';
import { Typography } from '@mui/material';
import { useTranslation } from 'react-i18next';
 
/**
 * Props for DeleteSupplierSearchEmpty component.
 *
 * @interface DeleteSupplierSearchEmptyProps
 */
interface DeleteSupplierSearchEmptyProps {
  /** Whether search has been performed (query length >= 2) */
  hasSearched: boolean;
  /** Whether search is currently loading */
  isLoading: boolean;
}
 
/**
 * Empty state message for supplier search results.
 *
 * Shows "No suppliers found" message when search
 * has been performed but returned no results.
 *
 * @component
 * @param props - Component props
 * @returns JSX element with empty message, or null if no message needed
 *
 * @example
 * ```tsx
 * <DeleteSupplierSearchEmpty
 *   hasSearched={query.length >= 2}
 *   isLoading={loading}
 * />
 * ```
 */
export const DeleteSupplierSearchEmpty: React.FC<DeleteSupplierSearchEmptyProps> = ({
  hasSearched,
  isLoading,
}) => {
  const { t } = useTranslation(['suppliers']);
 
  if (!hasSearched || isLoading) {
    return null;
  }
 
  return (
    <Typography variant="body2" color="text.secondary" align="center" sx={{ py: 2 }}>
      {t('suppliers:search.noResults', 'No suppliers found')}
    </Typography>
  );
};