UNPKG

react-free-scratchcard

Version:

A customizable scratch card component for React with random rewards support

104 lines (66 loc) • 3.22 kB
**A lightweight, customizable React scratch card component with random rewards support.** ## Use it to add gamified rewards, engagement boosters, or event-driven scratch cards to your React apps effortlessly. ## šŸš€ Features āœ… 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 --- ## šŸ“¦ Installation 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