purescript-nextjs/README.md
2023-01-13 19:23:01 +00:00

35 lines
1.4 KiB
Markdown

# purescript-nextjs
Purescript FFI bindings to [Next.js](https://nextjs.org).
In order to bootstrap a Next.js project with Purescript you can use our [`purescript-nextjs-template`](https://github.com/rowtype-yoga/purescript-nextjs-template). You can find the information on how to get started in that repo.
## Usage
Once you have set up a Next.js project, you can use the FFI bindings here. This library provides bindings for many of the features described in the [Next.js documentation](https://nextjs.org/docs). We don't have FFI for everything yet, if you are missing something feel free to create an issue or even better: create a PR!
### Router
Here is an example how to use the router.
```purescript
import React.Basic.DOM.Simplified.Generated as R
import React.Basic.Hooks as React
import Next.Router as NextRouter
...
React.component "MyComponent" \props -> React.do
router <- NextRouter.useRouter
let
q :: { myQueryParam :: String }
q = query router
dispatchRoute = Router.push Router
pure $ R.button { onClick: handler_ $ dispatchRoute "/about" } "Click me"
```
## Credits
This lib has been heavily inspired by and initially extracted from [`next-purescript-example`](https://github.com/jonasbuntinx/next-purescript-example), which is licensed under [MIT](https://github.com/jonasbuntinx/next-purescript-example/blob/master/LICENSE).