import type { MediaViewFileType } from '@features/media/types';
import { isImageFile } from '../../../../../lib/read-files';

/**
 * ドロップ/選択されたファイルを枠の種別 (accept) で絞り込む。
 * - 'image' (画像ブロックの枠): 画像 (image/svg/HEIC) のみ
 * - 'file' (ファイルブロックの枠): 画像以外のファイルのみ
 * - 'all' (エディタ本文への直接ドロップ): 全件 (混在可)
 *
 * アップロード前にこの関数で弾くことで、枠の種別に合わないファイルがそもそもアップロードされない。
 */
export const filterFilesByMediaType = (files: File[], accept: MediaViewFileType): File[] => {
  if (accept === 'image') {
    return files.filter((file) => isImageFile(file));
  }
  if (accept === 'file') {
    return files.filter((file) => !isImageFile(file));
  }
  return [...files];
};
