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.

Package Sidebar

Install

npm i react-buttondown

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

1.32 MB

Total Files

11

Last publish

Collaborators

  • jakewies