Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/purescript-react/purescript-nextjs


https://github.com/purescript-react/purescript-nextjs

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

        

# 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).