Skip to content

Commit 4296c58

Browse files
committed
Revert "feat: add mouse jiggler function"
This reverts commit cd0b52c.
1 parent e3cf5ac commit 4296c58

9 files changed

Lines changed: 11 additions & 176 deletions

File tree

browser/src/components/menu/mouse/index.tsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { useAtom, useSetAtom } from 'jotai';
44
import { MouseIcon } from 'lucide-react';
55

66
import {
7-
mouseJigglerModeAtom,
87
mouseModeAtom,
98
mouseStyleAtom,
109
scrollDirectionAtom,
@@ -13,7 +12,6 @@ import {
1312
import * as storage from '@/libs/storage';
1413

1514
import { Direction } from './direction.tsx';
16-
import { Jiggler } from './jiggler.tsx';
1715
import { Mode } from './mode.tsx';
1816
import { Speed } from './speed.tsx';
1917
import { Style } from './style.tsx';
@@ -23,7 +21,6 @@ export const Mouse = () => {
2321
const [mouseMode, setMouseMode] = useAtom(mouseModeAtom);
2422
const setScrollDirection = useSetAtom(scrollDirectionAtom);
2523
const setScrollInterval = useSetAtom(scrollIntervalAtom);
26-
const [mouseJigglerMode, setMouseJigglerMode] = useAtom(mouseJigglerModeAtom);
2724

2825
const [isPopoverOpen, setIsPopoverOpen] = useState(false);
2926

@@ -51,11 +48,6 @@ export const Mouse = () => {
5148
if (interval) {
5249
setScrollInterval(interval);
5350
}
54-
55-
const jiggler = storage.getMouseJigglerMode();
56-
if (mouseJigglerMode !== jiggler) {
57-
setMouseJigglerMode(jiggler);
58-
}
5951
}
6052

6153
const content = (
@@ -64,7 +56,6 @@ export const Mouse = () => {
6456
<Mode />
6557
<Direction />
6658
<Speed />
67-
<Jiggler />
6859
</>
6960
);
7061

browser/src/components/menu/mouse/jiggler.tsx

Lines changed: 0 additions & 49 deletions
This file was deleted.

browser/src/components/mouse/absolute.tsx

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
11
import { useEffect, useRef } from 'react';
2-
import { useAtomValue, useSetAtom } from 'jotai';
2+
import { useAtomValue } from 'jotai';
33

44
import { resolutionAtom } from '@/jotai/device.ts';
5-
import {
6-
mouseJigglerModeAtom,
7-
mouseLastMoveTimeAtom,
8-
scrollDirectionAtom,
9-
scrollIntervalAtom
10-
} from '@/jotai/mouse.ts';
5+
import { scrollDirectionAtom, scrollIntervalAtom } from '@/jotai/mouse.ts';
116
import { device } from '@/libs/device';
127
import { Key } from '@/libs/device/mouse.ts';
138

149
export const Absolute = () => {
1510
const resolution = useAtomValue(resolutionAtom);
1611
const scrollDirection = useAtomValue(scrollDirectionAtom);
1712
const scrollInterval = useAtomValue(scrollIntervalAtom);
18-
const mouseJigglerMode = useAtomValue(mouseJigglerModeAtom);
19-
const setMouseLastMoveTime = useSetAtom(mouseLastMoveTimeAtom);
2013

2114
const keyRef = useRef<Key>(new Key());
2215
const lastScrollTimeRef = useRef(0);
@@ -81,11 +74,6 @@ export const Absolute = () => {
8174
async function handleMouseMove(event: any) {
8275
disableEvent(event);
8376
await send(event);
84-
85-
// mouse jiggler record last move time
86-
if (mouseJigglerMode === 'enable') {
87-
setMouseLastMoveTime(Date.now());
88-
}
8977
}
9078

9179
// mouse scroll
@@ -157,7 +145,7 @@ export const Absolute = () => {
157145
canvas.removeEventListener('click', disableEvent);
158146
canvas.removeEventListener('contextmenu', disableEvent);
159147
};
160-
}, [resolution, scrollDirection, scrollInterval, mouseJigglerMode, setMouseLastMoveTime]);
148+
}, [resolution, scrollDirection, scrollInterval]);
161149

162150
// disable default events
163151
function disableEvent(event: any) {
Lines changed: 2 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,12 @@
1-
import { useEffect, useRef } from 'react';
2-
import { useAtom, useAtomValue } from 'jotai';
1+
import { useAtomValue } from 'jotai';
32

4-
import {
5-
mouseJigglerIntervalAtom,
6-
mouseJigglerModeAtom,
7-
mouseJigglerTimerAtom,
8-
mouseLastMoveTimeAtom,
9-
mouseModeAtom
10-
} from '@/jotai/mouse.ts';
11-
import { device } from '@/libs/device/index.ts';
12-
import { Key } from '@/libs/device/mouse.ts';
3+
import { mouseModeAtom } from '@/jotai/mouse.ts';
134

145
import { Absolute } from './absolute.tsx';
156
import { Relative } from './relative.tsx';
167

178
export const Mouse = () => {
189
const mouseMode = useAtomValue(mouseModeAtom);
1910

20-
// mouse jiggler
21-
const mouseJigglerMode = useAtomValue(mouseJigglerModeAtom);
22-
const [mouseJigglerTimer, setMouseJigglerTimer] = useAtom(mouseJigglerTimerAtom);
23-
const mouseJigglerInterval = useAtomValue(mouseJigglerIntervalAtom);
24-
const mouseLastMoveTime = useAtomValue(mouseLastMoveTimeAtom);
25-
const mouseLastMoveTimeRef = useRef(mouseLastMoveTime);
26-
const emptyKeyRef = useRef<Key>(new Key());
27-
useEffect(() => {
28-
// sync mouseLastMoveTime through ref
29-
mouseLastMoveTimeRef.current = mouseLastMoveTime;
30-
}, [mouseLastMoveTime]);
31-
useEffect(() => {
32-
async function jigglerTimerCallback() {
33-
if (Date.now() - mouseLastMoveTimeRef.current < mouseJigglerInterval) {
34-
return;
35-
}
36-
37-
const rect = document.getElementById('video')!.getBoundingClientRect();
38-
39-
await device.sendMouseAbsoluteData(
40-
emptyKeyRef.current,
41-
rect.width,
42-
rect.height,
43-
rect.width / 2,
44-
rect.height / 2,
45-
0
46-
);
47-
}
48-
49-
// configure interval timer
50-
if (mouseJigglerMode === 'enable') {
51-
if (mouseJigglerTimer === null) {
52-
const timer = setInterval(jigglerTimerCallback, mouseJigglerInterval);
53-
setMouseJigglerTimer(timer);
54-
}
55-
} else {
56-
if (mouseJigglerTimer) {
57-
clearInterval(mouseJigglerTimer);
58-
setMouseJigglerTimer(null);
59-
}
60-
}
61-
}, [mouseJigglerMode]);
62-
6311
return <>{mouseMode === 'relative' ? <Relative /> : <Absolute />}</>;
6412
};

browser/src/components/mouse/relative.tsx

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
import { useEffect, useRef } from 'react';
22
import { message } from 'antd';
3-
import { useAtomValue, useSetAtom } from 'jotai';
3+
import { useAtomValue } from 'jotai';
44
import { useTranslation } from 'react-i18next';
55

66
import { resolutionAtom } from '@/jotai/device.ts';
7-
import {
8-
mouseJigglerModeAtom,
9-
mouseLastMoveTimeAtom,
10-
scrollDirectionAtom,
11-
scrollIntervalAtom
12-
} from '@/jotai/mouse.ts';
7+
import { scrollDirectionAtom, scrollIntervalAtom } from '@/jotai/mouse.ts';
138
import { device } from '@/libs/device';
149
import { Key } from '@/libs/device/mouse.ts';
1510

@@ -20,8 +15,6 @@ export const Relative = () => {
2015
const resolution = useAtomValue(resolutionAtom);
2116
const scrollDirection = useAtomValue(scrollDirectionAtom);
2217
const scrollInterval = useAtomValue(scrollIntervalAtom);
23-
const mouseJigglerMode = useAtomValue(mouseJigglerModeAtom);
24-
const setMouseLastMoveTime = useSetAtom(mouseLastMoveTimeAtom);
2518

2619
const isLockedRef = useRef(false);
2720
const keyRef = useRef<Key>(new Key());
@@ -117,11 +110,6 @@ export const Relative = () => {
117110
if (x === 0 && y === 0) return;
118111

119112
await send(Math.abs(x) < 10 ? x * 2 : x, Math.abs(y) < 10 ? y * 2 : y, 0);
120-
121-
// mouse jiggler record last move time
122-
if (mouseJigglerMode === 'enable') {
123-
setMouseLastMoveTime(Date.now());
124-
}
125113
}
126114

127115
// mouse scroll
@@ -150,7 +138,7 @@ export const Relative = () => {
150138
canvas.removeEventListener('wheel', handleWheel);
151139
canvas.removeEventListener('contextmenu', disableEvent);
152140
};
153-
}, [resolution, scrollDirection, scrollInterval, mouseJigglerMode, setMouseLastMoveTime]);
141+
}, [resolution, scrollDirection, scrollInterval]);
154142

