rokumatsumoto/boyutluseyler

View on GitHub
app/javascript/content_preview/store/getters.js

Summary

Maintainability
A
0 mins
Test Coverage
import getFileExtension from 'lib/utils/file_utils';
import VALID_IMAGE_EXTENSIONS from '../constants';

export const contentCount = state => state.contents.length;

export const getContent = state => dataType => state.contents.find(c => c.dataType === dataType);

export const getActiveContentCount = state => state.contents.filter(c => c.active).length;

export const getFiles = state => content =>
  // https://jsonapi.org/format/
  content.files.data.filter(f => f.type === content.dataType).map(f => f.attributes);

export const getValidFiles = (state, getters) => content =>
  getters.getFiles(content).filter(f => {
    const validUrl =
      content.fileExtensions.length === 0 ||
      content.fileExtensions.includes(getFileExtension(f.url).toLowerCase());
    const validThumbUrl =
      f.thumbUrl === '' ||
      VALID_IMAGE_EXTENSIONS.includes(getFileExtension(f.thumbUrl).toLowerCase());
    return validUrl && validThumbUrl;
  }) || [];