1.1.1 • Published 2 years ago

react-scratchcard-v2 v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

react-scratchcard-v2

A scratchcard component for React

NPM JavaScript Style Guide

Note

This is a clone of https://github.com/aleksik/react-scratchcard

Improvement:
  • Resize the image using width and height props (in the original repo, the image was croped)
  • Smooth fade out animation on scratch complete
  • Add type definition (ts)
  • Change brush size through props
  • Use custom brush through props
  • Define a custom check zone through props

Demo

scratchcard-demo

Install

npm install --save react-scratchcard-v2

or

yarn add react-scratchcard-v2 

Usage

import React, { useRef }  from 'react';
import ScratchCard from 'react-scratchcard-v2';

import * as IMG from './img.jpg';

const App = () => {
    
  const ref = useRef<ScratchCard>(null);

  const onClickReset = () => {
    ref.current && ref.current.reset();
  }

  return (
    <div>
      <button onClick={onClickReset}>Reset</button>
      <ScratchCard
        width={320}
        height={226}
        image={IMG}
        finishPercent={80}
        onComplete={() => console.log('complete')}
      >
        <div style={{
          display: 'flex',
          width: '100%',
          height: '100%',
          alignItems: 'center',
          justifyContent: 'center'
        }}
        >
          <h1>Scratch card</h1>
        </div>
      </ScratchCard>
    </div>
  );
};

Custom brush

const App = () => {
  return (
    <div>
      <ScratchCard
        width={320}
        height={226}
        image={IMG}
        finishPercent={80}
        customBrush={{
          image: require('./brush.img'),
          width: 15,
          height: 15
        }}
      >
        <h1>Scratch card</h1>
      </ScratchCard>
    </div>
  );
};

or you can use CUSTOM_BRUSH_PRESET object

import { CUSTOM_BRUSH_PRESET } from 'react-scratchcard-v2';

const App = () => {
  return (
    <div>
      <ScratchCard
        width={320}
        height={226}
        image={IMG}
        finishPercent={80}
        customBrush={CUSTOM_BRUSH_PRESET}
      >
        <h1>Scratch card</h1>
      </ScratchCard>
    </div>
  )
}

Type

Props

nametypedefault
widthnumber
heightnumber
imageFile or Base64
finishPercent?number70
brushSize?number20
fadeOutOnComplete?booleantrue
onComplete?callback
customBrush?CustomBrush
customCheckZone?CustomCheckZone

CustomBrush

nametype
widthnumber
heightnumber
imageFile or Base64

CustomCheckZone

nametype
xnumber
ynumber
widthnumber
heightnumber

License

MIT © dopey2

1.1.1

2 years ago

1.1.0

2 years ago

1.0.2

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago