ant-design/components/upload/utils.tsx

60 lines
1.3 KiB
TypeScript
Raw Normal View History

2017-11-20 16:43:25 +08:00
import { UploadFile } from './interface';
export function T() {
return true;
}
// Fix IE file.status problem
// via coping a new Object
2017-11-20 16:43:25 +08:00
export function fileToObject(file: UploadFile) {
return {
lastModified: file.lastModified,
lastModifiedDate: file.lastModifiedDate,
name: file.filename || file.name,
size: file.size,
type: file.type,
uid: file.uid,
response: file.response,
error: file.error,
percent: 0,
2017-11-20 16:43:25 +08:00
originFileObj: file as (File | UploadFile),
} as UploadFile;
}
/**
* Progress percent: 0.1 -> 0.98
* - for ie
*/
export function genPercentAdd() {
let k = 0.1;
const i = 0.01;
const end = 0.98;
2017-11-20 16:43:25 +08:00
return function (s: number) {
let start = s;
if (start >= end) {
return start;
}
start += k;
k = k - i;
if (k < 0.001) {
k = 0.001;
}
return start * 100;
};
}
2017-11-20 16:43:25 +08:00
export function getFileItem(file: UploadFile, fileList: UploadFile[]) {
const matchKey = file.uid !== undefined ? 'uid' : 'name';
return fileList.filter(item => item[matchKey] === file[matchKey])[0];
}
2017-11-20 16:43:25 +08:00
export function removeFileItem(file: UploadFile, fileList: UploadFile[]) {
const matchKey = file.uid !== undefined ? 'uid' : 'name';
const removed = fileList.filter(item => item[matchKey] !== file[matchKey]);
if (removed.length === fileList.length) {
return null;
}
return removed;
}