1.0.47 • Published 2 years ago
@selkt/react v1.0.47
React hooks
A hook to use values from selectable stores
import { MutableSelectable } from '@selkt/core'
import { useSelectable } from '@selkt/react'
interface User {
name: string
age: string
}
let store = new MutableSelectable({
likes: 0,
user: undefined as User | undefined,
})
export default function App() {
const username = useSelectable(store, (state) => state.user.name) || 'Anon'
/* This component will only update when likes gets over 50 or the username changes */
const disabled = useSelectable(store, (state) => state.likes > 50)
function login() {
store.set((state) => {
state.user = {
name: 'Lorem Ipsum',
age: '1000 years old',
}
})
}
return (
<div>
<h1>{username}</h1>
<Suspense fallback={<div>Login</div>}>
<Profile />
</Suspense>
<div>
<button onClick={login}>Login</button>
</div>
<div>
<LikesButton disabled={disabled} />
</div>
</div>
)
}
function Profile() {
let username = useSelectableSuspense(store, (state) => state.user.name)
return <div>User {username}</div>
}
function LikesButton({ disabled = false }) {
const likes = useSelectable(store, (state) => state.likes)
return (
<button
disabled={disabled}
onClick={(e) =>
store.set((state) => {
state.likes++
})
}
>
Likes {likes}
</button>
)
}
1.0.47
2 years ago
1.0.46
2 years ago
1.0.45
2 years ago
1.0.40
2 years ago
1.0.44
2 years ago
1.0.42
3 years ago
1.0.39
3 years ago
1.0.28
3 years ago
1.0.33
3 years ago
1.0.32
3 years ago
1.0.31
3 years ago
1.0.34
3 years ago
1.0.26
4 years ago
1.0.25
4 years ago
1.0.22
4 years ago
1.0.24
4 years ago
1.0.23
4 years ago
1.0.21
4 years ago
1.0.20
4 years ago
1.0.19
4 years ago
1.0.18
4 years ago
1.0.17
4 years ago
1.0.16
4 years ago
1.0.9
4 years ago
1.0.11
4 years ago
1.0.10
4 years ago
1.0.15
4 years ago
1.0.14
4 years ago
1.0.5
4 years ago
1.0.4
4 years ago
1.0.2
4 years ago
1.0.3
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago