An animated React component featuring an autonomous robot vacuum that cleans your page by collecting dirt particles. Built with TypeScript, React and CSS
Try it on CodeSandbox
npm install react-robot-vacuumyarn add react-robot-vacuumpnpm add react-robot-vacuumimport { RobotVacuum } from "react-robot-vacuum";
function App() {
return <RobotVacuum />;
}That's it! The robot will automatically start cleaning your page.
| Prop | Type | Default | Description |
|---|---|---|---|
numberOfDirtBits |
number |
5 |
Number of dirt particles to spawn |
autoStart |
boolean |
true |
Whether cleaning starts automatically |
minSpeed |
number |
0.5 |
Minimum movement speed in seconds |
speedFactor |
number |
100 |
Factor for calculating speed based on distance |
rotationDuration |
number |
0.6 |
Duration of rotation animation in seconds |
onCleaningStart |
() => void |
undefined |
Callback when cleaning starts |
onCleaningComplete |
() => void |
undefined |
Callback when robot returns to dock |
onDirtCollected |
(collected: number, total: number) => void |
undefined |
Callback fired each time dirt is collected |
Use a ref to control the robot imperatively:
import { useRef } from "react";
import { RobotVacuum, RobotVacuumRef } from "react-robot-vacuum";
function App() {
const robotRef = useRef<RobotVacuumRef>(null);
return (
<>
<RobotVacuum ref={robotRef} autoStart={false} />
<button onClick={() => robotRef.current?.startCleaning()}>
Start Cleaning
</button>
<button onClick={() => robotRef.current?.reset()}>
Reset
</button>
</>
);
}startCleaning()- Manually start the cleaning processreset()- Reset robot to dock and generate new dirt
# Install dependencies
npm install
# Run dev server
npm run vite:dev
# Build for production
npm run build
# Lint
npm run lintMIT © ZhanmuTW
Contributions, issues, and feature requests are welcome!
Give a ⭐️ if this project helped you!
Made with ❤️ and TypeScript