Skip to content

Commit 9a74d83

Browse files
committed
chore: rename returning types from withViewModel, withLazyViewModel hocs
1 parent bd2fcc8 commit 9a74d83

File tree

9 files changed

+51
-35
lines changed

9 files changed

+51
-35
lines changed

.changeset/hip-lemons-happen.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"mobx-view-model": patch
3+
---
4+
5+
rename ComponentWithLazyViewModel -> VMLazyComponent

.changeset/tangy-mugs-shake.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"mobx-view-model": patch
3+
---
4+
5+
rename type ComponentWithViewModel -> VMComponent

docs/react/api/with-lazy-view-model.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function withLazyViewModel<TViewModel extends AnyViewModel>(
1414
Component: TView | Promised<TView>
1515
}>,
1616
config?: ViewModelHocConfig<TViewModel>
17-
): ComponentWithLazyViewModel
17+
): VMLazyComponent
1818
```
1919

2020

docs/react/api/with-view-model.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function withViewModel<VM extends AnyViewModel>(
99
config?: ViewModelHocConfig<VM>
1010
):
1111
(Component: ComponentType<ComponentProps & ViewModelProps<VM>>) =>
12-
ComponentWithViewModel
12+
VMComponent
1313

1414
function withViewModel<
1515
TViewModel extends AnyViewModel,
@@ -18,7 +18,7 @@ function withViewModel<
1818
model: Class<TViewModel>,
1919
component: ComponentType<TCompProps & ViewModelProps<TViewModel>>,
2020
config?: ViewModelHocConfig<TViewModel>,
21-
): ComponentWithViewModel<TViewModel, TCompProps>;
21+
): VMComponent<TViewModel, TCompProps>;
2222
```
2323

2424
## Usage

src/hoc/with-lazy-view-model.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Class, Maybe, MaybePromise } from '../utils/types.js';
77
import { AnyViewModel } from '../view-model/index.js';
88

99
import {
10-
ComponentWithViewModel,
10+
VMComponent,
1111
ViewModelHocConfig,
1212
withViewModel,
1313
} from './with-view-model.js';
@@ -20,10 +20,18 @@ export interface LazyViewAndModel<
2020
View?: TView | PackedAsyncModule<TView>;
2121
}
2222

23+
export type VMLazyComponent<
24+
TViewModel extends AnyViewModel,
25+
TView extends ComponentType<any>,
26+
> = VMComponent<TViewModel, ComponentProps<TView>> & LoadableMixin;
27+
28+
/**
29+
* @deprecated use `VMLazyComponent` instead. Will be removed in next major release
30+
*/
2331
export type ComponentWithLazyViewModel<
2432
TViewModel extends AnyViewModel,
2533
TView extends ComponentType<any>,
26-
> = ComponentWithViewModel<TViewModel, ComponentProps<TView>> & LoadableMixin;
34+
> = VMLazyComponent<TViewModel, ComponentProps<TView>> & LoadableMixin;
2735

2836
export interface LazyViewModelHocConfig<TViewModel extends AnyViewModel>
2937
extends ViewModelHocConfig<TViewModel>,
@@ -42,7 +50,7 @@ export function withLazyViewModel<
4250
configOrFallbackComponent?:
4351
| LazyViewModelHocConfig<NoInfer<TViewModel>>
4452
| LoadableConfig['loading'],
45-
): ComponentWithLazyViewModel<TViewModel, TView> {
53+
): VMLazyComponent<TViewModel, TView> {
4654
const config: Maybe<LazyViewModelHocConfig<NoInfer<TViewModel>>> =
4755
typeof configOrFallbackComponent === 'function'
4856
? {
@@ -76,7 +84,7 @@ export function withLazyViewModel<
7684
preload: patchedConfig?.preload,
7785
throwOnError: patchedConfig?.throwOnError,
7886
},
79-
) as ComponentWithLazyViewModel<TViewModel, TView>;
87+
) as VMLazyComponent<TViewModel, TView>;
8088

8189
patchedConfig.ctx!.externalComponent = lazyVM;
8290

src/hoc/with-view-model.tsx

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,23 @@ export interface ViewModelHocConfig<VM extends AnyViewModel>
6868
getPayload?: (allProps: any) => any;
6969
}
7070

71+
export type VMComponentProps<
72+
TViewModel extends AnyViewModel,
73+
TComponentOriginProps extends AnyObject,
74+
> = Omit<TComponentOriginProps, 'model'> & ViewModelInputProps<TViewModel>;
75+
76+
export type VMComponent<
77+
TViewModel extends AnyViewModel,
78+
TComponentOriginProps extends AnyObject = ViewModelProps<TViewModel>,
79+
> = (props: VMComponentProps<TViewModel, TComponentOriginProps>) => ReactNode;
80+
81+
/**
82+
* @deprecated use `VMComponent` type. Will be removed in next major release.
83+
*/
7184
export type ComponentWithViewModel<
7285
TViewModel extends AnyViewModel,
7386
TComponentOriginProps extends AnyObject = ViewModelProps<TViewModel>,
74-
> = (
75-
props: Omit<TComponentOriginProps, 'model'> & ViewModelInputProps<TViewModel>,
76-
) => ReactNode;
87+
> = VMComponent<TViewModel, TComponentOriginProps>;
7788

