Skip to content

Commit 14bb8bf

Browse files
authored
Merge pull request #173 from musehq/dev
v2.12.1
2 parents 7e7ca61 + af40397 commit 14bb8bf

File tree

4 files changed

+21
-12
lines changed

4 files changed

+21
-12
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "spacesvr",
3-
"version": "2.12.0",
3+
"version": "2.12.1",
44
"private": true,
55
"description": "A standardized reality for future of the 3D Web",
66
"keywords": [

src/layers/Environment/ui/PauseMenu/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export default function PauseMenu(props: PauseMenuProps) {
4040
const PAUSE_ITEMS: MenuItem[] = [
4141
...pauseMenuItems,
4242
{
43-
text: "v2.12.0",
43+
text: "v2.12.1",
4444
link: "https://www.npmjs.com/package/spacesvr",
4545
},
4646
...menuItems,

src/layers/Toolbelt/ideas/ToolSwitcher.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const Container = styled.div<{ open: boolean }>`
2222
z-index: 2;
2323
padding: ${FIXED_PADDING}px ${FIXED_PADDING}px 0 ${FIXED_PADDING}px;
2424
border-radius: ${OUTER_BORDER_RADIUS}px;
25+
pointer-events: ${(props) => (props.open ? "all" : "none")};
2526
2627
display: flex;
2728
max-width: calc(100% - 80px);

src/logic/toggle.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,33 @@
1-
import { useCallback, useRef, useState } from "react";
1+
import { useCallback, useEffect, useRef, useState } from "react";
2+
import Timeout = NodeJS.Timeout;
23

34
/**
45
* A hook that allows you to toggle a boolean value.
56
* @param delay time in ms
67
*/
78
export const useDelayedToggle = (delay = 1000) => {
8-
const lastTimeSet = useRef(0);
9+
const timeoutId = useRef<Timeout | null>(null);
910
const [active, setActiveState] = useState(false);
1011

11-
if (active && Date.now() - lastTimeSet.current > delay) {
12-
lastTimeSet.current = Date.now();
13-
setActiveState(!active);
14-
}
15-
1612
const setActive = useCallback(() => {
13+
if (timeoutId.current !== null) {
14+
clearTimeout(timeoutId.current);
15+
}
16+
1717
setActiveState(true);
18-
lastTimeSet.current = Date.now();
19-
setTimeout(() => {
20-
if (Date.now() - lastTimeSet.current > delay) setActiveState(false);
18+
19+
timeoutId.current = setTimeout(() => {
20+
setActiveState(false);
2121
}, delay);
2222
}, [delay]);
2323

24+
useEffect(() => {
25+
return () => {
26+
if (timeoutId.current !== null) {
27+
clearTimeout(timeoutId.current);
28+
}
29+
};
30+
}, []);
31+
2432
return { active, setActive };
2533
};

0 commit comments

Comments
 (0)