Skip to content

mdoudkin/nextjs-swr-wrapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm (scoped) npm bundle size (minified)

Installation

$ npm install @mdoudkin/nextjs-swr-wrapper

Usage

// file: /api/something.ts
import { useUpdater } from "@mdoudkin/nextjs-swr-wrapper";
import { useCallback } from "react";

export const useCreateSomething = () => {
  const { act, isLoading, data, error } = useUpdater<Data, Error>({
    mutationKey: /https:\/\/example.com\/something.*/,
  });

  const actCallback = useCallback(
    (body) => act("https://example.com/something", "POST", body),
    [act]
  );

  return {
    act: actCallback,
    isLoading,
    data,
    error,
  };
};

// file: /components/something-form.tsx

export const SmtnForm = () => {
  const { act, isLoading, data, error } = useCreateSomething();

  return (
    <form onSubmit={(formData) => act(formData)}>
      ...
      <input type="submit" value="Create" disabled={isLoading}>
      <p>{error}</p>
    </form>
  )
};

About

Simple and effective wrapper for Vercel's SWR data fetching library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published