Compare commits

...

4 Commits

Author SHA1 Message Date
Red Adaya cdeef49ec1 fix tabs freeze on touchpad scroll 2023-12-24 15:31:48 +08:00
Red Adaya 7e128c791b only pop modal when purging is successful 2023-12-23 11:34:56 +08:00
Red Adaya 09c4a42557 immediately hide modal when deleting workspace 2023-12-22 07:06:10 +08:00
Red J Adaya 75d1a435ae fix missing session ID (#178) 2023-12-19 16:18:44 -08:00
3 changed files with 17 additions and 9 deletions
+7 -4
View File
@@ -392,8 +392,8 @@ class SessionSettingsModal extends React.Component<{}, {}> {
constructor(props: any) {
super(props);
let sessionId = GlobalModel.sessionSettingsModal.get();
this.session = GlobalModel.getSessionById(sessionId);
this.sessionId = GlobalModel.sessionSettingsModal.get();
this.session = GlobalModel.getSessionById(this.sessionId);
if (this.session == null) {
return;
}
@@ -440,7 +440,7 @@ class SessionSettingsModal extends React.Component<{}, {}> {
return;
}
let prtn = GlobalCommandRunner.sessionPurge(this.sessionId);
commandRtnHandler(prtn, this.errorMessage);
commandRtnHandler(prtn, this.errorMessage, () => GlobalModel.modalsModel.popModal());
});
}
@@ -783,7 +783,10 @@ class ClientSettingsModal extends React.Component<{}, {}> {
<div className="settings-field">
<div className="settings-label">Check for Updates</div>
<div className="settings-input">
<Toggle checked={!cdata.clientopts.noreleasecheck} onChange={this.handleChangeReleaseCheck} />
<Toggle
checked={!cdata.clientopts.noreleasecheck}
onChange={this.handleChangeReleaseCheck}
/>
</div>
</div>
<div className="settings-field">
+6 -4
View File
@@ -17,6 +17,7 @@ import { ReactComponent as ActionsIcon } from "../../assets/icons/tab/actions.sv
import { ReactComponent as AddIcon } from "../../assets/icons/add.svg";
import * as constants from "../../appconst";
import { Reorder } from "framer-motion";
import { debounce } from "throttle-debounce";
import { MagicLayout } from "../../magiclayout";
import "../workspace.less";
@@ -86,11 +87,11 @@ class ScreenTabs extends React.Component<{ session: Session }, { showingScreens:
// Add the current deltaY to the history
this.deltaYHistory.push(Math.abs(event.deltaY));
if (this.deltaYHistory.length > 5) {
this.deltaYHistory.shift(); // Keep only the last 5 entries
if (this.deltaYHistory.length > 2) {
this.deltaYHistory.shift(); // Keep only the last 2 entries
}
// Check if any of the last 5 deltaY values are greater than a threshold
// Check if any of the last 2 deltaY values are greater than a threshold
let isMouseWheel = this.deltaYHistory.some((deltaY) => deltaY > 0);
if (isMouseWheel) {
@@ -108,7 +109,8 @@ class ScreenTabs extends React.Component<{ session: Session }, { showingScreens:
// Add the wheel event listener to the tabsRef
if (this.tabsRef.current) {
this.tabsRef.current.addEventListener("wheel", this.handleWheel, { passive: false });
let handleWheel = debounce(200, this.handleWheel);
this.tabsRef.current.addEventListener("wheel", handleWheel, { passive: false });
}
}
+4 -1
View File
@@ -390,9 +390,12 @@ function getColorRGB(colorInput) {
return computedColorStyle;
}
function commandRtnHandler(prtn: Promise<CommandRtnType>, errorMessage: OV<string>) {
function commandRtnHandler(prtn: Promise<CommandRtnType>, errorMessage: OV<string>, onSuccess?: () => void) {
prtn.then((crtn) => {
if (crtn.success) {
if (onSuccess) {
onSuccess();
}
return;
}
mobx.action(() => {