mobx-view-model
Version:
MobX ViewModel power for ReactJS
38 lines • 1.86 kB
TypeScript
import { Class, Maybe, IsPartial } from 'yummies/utils/types';
import { CreateViewModelFactoryFn, GenerateViewModelIdFn } from '../config/index.js';
import { ViewModelSimple } from '../view-model/view-model-simple.js';
import { ViewModelCreateConfig } from '../view-model/view-model.store.types.js';
import { AnyViewModel } from '../view-model/view-model.types.js';
export interface UseCreateViewModelConfig<TViewModel extends AnyViewModel> extends Pick<ViewModelCreateConfig<TViewModel>, 'vmConfig' | 'config' | 'ctx' | 'component' | 'props'> {
/**
* Unique identifier for the view
*/
id?: Maybe<string>;
/**
* Function to generate an identifier for the view model
*/
generateId?: GenerateViewModelIdFn;
/**
* Function to create an instance of the VM class
*/
factory?: CreateViewModelFactoryFn<TViewModel>;
}
/**
* Creates new instance of ViewModel
*
* [**Documentation**](https://js2me.github.io/mobx-view-model/react/api/use-create-view-model.html)
*/
export declare function useCreateViewModel<TViewModel extends AnyViewModel>(VM: Class<TViewModel>, ...args: IsPartial<TViewModel['payload']> extends true ? [
payload?: TViewModel['payload'],
config?: UseCreateViewModelConfig<TViewModel>
] : [
payload: TViewModel['payload'],
config?: UseCreateViewModelConfig<TViewModel>
]): TViewModel;
/**
* Creates new instance of ViewModelSimple
*
* [**Documentation**](https://js2me.github.io/mobx-view-model/react/api/use-create-view-model.html)
*/
export declare function useCreateViewModel<TViewModelSimple extends ViewModelSimple>(VM: Class<TViewModelSimple>, ...args: TViewModelSimple extends ViewModelSimple<infer TPayload> ? IsPartial<TPayload> extends true ? [payload?: TPayload] : [payload: TPayload] : []): TViewModelSimple;
//# sourceMappingURL=use-create-view-model.d.ts.map