shomaii
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

shomai

A small, fast and scalable state-management solution for react.

// sample-store.ts

import { createStore } from "shomai";

export interface SampleStore {
    counter: number;
    decounter: number;
}

export const sampleStore = createStore<SampleStore>({
    counter: 0,
    decounter: 100
})

// HelloWorld.ts

import React from 'react'
import { useStore, useStoreSelectorState } from 'shomai'
import { sampleStore } from './sample-store'

const HelloWorld: React.FunctionComponent<HelloWorldProps> = () => {

    const counter = useStore(sampleStore, (state) => state.counter)

    const [decounter, setDecounter] = useStoreSelectorState<number>(sampleStore, 'decounter')

    return (
        <>
            <button onClick={() => sampleStore.setState(prev => ({...prev, counter: prev.counter + 1}))}>Counter ({counter})</button>
            <button onClick={() => setDecounter(prev => prev - 1)}>Decounter ({decounter})</button>
        </>
    )
}

Package Sidebar

Install

npm i shomaii

Weekly Downloads

0

Version

0.1.1

License

MIT

Unpacked Size

7.71 kB

Total Files

5

Last publish

Collaborators

  • mytabworks