use key props to reload workspace when upload new file

This commit is contained in:
Qing
2022-06-28 22:25:52 +08:00
parent 689d61968c
commit 0daa27e11a
5 changed files with 27 additions and 21 deletions

View File

@@ -295,7 +295,7 @@ export default function Editor(props: EditorProps) {
// Zoom reset
const resetZoom = useCallback(() => {
if (!minScale) {
if (!minScale || !original || !windowSize) {
return
}
const viewport = viewportRef.current
@@ -304,12 +304,19 @@ export default function Editor(props: EditorProps) {
}
const offsetX = (windowSize.width - original.width * minScale) / 2
const offsetY = (windowSize.height - original.height * minScale) / 2
viewport.setTransform(offsetX, offsetY, minScale, 0, 'easeOutQuad')
viewport.setTransform(offsetX, offsetY, minScale, 200, 'easeOutQuad')
viewport.state.scale = minScale
setScale(minScale)
setPanned(false)
}, [viewportRef, windowSize, original.width, windowSize.height, minScale])
}, [
viewportRef,
windowSize,
original,
original.width,
windowSize.height,
minScale,
])
const resetRedoState = () => {
setRedoCurLines([])
@@ -317,18 +324,6 @@ export default function Editor(props: EditorProps) {
setRedoRenders([])
}
useEffect(() => {
setLineGroups([])
setCurLineGroup([])
setRenders([])
resetRedoState()
resetZoom()
const imageSizeLimit = Math.max(original.width, original.height)
setSizeLimit(imageSizeLimit)
}, [resetZoom, file, original])
useEffect(() => {
window.addEventListener('resize', () => {
resetZoom()