@@ -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+
83106export type VMComponentProps <
84107 TViewModel extends AnyViewModel | AnyViewModelSimple ,
85108 TComponentOriginProps extends AnyObject ,
@@ -131,7 +154,7 @@ export function withViewModel<TViewModel extends AnyViewModel>(
131154 */
132155export 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