Skip to content

Commit 0485d55

Browse files
committed
fix: prevent reopening operation drawer after closing it by mouse's back button
1 parent 6a9c41b commit 0485d55

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

src/components/drawer/OperationDrawer.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Drawer, DrawerSize } from '@blueprintjs/core'
22

3+
import { SyntheticEvent } from 'react'
34
import { useSearchParams } from 'react-router-dom'
45

56
import { OperationSetViewer } from 'components/viewer/OperationSetViewer'
@@ -10,14 +11,24 @@ export function OperationDrawer() {
1011
const operationId = +(searchParams.get('op') || NaN) || undefined
1112
const operationSetId = +(searchParams.get('opset') || NaN) || undefined
1213

13-
const closeOperation = () => {
14+
const closeOperation = (e?: SyntheticEvent) => {
15+
// 如果是通过鼠标点击外面来触发的关闭,那么只在左键点击时关闭,避免用后退键点击时关闭后又立即打开的问题
16+
// (原因是后退键会先触发关闭,然后触发浏览器的后退操作,使页面回到上一个 URL,导致又触发打开)
17+
if (e?.nativeEvent instanceof MouseEvent && e.nativeEvent.button !== 0) {
18+
return
19+
}
20+
1421
setSearchParams((params) => {
1522
params.delete('op')
1623
return params
1724
})
1825
}
1926

20-
const closeOperationSet = () => {
27+
const closeOperationSet = (e?: SyntheticEvent) => {
28+
if (e?.nativeEvent instanceof MouseEvent && e.nativeEvent.button !== 0) {
29+
return
30+
}
31+
2132
setSearchParams((params) => {
2233
params.delete('opset')
2334
return params

0 commit comments

Comments
 (0)