2.0.3 • Published 2 years ago
@mdoudkin/nextjs-swr-wrapper v2.0.3
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>
)
};