1.2.0 • Published 3 months ago

@zedux/immer v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

@zedux/immer

The official Immer integration for Zedux. This is an addon package, meaning it doesn't have any own dependencies or re-export any APIs from other packages. It uses peer dependencies instead, expecting you to download the needed packages yourself.

See the documentation for this package.

Installation

This package has a peer dependency on the @zedux/atoms package and on Immer itself. Ensure that @zedux/atoms is installed at the same version as this package:

npm install immer @zedux/atoms @zedux/immer # npm
yarn add immer @zedux/atoms @zedux/immer # yarn
pnpm add immer @zedux/atoms @zedux/immer # pnpm

The @zedux/react package already includes @zedux/atoms. To use Immer in React apps, install this package alongside @zedux/react instead:

npm install immer @zedux/react @zedux/immer # npm
yarn add immer @zedux/react @zedux/immer # yarn
pnpm add immer @zedux/react @zedux/immer # pnpm

Usage

See the Zedux docs for full usage details.

Simple example:

import { injectImmerStore } from '@zedux/immer'
import { api, atom } from '@zedux/react'

const loginFormAtom = atom('loginForm', () => {
  const store = injectImmerStore({ email: '', password: '' })

  return api(store).setExports({ produce: store.produce })
})

function LoginForm() {
  const [state, { produce }] = useAtomState(loginFormAtom)

  return (
    <>
      <input
        onChange={event =>
          produce(state => {
            state.email = event.target.value
          })
        }
        value={state.email}
      />
      <input
        onChange={event =>
          produce(state => {
            state.password = event.target.value
          })
        }
        type="password"
        value={state.password}
      />
    </>
  )
}

Exports

This package exports the following APIs:

Classes

Factories

Injectors

Contributing, License, Etc

See the top-level README for all the technical stuff.

1.2.0

3 months ago

1.1.1

8 months ago

1.1.0

9 months ago

1.2.0-rc.1

5 months ago

1.2.0-rc.0

6 months ago

1.1.0-rc.0

9 months ago

1.0.2

12 months ago

1.0.3

10 months ago

1.0.1

1 year ago

0.5.11

1 year ago

1.0.0

1 year ago

1.0.0-rc.0

1 year ago

0.5.10

1 year ago

0.5.9

1 year ago

0.5.8

1 year ago

0.5.7

1 year ago