Spaces:
Configuration error
Configuration error
| import React from 'react' | |
| import { useRecoilState, useRecoilValue } from 'recoil' | |
| import { appState, croperState, settingState } from '../../store/Atoms' | |
| import Slider from '../Editor/Slider' | |
| import SettingBlock from '../Settings/SettingBlock' | |
| const ImageResizeScale = () => { | |
| const [setting, setSettingState] = useRecoilState(settingState) | |
| const app = useRecoilValue(appState) | |
| const croper = useRecoilValue(croperState) | |
| const handleSliderChange = (value: number) => { | |
| setSettingState(old => { | |
| return { ...old, sdScale: value } | |
| }) | |
| } | |
| const scaledWidth = () => { | |
| let width = app.imageWidth | |
| if (setting.showCroper) { | |
| width = croper.width | |
| } | |
| return Math.round((width * setting.sdScale) / 100) | |
| } | |
| const scaledHeight = () => { | |
| let height = app.imageHeight | |
| if (setting.showCroper) { | |
| height = croper.height | |
| } | |
| return Math.round((height * setting.sdScale) / 100) | |
| } | |
| return ( | |
| <SettingBlock | |
| className="sub-setting-block" | |
| title="Resize" | |
| titleSuffix={ | |
| <div className="resize-title-tile">{` ${scaledWidth()}x${scaledHeight()}`}</div> | |
| } | |
| desc="Resize the image before inpainting, the area outside the mask will not lose quality." | |
| input={ | |
| <Slider | |
| label="" | |
| width={70} | |
| min={50} | |
| max={100} | |
| value={setting.sdScale} | |
| onChange={handleSliderChange} | |
| /> | |
| } | |
| /> | |
| ) | |
| } | |
| export default ImageResizeScale | |