From a8072a25eda79806db67f243bb6b49db9c6d2649 Mon Sep 17 00:00:00 2001 From: yhattav Date: Mon, 2 Dec 2024 20:35:27 +0100 Subject: [PATCH] block clicks when no position --- src/components/GravitySimulator/GravitySimulator.tsx | 10 ++++++++-- src/sections/GravitySection.tsx | 7 ++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/components/GravitySimulator/GravitySimulator.tsx b/src/components/GravitySimulator/GravitySimulator.tsx index 3e1ee25..31430ba 100644 --- a/src/components/GravitySimulator/GravitySimulator.tsx +++ b/src/components/GravitySimulator/GravitySimulator.tsx @@ -33,6 +33,7 @@ import { SettingOutlined } from "@ant-design/icons"; import { SaveScenarioModal } from "../SaveScenarioModal/SaveScenarioModal"; import { createShareableLink } from "../../utils/compression"; import { Particle, ParticleMechanics, TrailPoint } from "../../types/particle"; +import { Position } from "@yhattav/react-component-cursor"; const generatePastelColor = () => { const r = Math.floor(Math.random() * 75 + 180); @@ -43,7 +44,7 @@ const generatePastelColor = () => { export interface GravitySimulatorProps { gravityRef: React.RefObject; - pointerPosRef: React.RefObject; + pointerPosRef: React.RefObject; onDebugData?: (data: DebugData) => void; className?: string; removeOverlay?: boolean; @@ -325,7 +326,12 @@ export const GravitySimulator: React.FC = ({ const handleContainerClick = useCallback(() => { if (blockInteractions) return; - + if ( + !pointerPosRef.current || + !pointerPosRef.current.x || + !pointerPosRef.current.y + ) + throw new Error("Pointer position is not defined"); if (isDragging || isDraggingNewStar) return; if (!isSimulationStarted) { diff --git a/src/sections/GravitySection.tsx b/src/sections/GravitySection.tsx index cf27bf1..f048d99 100644 --- a/src/sections/GravitySection.tsx +++ b/src/sections/GravitySection.tsx @@ -1,11 +1,8 @@ import React, { useRef, useCallback } from "react"; -import { CustomCursor } from "@yhattav/react-component-cursor"; +import { CustomCursor, Position } from "@yhattav/react-component-cursor"; import { Card } from "antd"; -import { Point2D } from "../utils/types/physics"; -//import { GravitySimulator } from "../components/GravitySimulator/GravitySimulator"; import { DebugData } from "../types/Debug"; import { GravitySimulatorWithSettings } from "../components/GravitySimulatorWithSettings/GravitySimulatorWithSettings"; -//import { Scenario } from "../types/scenario"; interface GravitySectionProps { onDebugData?: (data: DebugData) => void; @@ -77,7 +74,7 @@ export const GravitySection: React.FC = ({ onDebugData, }) => { const gravityRef = useRef(null); - const pointerPosRef = useRef({ x: 0, y: 0 }); + const pointerPosRef = useRef({ x: null, y: null }); const handleCursorMove = useCallback(async (x: number, y: number) => { await new Promise((resolve) => setTimeout(resolve, 0));