feat: автообновление, шаблон zustand-store, документация
- Добавлено автоматическое обновление со спиннером (ora) - Новый шаблон zustand-store - Документация (FEATURES.md, LICENSE, README)
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { create } from 'zustand';
|
||||
import { devtools, persist } from 'zustand/middleware';
|
||||
import { immer } from 'zustand/middleware/immer';
|
||||
import type { {{name.pascalCase}}State, {{name.pascalCase}}Store } from './{{name.camelCase}}Store.type';
|
||||
|
||||
export const defaultInitState: {{name.pascalCase}}State = {
|
||||
deviceId: null,
|
||||
};
|
||||
|
||||
const setDeviceId = (state: {{name.pascalCase}}Store, deviceId: string) => {
|
||||
state.deviceId = deviceId;
|
||||
};
|
||||
|
||||
export const use{{name.pascalCase}}Store = create<{{name.pascalCase}}Store>()(
|
||||
devtools(
|
||||
persist(
|
||||
immer<{{name.pascalCase}}Store>((set) => ({
|
||||
...defaultInitState,
|
||||
setDeviceId: (deviceId) => set((state) => setDeviceId(state, deviceId)),
|
||||
})),
|
||||
{
|
||||
name: '{{name.kebabCase}}-storage',
|
||||
}
|
||||
),
|
||||
{ name: '{{name.pascalCase}}Store' }
|
||||
)
|
||||
);
|
||||
Reference in New Issue
Block a user