155143
async function send(x: number, y: number, scroll: number) {
156144
await device.sendMouseRelativeData(keyRef.current, x, y, scroll);

browser/src/i18n/locales/en.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,7 @@ const en = {
6060
speed: 'Wheel speed',
6161
fast: 'Fast',
6262
slow: 'Slow',
63-
requestPointer: 'Using relative mode. Please click desktop to get mouse pointer.',
64-
jiggler: {
65-
title: 'Mouse Jiggler',
66-
enable: 'Enable',
67-
disable: 'Disable'
68-
}
63+
requestPointer: 'Using relative mode. Please click desktop to get mouse pointer.'
6964
},
7065
settings: {
7166
language: 'Language',

browser/src/i18n/locales/zh.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,7 @@ const zh = {
5858
speed: '滚轮速度',
5959
fast: '快',
6060
slow: '慢',
61-
requestPointer: '正在使用鼠标相对模式,请点击桌面获取鼠标指针。',
62-
jiggler: {
63-
title: '闲时晃动',
64-
enable: '启用',
65-
disable: '禁用'
66-
}
61+
requestPointer: '正在使用鼠标相对模式,请点击桌面获取鼠标指针。'
6762
},
6863
settings: {
6964
language: '语言',

browser/src/jotai/mouse.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,6 @@ export const mouseModeAtom = atom('absolute');
99
// mouse scroll direction: 1 or -1
1010
export const scrollDirectionAtom = atom(1);
1111

12+
// mouse scroll interval (unit: ms)
1213
// mouse scroll interval (unit: ms)
1314
export const scrollIntervalAtom = atom(0);
14-
15-
// mouse jiggler mode: enable or disable
16-
export const mouseJigglerModeAtom = atom('disable');
17-
18-
// mouse jiggler timer id
19-
export const mouseJigglerTimerAtom = atom<number | null>(null);
20-
21-
// mouse jiggler interval (unit: ms)
22-
export const mouseJigglerIntervalAtom = atom(15_000);
23-
24-
// mouse jiggler last move time
25-
export const mouseLastMoveTimeAtom = atom(0);

browser/src/libs/storage/index.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ const MOUSE_STYLE_KEY = 'nanokvm-usb-mouse-style';
1010
const MOUSE_MODE_KEY = 'nanokvm-usb-mouse-mode';
1111
const MOUSE_SCROLL_DIRECTION_KEY = 'nanokvm-usb-mouse-scroll-direction';
1212
const MOUSE_SCROLL_INTERVAL_KEY = 'nanokvm-usb-mouse-scroll-interval';
13-
const MOUSE_JIGGLER_MODE_KEY = 'nanokvm-usb-mouse-jiggler-mode';
1413

1514
export function getLanguage() {
1615
return localStorage.getItem(LANGUAGE_KEY);
@@ -121,12 +120,3 @@ export function getMouseScrollInterval(): number | null {
121120
export function setMouseScrollInterval(interval: number): void {
122121
localStorage.setItem(MOUSE_SCROLL_INTERVAL_KEY, String(interval));
123122
}
124-
125-
export function getMouseJigglerMode(): string {
126-
const jiggler = localStorage.getItem(MOUSE_JIGGLER_MODE_KEY);
127-
return jiggler && jiggler === 'enable' ? 'enable' : 'disable';
128-
}
129-
130-
export function setMouseJigglerMode(jiggler: string): void {
131-
localStorage.setItem(MOUSE_JIGGLER_MODE_KEY, jiggler);
132-
}

0 commit comments

Comments
 (0)