developit / developit/unistore
useStore Hooks?
- Dominant language
- JavaScript
- Stars
- 2.8k
- Forks
- 134
- PR merge metrics
- No merged PRs in 30d
Description
```js
/**
* Available methods
*
* value
* isValue
* setValue({ item: value })
* withValue({ item: value })
*
* @param {*} key
*/
export function useStore(key) {
let camelKey = _.camelCase(key)
let setKey = _.camelCase(`set_${key}`)
let isKey = _.camelCase(`is_${key}`)
let withKey = _.camelCase(`with_${key}`)
let selected = store.getState()[camelKey]
function setter(value) {
if (typeof value === 'function') {
const newValue = value(selected)
return store.setState({
[camelKey]: { ...selected, ...newValue }
})
}
return store.setState({
[camelKey]: { ...selected, ...value }
})
}
let getter = selected
return {
[camelKey]: getter,
[isKey]: getter,
[setKey]: setter,
[withKey]: setter
}
}
```
# Used
```js
import { useStore } from 'unistore'
export function disconnected() {
log('Ably Events | event: disconnected')
const { setAblySocket } = useStore('ablySocket')
setAblySocket({ status: 'disconnected' })
const { emitter } = useStore('emitter')
emitter.emit('ably', { payload: 'disconnected' })
}
```
@developit what do you think about this?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.