diff --git a/common/version.go b/common/version.go index 6fe624059..4320ad911 100644 --- a/common/version.go +++ b/common/version.go @@ -10,7 +10,7 @@ import ( var Version = "0.4.1" // DevVersion is the service current development version. -var DevVersion = "0.4.1" +var DevVersion = "0.4.2" func GetCurrentVersion(mode string) string { if mode == "dev" { diff --git a/web/src/components/Dialog/BaseDialog.tsx b/web/src/components/Dialog/BaseDialog.tsx index 1e40629ff..7d92fa6b3 100644 --- a/web/src/components/Dialog/BaseDialog.tsx +++ b/web/src/components/Dialog/BaseDialog.tsx @@ -1,3 +1,4 @@ +import { useEffect } from "react"; import { createRoot } from "react-dom/client"; import { Provider } from "react-redux"; import { ANIMATION_DURATION } from "../../helpers/consts"; @@ -16,6 +17,20 @@ interface Props extends DialogConfig, DialogProps { const BaseDialog: React.FC = (props: Props) => { const { children, className, clickSpaceDestroy, destroy } = props; + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + if (event.code === "Escape") { + destroy(); + } + }; + + document.body.addEventListener("keydown", handleKeyDown); + + return () => { + document.body.removeEventListener("keydown", handleKeyDown); + }; + }, []); + const handleSpaceClicked = () => { if (clickSpaceDestroy) { destroy(); diff --git a/web/src/components/Memo.tsx b/web/src/components/Memo.tsx index 92c4f9f32..68cc045c0 100644 --- a/web/src/components/Memo.tsx +++ b/web/src/components/Memo.tsx @@ -200,7 +200,7 @@ const Memo: React.FC = (props: Props) => {
- + {memo.pinned ? t("common.unpin") : t("common.pin")}
diff --git a/web/src/components/PreviewImageDialog.tsx b/web/src/components/PreviewImageDialog.tsx index a8d2d593b..3266672da 100644 --- a/web/src/components/PreviewImageDialog.tsx +++ b/web/src/components/PreviewImageDialog.tsx @@ -19,6 +19,10 @@ const PreviewImageDialog: React.FC = ({ destroy, imgUrl }: Props) => { a.click(); }; + const handleImgContainerClick = () => { + destroy(); + }; + return ( <>
@@ -29,8 +33,8 @@ const PreviewImageDialog: React.FC = ({ destroy, imgUrl }: Props) => {
-
- +
+ e.stopPropagation()} src={imgUrl} />
);