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 => (