Skip to content

πŸ–– GoCaptcha of React, which implements click mode, slider mode, drag-drop mode and rotation mode.

License

Notifications You must be signed in to change notification settings

wenlng/go-captcha-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

66e9b83 Β· Feb 18, 2025

History

20 Commits
Feb 16, 2025
Feb 18, 2025
Jun 1, 2024
Jun 2, 2024
Jun 1, 2024
Jun 22, 2024
Sep 17, 2024
Jun 1, 2024
Jun 1, 2024
Jun 1, 2024
Feb 18, 2025
Feb 16, 2025
Feb 16, 2025
Jun 2, 2024
Jun 22, 2024
Dec 4, 2024

Repository files navigation

Go Captcha

Behavior Captcha Of React


English | δΈ­ζ–‡


⭐️ If it helps you, please give a star.

Poster

Install

yarn add go-captcha-react
# or
npm install go-captcha-react
# or
pnpm install go-captcha-react
import GoCaptcha from 'go-captcha-react';

Click Mode

<GoCaptcha.Click
  config={{}}
  data={{}}
  events={{}}
  ref={domRef}
/>
<script>
  // call methods
  const domRef = useRef(null)
  domRef.clear()
  domRef.refresh()
</script>
// config = {}
interface Config {
  width?: number;
  height?: number;
  thumbWidth?: number;
  thumbHeight?: number;
  verticalPadding?: number;
  horizontalPadding?: number;
  showTheme?: boolean;
  title?: string;
  buttonText?: string;
  iconSize?: number;
  dotSize?: number;
}

// data = {}
interface Data {
  image: string;
  thumb: string;
}

// events = {}
interface Events {
  click?: (x: number, y: number) => void;
  refresh?: () => void;
  close?: () => void;
  confirm?: (dots: Array<ClickDot>, reset:() => void) => boolean;
}

// component method
interface ClickMethods {
  reset: () => void,
  clear: () => void,
  refresh: () => void,
  close: () => void,
}

// export component method
interface ExportMethods {
  reset: () => void,
  clear: () => void,
  refresh: () => void,
  close: () => void,
}

Slide Mode

<GoCaptcha.Slide
  config={{}}
  data={{}}
  events={{}}
  ref={domRef}
/>
<script>
  // call methods
  const domRef = useRef(null)
  domRef.clear()
  domRef.refresh()
</script>
// config = {}
interface SlideConfig {
  width?: number;
  height?: number;
  thumbWidth?: number;
  thumbHeight?: number;
  verticalPadding?: number;
  horizontalPadding?: number;
  showTheme?: boolean;
  title?: string;
  iconSize?: number;
  scope ?: boolean;
}

// data = {}
interface SlideData {
  thumbX: number;
  thumbY: number;
  thumbWidth: number;
  thumbHeight: number;
  image: string;
  thumb: string;
}

// events = {}
interface SlideEvents {
  move?: (x: number, y: number) => void;
  refresh?: () => void;
  close?: () => void;
  confirm?: (point: SlidePoint, reset:() => void) => boolean;
}

// export component method
interface ExportMethods {
  reset: () => void,
  clear: () => void,
  refresh: () => void,
  close: () => void,
}

Drag-And-Drop Mode

<GoCaptcha.SlideRegion
  config={{}}
  data={{}}
  events={{}}
  ref={domRef}
/>
<script>
  // call methods
  const domRef = useRef(null)
  domRef.clear()
  domRef.refresh()
</script>
// config = {}
interface SlideRegionConfig {
  width?: number;
  height?: number;
  thumbWidth?: number;
  thumbHeight?: number;
  verticalPadding?: number;
  horizontalPadding?: number;
  showTheme?: boolean;
  title?: string;
  iconSize?: number;
  scope ?: boolean;
}

// data = {}
interface SlideRegionData {
  thumbX: number;
  thumbY: number;
  thumbWidth: number;
  thumbHeight: number;
  image: string;
  thumb: string;
}

// events = {}
interface SlideRegionEvents {
  move?: (x: number, y: number) => void;
  refresh?: () => void;
  close?: () => void;
  confirm?: (point: SlideRegionPoint, reset:() => void) => boolean;
}

// export component method
interface ExportMethods {
  reset: () => void,
  clear: () => void,
  refresh: () => void,
  close: () => void,
}

Rotation Mode

<GoCaptcha.Rotate
  config={{}}
  data={{}}
  events={{}}
  ref={domRef}
/>
<script>
  // call methods
  const domRef = useRef(null)
  domRef.clear()
  domRef.refresh()
</script>
// config = {}
interface Config {
  width?: number;
  height?: number;
  thumbWidth?: number;
  thumbHeight?: number;
  verticalPadding?: number;
  horizontalPadding?: number;
  showTheme?: boolean;
  title?: string;
  iconSize?: number;
  scope ?: boolean;
}

// data = {}
interface Data {
  angle: number;
  image: string;
  thumb: string;
  thumbSize: number;
}

// events = {}
interface Events {
  rotate?: (angle: number) => void;
  refresh?: () => void;
  close?: () => void;
  confirm?: (angle: number, reset:() => void) => boolean;
}

// export component method
interface ExportMethods {
  reset: () => void,
  clear: () => void,
  refresh: () => void,
  close: () => void,
}

Button

<GoCaptcha.Button />
interface _ {
  config?: CaptchaConfig;
  clickEvent?: () => void;
  disabled?: boolean;
  type?: "default" | "warn" | "error" | "success";
  title?: string;
}

export interface CaptchaConfig {
  width?: number;
  height?: number;
  verticalPadding?: number;
  horizontalPadding?: number;
}