7889
/**
7990
* A Higher-Order Component that connects React components to their ViewModels, providing seamless MobX integration.
@@ -87,7 +98,7 @@ export function withViewModel<
8798
model: Class<TViewModel>,
8899
component: ComponentType<TComponentOriginProps & ViewModelProps<TViewModel>>,
89100
config?: ViewModelHocConfig<TViewModel>,
90-
): ComponentWithViewModel<TViewModel, TComponentOriginProps>;
101+
): VMComponent<TViewModel, TComponentOriginProps>;
91102

92103
/**
93104
* A Higher-Order Component that connects React components to their ViewModels, providing seamless MobX integration.
@@ -99,7 +110,7 @@ export function withViewModel<TViewModel extends AnyViewModel>(
99110
config?: ViewModelHocConfig<TViewModel>,
100111
): <TComponentOriginProps extends AnyObject = ViewModelProps<TViewModel>>(
101112
Component?: ComponentType<TComponentOriginProps & ViewModelProps<TViewModel>>,
102-
) => ComponentWithViewModel<TViewModel, TComponentOriginProps>;
113+
) => VMComponent<TViewModel, TComponentOriginProps>;
103114

104115
/**
105116
* Creates new instance of ViewModel

src/view-model/view-model.store.base.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ import {
55
mergeVMConfigs,
66
applyObservable,
77
} from '../config/index.js';
8-
import {
9-
ComponentWithLazyViewModel,
10-
ComponentWithViewModel,
11-
} from '../hoc/index.js';
8+
import { VMLazyComponent, VMComponent } from '../hoc/index.js';
129
import { generateVmId } from '../utils/index.js';
1310
import { Class, Maybe } from '../utils/types.js';
1411

@@ -31,7 +28,7 @@ export class ViewModelStoreBase<VMBase extends AnyViewModel = AnyViewModel>
3128
{
3229
protected viewModels: Map<string, VMBase | AnyViewModelSimple>;
3330
protected linkedComponentVMClasses: Map<
34-
ComponentWithViewModel<VMBase, any>,
31+
VMComponent<VMBase, any>,
3532
Class<VMBase>
3633
>;
3734
protected viewModelIdsByClasses: Map<
@@ -133,8 +130,7 @@ export class ViewModelStoreBase<VMBase extends AnyViewModel = AnyViewModel>
133130
linkComponents(
134131
VM: Class<VMBase>,
135132
...components: Maybe<
136-
| ComponentWithViewModel<VMBase, any>
137-
| ComponentWithLazyViewModel<VMBase, any>
133+
VMComponent<VMBase, any> | VMLazyComponent<VMBase, any>
138134
>[]
139135
): void {
140136
components.forEach((component) => {
@@ -146,8 +142,7 @@ export class ViewModelStoreBase<VMBase extends AnyViewModel = AnyViewModel>
146142

147143
unlinkComponents(
148144
...components: Maybe<
149-
| ComponentWithViewModel<VMBase, any>
150-
| ComponentWithLazyViewModel<VMBase, any>
145+
VMComponent<VMBase, any> | VMLazyComponent<VMBase, any>
151146
>[]
152147
): void {
153148
components.forEach((component) => {

src/view-model/view-model.store.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import {
2-
ComponentWithLazyViewModel,
3-
ComponentWithViewModel,
4-
} from '../hoc/index.js';
1+
import { VMLazyComponent, VMComponent } from '../hoc/index.js';
52
import { Class, Maybe } from '../utils/types.js';
63

74
import { ViewModelSimple } from './view-model-simple.js';
@@ -112,8 +109,7 @@ export interface ViewModelStore<VMBase extends AnyViewModel = AnyViewModel> {
112109
linkComponents(
113110
VM: Class<VMBase>,
114111
...components: Maybe<
115-
| ComponentWithViewModel<VMBase, any>
116-
| ComponentWithLazyViewModel<VMBase, any>
112+
VMComponent<VMBase, any> | VMLazyComponent<VMBase, any>
117113
>[]
118114
): void;
119115

@@ -123,8 +119,7 @@ export interface ViewModelStore<VMBase extends AnyViewModel = AnyViewModel> {
123119
*/
124120
unlinkComponents(
125121
...components: Maybe<
126-
| ComponentWithViewModel<VMBase, any>
127-
| ComponentWithLazyViewModel<VMBase, any>
122+
VMComponent<VMBase, any> | VMLazyComponent<VMBase, any>
128123
>[]
129124
): void;
130125

src/view-model/view-model.store.types.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import { ComponentType } from 'react';
22

33
import { ViewModelsRawConfig } from '../config/index.js';
4-
import {
5-
ComponentWithLazyViewModel,
6-
ComponentWithViewModel,
7-
} from '../hoc/index.js';
4+
import { VMLazyComponent, VMComponent } from '../hoc/index.js';
85
import { AnyObject, Class, Maybe } from '../utils/types.js';
96

107
import {
@@ -32,7 +29,7 @@ export interface ViewModelCreateConfig<VM extends AnyViewModel>
3229
extends ViewModelParams<VM['payload'], VM['parentViewModel']> {
3330
VM: Class<VM>;
3431
fallback?: ComponentType;
35-
component?: ComponentWithViewModel<AnyViewModel, any>;
32+
component?: VMComponent<AnyViewModel, any>;
3633
componentProps?: AnyObject;
3734
}
3835

@@ -43,5 +40,5 @@ export type ViewModelLookup<T extends AnyViewModel | AnyViewModelSimple> =
4340
| AnyViewModel['id']
4441
| Class<T>
4542
| (T extends AnyViewModel
46-
? ComponentWithViewModel<T, any> | ComponentWithLazyViewModel<T, any>
43+
? VMComponent<T, any> | VMLazyComponent<T, any>
4744
: Class<T>);

0 commit comments

Comments
 (0)