react-free-scratchcard
Version:
A customizable scratch card component for React with random rewards support
104 lines (66 loc) ⢠3.22 kB
Markdown
**A lightweight, customizable React scratch card component with random rewards support.**
ā
Easy to integrate in any React app
ā
Supports **random rewards** for gamified campaigns
ā
Auto-scratch and manual scratch options
ā
Lightweight and flexible customization
ā
Local storage reward caching with expir
---
npm install react-free-scratchcard
or
yarn add react-free-scratchcard
ā” Quick Usage
import ScratchCard from "react-free-scratchcard";
import scratchImage from "./assets/scratch-surface.jpg";
import prizeImage from "./assets/prize.jpg";
<ScratchCard
scratchImage={scratchImage}
prizeImage={prizeImage}
/>
š Random Rewards Example
import ScratchCard from "react-free-scratchcard";
import scratchImage from "./assets/scratch-surface.jpg";
import prize1 from "./assets/prize1.jpg";
import prize2 from "./assets/prize2.jpg";
const rewardOptions = [
{ image: prizeImage1, points: 899 },
{ image: prizeImage2, points: 999 },
];
const [selectedReward, setSelectedReward] = useState(null);
useEffect(() => {
const randomIndex = Math.floor(Math.random() \* rewardOptions.length);
setSelectedReward(rewardOptions[randomIndex]);
}, []);
const handleScratchComplete = (result) => {
console.log("Scratch completed!", result);
};
<ScratchCard
scratchImage={Fimage}
prizeImage={selectedReward.image}
scratchedPoints={selectedReward.points}
onScratchComplete={handleScratchComplete}
/>
āļø Props Reference
| Prop | Type | Default | Description |
| --------------------- | ---------- | ---------------- | ------------------------------------ |
| scratchImage | string | Required | Scratch surface image |
| prizeImage | string | --- | Image revealed after scratching |
| rewardOptions | array | [] | Array of rewards `{ image, points }` |
| onRewardSelected | function | --- | Callback when a reward is selected |
| onScratchComplete | function | --- | Callback after scratch completes |
| scratchedPoints | number | 0 | Points displayed/awarded |
| revealButtonText | string | "Scratch Now" | Text shown on the reveal button |
| revealingText | string | "Revealing..." | Text shown during auto-scratch |
| scratchRadius | number | 20 | Brush radius for scratching |
| autoScratchSpeed | number | 1 | Speed of auto-scratch animation |
| rewardExpiryMinutes | number | 5 | Minutes before local reward expiry |
| storeReward | boolean | true | Enable/disable local reward caching |
š ļø Use Cases
ā
Gamified learning platforms
ā
E-commerce promotions
ā
Event rewards (festivals, quizzes)
ā
User engagement and retention activities
⨠Author
Debadatta Jena