npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-cf-turnstile

v1.0.2

Published

A React library for Cloudflare Turnstile (https://www.cloudflare.com/en-gb/products/turnstile/)

Downloads

40

Readme

Cloudflare Turnstile React Library

This library provides a React component that can be used to protect your site from bots and scrapers using Cloudflare Turnstile.

Basic usage can be found at the Cloudflare Turnstile Documentation.

Installation

npm i react-cf-turnstile
yarn add react-cf-turnstile

Methods

Methods can be called using a reference. Passing the widget ID is not necessary.

| Name | Description | |-----------------|---------------------------------------------------------------------------| | renderTurnstile | Calls the turnstile.render() function | | resetTurnstile | Can be used to reset the widget if it has expired or needs to be reloaded | | removeTurnstile | Removes the widget | | getResponse | soon™ |

Props

| Name | Type | Required | Description | |------------------|----------|----------|-----------------------------------------------------------------------------------------| | sitekey | string | yes | The sitekey associated with your widget configuration on the Cloudflare Dashboard | | action | string | | Information used in analytics to differentiate between widgets on the same site | | cData | string | | Payload used to attach customer data to the challenge which is returned upon validation | | callback | callback | yes | Called when a challenge is successfully completed | | expired-callback | callback | | Called when a challenge expires | | error-callback | callback | | Called when there is a network error | | theme | string | | Theme of the widget. Can be light, dark or auto | | tabindex | number | | Tabindex of the iframe for accessibility purposes |

Example

In this example, I use the demo only sitekey provided by Cloudflare. You should use your own sitekey in production.

import React from 'react';
import CFTurnstile from 'react-cf-turnstile';

function App() {
  return (
    <CFTurnstile
      siteKey="1x00000000000000000000AA" // change me! testing only
      action="FORM_SUBMIT" // optional: used in analytics to differentiate between different turnstiles on the same site
      cData="some data" // optional: read cloudflare docs for more info
      callback={(token) => { // called when challenge is completed successfully
        console.log(token);
      }}
      expired-callback={() => { // optional: called when a challenge expires
        console.log('expired');
      }}
      error-callback={(error) => { // optional: called when an error occurs
          console.error(error);
      }}
      theme="light" // optional: light/dark/auto
      tabindex="0" // optional: tabindex for the iframe for accessibility
    />
  );
}

Feeling experimental? Grab the latest dev build

Note: dev builds are not guaranteed to be stable and may contain breaking changes not clearly documented

npm i react-cf-turnstile@dev
yarn add react-cf-turnstile@dev