department-of-veterans-affairs/vets-website

View on GitHub
src/applications/financial-status-report/utils/fileValidation.js

Summary

Maintainability
A
1 hr
Test Coverage
export const MAX_FILE_SIZE = 50 * 1024 * 1024;
export const FILE_TYPES = ['pdf', 'gif', 'jpeg', 'jpg', 'bmp', 'txt'];

export const isNotBlank = value => {
  return value !== '';
};

export const isValidFileSize = file => {
  return file.size < MAX_FILE_SIZE;
};

export const isEmptyFileSize = file => {
  return file.size === 0;
};

export const isValidFileType = file => {
  return FILE_TYPES.some(type => file.name.toLowerCase().endsWith(type));
};

export const isValidFile = file => {
  return (
    !!file &&
    isValidFileSize(file) &&
    !isEmptyFileSize(file) &&
    isValidFileType(file)
  );
};

export const isValidDocument = ({ file, docType }) => {
  return isNotBlank(docType.value) && isValidFile(file);
};

export const setFocus = selector => {
  const el =
    typeof selector === 'string' ? document.querySelector(selector) : selector;
  if (el) {
    el.setAttribute('tabIndex', -1);
    el.focus();
  }
};