From 56238c5068967f04b54f2e7492decd12cb02119c Mon Sep 17 00:00:00 2001 From: Sanster Date: Mon, 7 Feb 2022 21:08:38 +0800 Subject: [PATCH] SizeSelector only show smaller size --- .../app/src/components/SizeSelector.tsx | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/lama_cleaner/app/src/components/SizeSelector.tsx b/lama_cleaner/app/src/components/SizeSelector.tsx index 0f9151b..c8c8ae1 100644 --- a/lama_cleaner/app/src/components/SizeSelector.tsx +++ b/lama_cleaner/app/src/components/SizeSelector.tsx @@ -1,4 +1,4 @@ -import React, { FocusEvent } from 'react' +import React, { FocusEvent, useCallback } from 'react' import { Listbox } from '@headlessui/react' import { CheckIcon, SelectorIcon } from '@heroicons/react/solid' @@ -35,15 +35,31 @@ export default function SizeSelector(props: SizeSelectorProps) { e.currentTarget.blur() } + const getValidSizes = useCallback((): string[] => { + const longSide: number = + originalWidth > originalHeight ? originalWidth : originalHeight + + const validSizes = [] + for (let i = 0; i < sizes.length; i += 1) { + const s = sizes[i] + if (s === 'Original') { + validSizes.push(s) + } else if (parseInt(s, 10) <= longSide) { + validSizes.push(s) + } + } + return validSizes + }, [originalHeight, originalWidth]) + return (
- {sizes.map(size => ( + {getValidSizes().map(size => (