import React, { FocusEvent } from 'react' import { Listbox } from '@headlessui/react' import { CheckIcon, SelectorIcon } from '@heroicons/react/solid' const sizes = ['1080', '2000', 'Original'] type SizeSelectorProps = { value: string originalWidth: number originalHeight: number onChange: (value: string) => void } export default function SizeSelector(props: SizeSelectorProps) { const { value, originalHeight, originalWidth, onChange } = props const getSizeShowName = (size: string) => { if (size === 'Original') { return `${originalWidth}x${originalHeight}(${size})` } const length: number = parseInt(size, 10) const longSide: number = originalWidth > originalHeight ? originalWidth : originalHeight const scale = length / longSide if (originalWidth > originalHeight) { const newHeight = Math.ceil(scale * originalHeight) return `${size}x${newHeight}` } const newWidth = Math.ceil(scale * originalWidth) return `${newWidth}x${size}` } const onButtonFocus = (e: FocusEvent) => { e.currentTarget.blur() } return (
{sizes.map(size => ( `${active ? 'bg-black bg-opacity-10' : 'text-gray-900'} cursor-default select-none relative py-2 pl-4 pr-4` } value={size} > {({ selected, active }) => ( <> {getSizeShowName(size)} {/* {selected ? ( ) : null} */} )} ))} {getSizeShowName(value)}
) }