Skip to content

Commit c54d82b

Browse files
committed
feat: add ViewModelSimpleHocConfig
1 parent b6d6884 commit c54d82b

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

src/hoc/with-view-model.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,29 @@ export interface ViewModelHocConfig<VM extends AnyViewModel>
8080
getPayload?: (allProps: any) => any;
8181
}
8282

83+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
84+
export interface ViewModelSimpleHocConfig<VM extends AnyViewModelSimple> {
85+
/**
86+
* Component to render if the view model initialization takes too long
87+
*/
88+
fallback?: ComponentType;
89+
90+
/**
91+
* Function to invoke additional React hooks in the resulting component
92+
*/
93+
reactHook?: (
94+
allProps: AnyObject,
95+
ctx: AnyObject,
96+
viewModels: Maybe<ViewModelStore>,
97+
) => void;
98+
99+
/**
100+
* Function that should return the payload for the VM
101+
* by default, it is - (props) => props.payload
102+
*/
103+
getPayload?: (allProps: any) => any;
104+
}
105+
83106
export type VMComponentProps<
84107
TViewModel extends AnyViewModel | AnyViewModelSimple,
85108
TComponentOriginProps extends AnyObject,
@@ -131,7 +154,7 @@ export function withViewModel<TViewModel extends AnyViewModel>(
131154
*/
132155
export function withViewModel<TViewModel extends AnyViewModelSimple>(
133156
model: Class<TViewModel>,
134-
config?: EmptyObject,
157+
config?: ViewModelSimpleHocConfig<TViewModel>,
135158
): <TComponentOriginProps extends AnyObject = ViewModelProps<TViewModel>>(
136159
Component?: ComponentType<TComponentOriginProps & ViewModelProps<TViewModel>>,
137160
) => VMComponent<TViewModel, TComponentOriginProps>;
@@ -147,7 +170,7 @@ export function withViewModel<
147170
>(
148171
model: Class<TViewModel>,
149172
component: ComponentType<TComponentOriginProps & ViewModelProps<TViewModel>>,
150-
config?: EmptyObject,
173+
config?: ViewModelSimpleHocConfig<TViewModel>,
151174
): VMComponent<TViewModel, TComponentOriginProps>;
152175

153176
/**

0 commit comments

Comments
 (0)