react-buttondown

1.0.0 • Public • Published

react-buttondown

buttondown.email + react = 💙

Installation

yarn add react-buttondown

API

react-buttondown exports a drop-in form and a custom hook that exposes buttondown's api functionality.

ButtondownForm

A drop-in form that captures subscriptions.

import { ButtondownForm } from 'react-buttondown'
import 'react-buttondown/dist/react-buttondown.css'
 
function App() {
  const API_KEY = 'your-buttondown-api-key'
  const handleOnSubscribe = subscriber => { /* ... */ } 
 
  return (
    <ButtondownForm 
      apiKey={API_KEY} 
      onSubscribe={handleOnSubscribe} 
    />
  )
}

props:

apiKey

onSubscribe (optional)

A function handler that receives the subscriber object after successfully subscribing a user.

useButtondown

A custom hook that exposes buttondown's api functionality.

import { useButtondown } from 'react-buttondown'
 
function App() {
  const { addSubscriber } = useButtondown('my-api-key')
 
  const handleAddSubscriber = async (email) => {
    try {
      const response = await addSubscriber(email)
      const subscriber = response.data
 
    } catch (err) {
      const errorMessage = err.data
      console.log(errorMessage)
    }
  } 
 
// ...
}

arguments:

apiKey

returns:

addSubscriber

  • An async function that takes a string email argument and returns an object with returned data and the response status:
const { data, response } = await addSubscriber(email)

Contributing

This is a quick library I built for myself. I can definitely see a more robust solution, but for now it works for me. If others start using it and have concerns / feature requests please feel free to ask away! I will do my best to keep my changes documented in the meantime.

/react-buttondown/

    Package Sidebar

    Install

    npm i react-buttondown

    Weekly Downloads

    6

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    1.32 MB

    Total Files

    11

    Last publish

    Collaborators

    • jakewies