start new -> upload new

This commit is contained in:
Qing
2022-06-14 21:33:42 +08:00
parent 335685d581
commit 19e7e816af
3 changed files with 40 additions and 16 deletions

View File

@@ -287,20 +287,30 @@ export default function Editor(props: EditorProps) {
// Zoom reset
const resetZoom = useCallback(() => {
if (!minScale || !original || !windowSize) {
if (!minScale) {
return
}
const viewport = viewportRef.current
if (!viewport) {
throw new Error('no viewport')
return
}
const offsetX = (windowSize.width - original.width * minScale) / 2
const offsetY = (windowSize.height - original.height * minScale) / 2
viewport.setTransform(offsetX, offsetY, minScale, 200, 'easeOutQuad')
viewport.setTransform(offsetX, offsetY, minScale, 0, 'easeOutQuad')
viewport.state.scale = minScale
setScale(minScale)
setPanned(false)
}, [viewportRef, minScale, original, windowSize])
}, [viewportRef, windowSize, original.width, windowSize.height, minScale])
useEffect(() => {
setLineGroups([])
setCurLineGroup([])
setRenders([])
resetZoom()
const imageSizeLimit = Math.max(original.width, original.height)
setSizeLimit(imageSizeLimit)
}, [resetZoom, file, original])
useEffect(() => {
window.addEventListener('resize', () => {

View File

@@ -1,4 +1,4 @@
import React, { useCallback, useState } from 'react'
import React, { useCallback, useEffect, useState } from 'react'
import Selector from '../shared/Selector'
const sizes = ['720', '1080', '2000', 'Original']
@@ -14,6 +14,10 @@ export default function SizeSelector(props: SizeSelectorProps) {
const [activeSize, setActiveSize] = useState<string>('Original')
const longSide: number = Math.max(originalWidth, originalHeight)
useEffect(() => {
setActiveSize('Original')
}, [originalHeight, originalWidth])
const getSizeShowName = useCallback(
(size: string) => {
if (size === 'Original') {