From 0bf4b83ecaf6fbcb4ccae6de3edfa985527086df Mon Sep 17 00:00:00 2001 From: Diego Franchina Date: Sun, 3 Sep 2023 14:09:13 +0200 Subject: [PATCH] Fix #4872: Added filesizeTypes Locale (#4870) * Added fileSizeTypes * refactor formatSize and added localeOption fileupload * Added fileSizeTypes * refactor formatSize and added localeOption fileupload * Added translation fileupload * added format --- components/doc/common/apidoc/index.json | 14 ++++++++++++++ components/lib/api/Locale.js | 2 ++ components/lib/api/api.d.ts | 8 ++++++++ components/lib/fileupload/FileUpload.js | 14 ++++++++------ components/lib/hooks/useLocale.js | 2 ++ 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/components/doc/common/apidoc/index.json b/components/doc/common/apidoc/index.json index d4afa7bfc9..8b31e94975 100644 --- a/components/doc/common/apidoc/index.json +++ b/components/doc/common/apidoc/index.json @@ -1709,6 +1709,20 @@ "type": "string", "description": "Close" }, + { + "name": "pending", + "optional": true, + "readonly": false, + "type": "string", + "description": "Pending" + }, + { + "name": "fileSizeTypes", + "optional": true, + "readonly": false, + "type": "string[]", + "description": "['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']" + }, { "name": "dayNames", "optional": true, diff --git a/components/lib/api/Locale.js b/components/lib/api/Locale.js index 7c38747ded..59d0a5d940 100644 --- a/components/lib/api/Locale.js +++ b/components/lib/api/Locale.js @@ -31,6 +31,8 @@ let locales = { choose: 'Choose', upload: 'Upload', cancel: 'Cancel', + pending: 'Pending', + fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], diff --git a/components/lib/api/api.d.ts b/components/lib/api/api.d.ts index 11a57762ad..b700ab915c 100644 --- a/components/lib/api/api.d.ts +++ b/components/lib/api/api.d.ts @@ -815,6 +815,14 @@ export interface LocaleOptions { * Close */ close?: string; + /** + * Pending + */ + pending?: string; + /** + * ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + */ + fileSizeTypes?: string[]; /** * ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] */ diff --git a/components/lib/fileupload/FileUpload.js b/components/lib/fileupload/FileUpload.js index b87e1bbe2f..9463b6d1e4 100644 --- a/components/lib/fileupload/FileUpload.js +++ b/components/lib/fileupload/FileUpload.js @@ -99,16 +99,18 @@ export const FileUpload = React.memo( }; const formatSize = (bytes) => { + const k = 1024; + const dm = 3; + const sizes = localeOption('fileSizeTypes'); + if (bytes === 0) { - return '0 B'; + return `0 ${sizes[0]}`; } - let k = 1000, - dm = 3, - sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], - i = Math.floor(Math.log(bytes) / Math.log(k)); + const i = Math.floor(Math.log(bytes) / Math.log(k)); + const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm)); - return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; + return `${formattedSize} ${sizes[i]}`; }; const onFileSelect = (event) => { diff --git a/components/lib/hooks/useLocale.js b/components/lib/hooks/useLocale.js index 810d260dfe..c2963f1931 100644 --- a/components/lib/hooks/useLocale.js +++ b/components/lib/hooks/useLocale.js @@ -34,6 +34,8 @@ let locales = { choose: 'Choose', upload: 'Upload', cancel: 'Cancel', + pending: 'Pending', + fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],