chore: update dialog event listener

This commit is contained in:
Steven 2022-08-30 07:41:28 +08:00
parent e7b287902b
commit 2a11aed881
4 changed files with 23 additions and 4 deletions

View File

@ -10,7 +10,7 @@ import (
var Version = "0.4.1" var Version = "0.4.1"
// DevVersion is the service current development version. // DevVersion is the service current development version.
var DevVersion = "0.4.1" var DevVersion = "0.4.2"
func GetCurrentVersion(mode string) string { func GetCurrentVersion(mode string) string {
if mode == "dev" { if mode == "dev" {

View File

@ -1,3 +1,4 @@
import { useEffect } from "react";
import { createRoot } from "react-dom/client"; import { createRoot } from "react-dom/client";
import { Provider } from "react-redux"; import { Provider } from "react-redux";
import { ANIMATION_DURATION } from "../../helpers/consts"; import { ANIMATION_DURATION } from "../../helpers/consts";
@ -16,6 +17,20 @@ interface Props extends DialogConfig, DialogProps {
const BaseDialog: React.FC<Props> = (props: Props) => { const BaseDialog: React.FC<Props> = (props: Props) => {
const { children, className, clickSpaceDestroy, destroy } = 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 = () => { const handleSpaceClicked = () => {
if (clickSpaceDestroy) { if (clickSpaceDestroy) {
destroy(); destroy();

View File

@ -200,7 +200,7 @@ const Memo: React.FC<Props> = (props: Props) => {
<div className="more-action-btns-container"> <div className="more-action-btns-container">
<div className="btns-container"> <div className="btns-container">
<div className="btn" onClick={handleTogglePinMemoBtnClick}> <div className="btn" onClick={handleTogglePinMemoBtnClick}>
<Icon.MapPin className={`icon-img ${memo.pinned ? "" : "opacity-20"}`} /> <Icon.Flag className={`icon-img ${memo.pinned ? "" : "opacity-20"}`} />
<span className="tip-text">{memo.pinned ? t("common.unpin") : t("common.pin")}</span> <span className="tip-text">{memo.pinned ? t("common.unpin") : t("common.pin")}</span>
</div> </div>
<div className="btn" onClick={handleEditMemoClick}> <div className="btn" onClick={handleEditMemoClick}>

View File

@ -19,6 +19,10 @@ const PreviewImageDialog: React.FC<Props> = ({ destroy, imgUrl }: Props) => {
a.click(); a.click();
}; };
const handleImgContainerClick = () => {
destroy();
};
return ( return (
<> <>
<div className="btns-container"> <div className="btns-container">
@ -29,8 +33,8 @@ const PreviewImageDialog: React.FC<Props> = ({ destroy, imgUrl }: Props) => {
<Icon.Download className="icon-img" /> <Icon.Download className="icon-img" />
</button> </button>
</div> </div>
<div className="img-container"> <div className="img-container" onClick={handleImgContainerClick}>
<img src={imgUrl} /> <img onClick={(e) => e.stopPropagation()} src={imgUrl} />
</div> </div>
</> </>
); );