// @TODO use it everywhere or nowhere!
export type FileCategory = {
  name: String,
  aplCode: String,
  isEditable?: boolean,
  isSelected?: boolean
}

export type MediaLibraryProps = {
  onConfirm: Function,
  onUpdateImage: Function,
  onUpload: Function,
  onRemoveFile: Function,
  onCancel: Function,
  getPage: Function,
  limit?: number,
  minSizeInfo?: string,
  filesCategories: Array<FileCategory>,
  config?: {
    search: Array<Object>,
    multiselect: boolean,
    limit: number,
  },
}

export type MediaLibrarySearchProps = {
  media: Array<Object>,
  loadMore: Function,
  count: number,
  hasNext: boolean,
  selectedMediaItem: Object | false,
  minSizeInfo?: string,
  serchConfig: Array<Object>,
  hasSelected: boolean,
}

export type MediaLibraryState = {
  searchParameters: Object,
  media: Array<Object>,
  page: number,
  count: number,
  hasNext?: boolean,
  isLoading?: boolean,
  selectedMedia: Array<Object>,
  selectedMediaItem: Object | false,
  selectedCat?: FileCategory,
  orderBy: 'AZ_ASC' | 'AZ_DESC' | 'DATETIME_ASC' | 'DATETIME_DESC',
}