Skip to content

Commit

Permalink
block clicks when no position
Browse files Browse the repository at this point in the history
  • Loading branch information
yhattav committed Dec 2, 2024
1 parent 4785f2c commit a8072a2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
10 changes: 8 additions & 2 deletions src/components/GravitySimulator/GravitySimulator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -43,7 +44,7 @@ const generatePastelColor = () => {

export interface GravitySimulatorProps {
gravityRef: React.RefObject<HTMLDivElement>;
pointerPosRef: React.RefObject<Point2D>;
pointerPosRef: React.RefObject<Position>;
onDebugData?: (data: DebugData) => void;
className?: string;
removeOverlay?: boolean;
Expand Down Expand Up @@ -325,7 +326,12 @@ export const GravitySimulator: React.FC<GravitySimulatorProps> = ({

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) {
Expand Down
7 changes: 2 additions & 5 deletions src/sections/GravitySection.tsx
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -77,7 +74,7 @@ export const GravitySection: React.FC<GravitySectionProps> = ({
onDebugData,
}) => {
const gravityRef = useRef<HTMLDivElement>(null);
const pointerPosRef = useRef<Point2D>({ x: 0, y: 0 });
const pointerPosRef = useRef<Position>({ x: null, y: null });

const handleCursorMove = useCallback(async (x: number, y: number) => {
await new Promise((resolve) => setTimeout(resolve, 0));
Expand Down

0 comments on commit a8072a2

Please sign in to comment.