diff --git a/src/renderer/components/shared/file-size-text.tsx b/src/renderer/components/shared/file-size-text.tsx new file mode 100644 index 00000000..aab0c14e --- /dev/null +++ b/src/renderer/components/shared/file-size-text.tsx @@ -0,0 +1,32 @@ +import { CSSProperties } from "react"; + +type Props = { + fileSize?: number; + wantInfoStyle: CSSProperties; +} + +export function FileSizeText({ fileSize, wantInfoStyle }: Props) { + + const verifyFileSize = fileSize !== undefined; + + const isMediumMod = verifyFileSize && fileSize > 1024 * 1024 * 50; // 50MB + + const isLargeMod = verifyFileSize && fileSize > 1024 * 1024 * 100; // 100MB + + const getFormattedSize = () : string => { + if (!verifyFileSize) + return `-`; + if (fileSize < 1024 * 1024) + return `${(fileSize/1024).toFixed(2)}KB`; + return `${(fileSize/1024/1024).toFixed(2)}MB`; + }; + + return ( + + {getFormattedSize()} + + {(isLargeMod ? `This is a very large mod!` : (isMediumMod ? `This is a large mod!` : "") || "")} + + + ); +} diff --git a/src/renderer/components/version-viewer/slides/mods/mod-item.component.tsx b/src/renderer/components/version-viewer/slides/mods/mod-item.component.tsx index 046fe18d..f7fb108a 100644 --- a/src/renderer/components/version-viewer/slides/mods/mod-item.component.tsx +++ b/src/renderer/components/version-viewer/slides/mods/mod-item.component.tsx @@ -7,6 +7,7 @@ import useDoubleClick from "use-double-click"; import { useOnUpdate } from "renderer/hooks/use-on-update.hook"; import striptags from "striptags"; import { safeGt } from "shared/helpers/semver.helpers"; +import { FileSizeText } from "renderer/components/shared/file-size-text"; type Props = { className?: string; @@ -51,22 +52,6 @@ export function ModItem({ className, mod, installedVersion, isDependency, isSele onChange(!isChecked); }; - const {fileSize} = mod.version; - - const verifyFileSize = fileSize !== undefined; - - const isMediumMod = verifyFileSize && fileSize/1024/1024 > 50; - - const isLargeMod = verifyFileSize && fileSize/1024/1024 > 100; - - const getFormattedSize = () : string => { - if (!verifyFileSize) - return `-`; - if (fileSize/1024 > 1024) - return `${Math.round(mod.version.fileSize/1024/1024)}MB`; - return `${Math.round(mod.version.fileSize/1024)}KB`; - }; - return (