Skip to content

Commit

Permalink
BREAKING: use mobx-view-model package; BREAKING: rename PageViewModel…
Browse files Browse the repository at this point in the history
…Impl -> PageViewModelBase (deprecation)
  • Loading branch information
js2me committed Feb 8, 2025
1 parent 913b2a7 commit 7cb3256
Show file tree
Hide file tree
Showing 13 changed files with 58 additions and 51 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ _**MobX** integration with **Wouter**_

## What package has

### [`PageViewModelImpl`](src/page-view-model/page-view-model.impl.ts), [`PageViewModel`](src/page-view-model/page-view-model.ts)
### [`PageViewModelBase`](src/page-view-model/page-view-model.base.ts), [`PageViewModel`](src/page-view-model/page-view-model.ts)

Simple [`ViewModel`](https://github.com/js2me/mobx-vm-entities?tab=readme-ov-file#mobx-view-model) wrapper for pages
Simple [`ViewModel`](https://github.com/js2me/mobx-view-model?tab=readme-ov-file#mobx-view-model) wrapper for pages

#### Usage:

```ts
import { PageViewModelImpl } from 'mobx-wouter';
import { PageViewModelBase } from 'mobx-wouter';

class HomePageVM extends PageViewModelImpl<{ pathParam: string }> {
class HomePageVM extends PageViewModelBase<{ pathParam: string }> {
@observable
accessor value = 'value';

Expand All @@ -49,7 +49,7 @@ HOC for integration `PageViewModel` with view component of **React**
#### Usage:

```tsx
import { ViewModelProps } from 'mobx-vm-entities';
import { ViewModelProps } from 'mobx-view-model';
import { withPageViewModel } from 'mobx-wouter';

const HomePageView = observer(({ model }: ViewModelProps<HomePageVM>) => {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"peerDependencies": {
"mobx": "^6.12.4",
"mobx-react-lite": "^4.0.7",
"mobx-vm-entities": "^5.1.4",
"mobx-view-model": "^5.2.5",
"react": "^18.3.1",
"wouter": "^3.3.5"
},
Expand Down
12 changes: 6 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions src/hoc/with-lazy-page-view-model.test.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { act, render, screen } from '@testing-library/react';
import { createCounter } from 'mobx-vm-entities/utils/counter';
import { createCounter } from 'mobx-view-model/utils/counter';
import { describe, expect, test } from 'vitest';

import { PageViewModelMock } from '../page-view-model/page-view-model.impl.test';
import { PageViewModelBaseMock } from '../page-view-model/page-view-model.base.test';

import { withLazyPageViewModel } from './with-lazy-page-view-model';
import { PageViewModelProps } from './with-page-view-model';
Expand All @@ -14,7 +14,7 @@ const createIdGenerator = (prefix?: string) => {

describe('withLazyPageViewModel', () => {
test('renders (required path param)', async () => {
class VM extends PageViewModelMock<{ foo: string }> {
class VM extends PageViewModelBaseMock<{ foo: string }> {
mount() {
super.mount();
}
Expand All @@ -38,7 +38,7 @@ describe('withLazyPageViewModel', () => {
expect(screen.getByText('hello VM_0')).toBeDefined();
});
test('renders (optional path param)', async () => {
class VM extends PageViewModelMock<{ foo?: string }> {
class VM extends PageViewModelBaseMock<{ foo?: string }> {
mount() {
super.mount();
}
Expand All @@ -62,7 +62,7 @@ describe('withLazyPageViewModel', () => {
expect(screen.getByText('hello VM_0')).toBeDefined();
});
test('renders (no path params)', async () => {
class VM extends PageViewModelMock {
class VM extends PageViewModelBaseMock {
mount() {
super.mount();
}
Expand Down
4 changes: 2 additions & 2 deletions src/hoc/with-lazy-page-view-model.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import {
LazyViewAndModel,
ViewModelHocConfig,
withLazyViewModel,
} from 'mobx-vm-entities';
import { LoadableMixin } from 'mobx-vm-entities/lib/react-simple-loadable';
} from 'mobx-view-model';
import { LoadableMixin } from 'mobx-view-model/lib/react-simple-loadable';
import { ComponentProps, ComponentType } from 'react';

import { AnyPageViewModel, PageViewModel } from '../page-view-model';
Expand Down
10 changes: 5 additions & 5 deletions src/hoc/with-page-view-model.test.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { act, render, screen } from '@testing-library/react';
import { createCounter } from 'mobx-vm-entities/utils/counter';
import { createCounter } from 'mobx-view-model/utils/counter';
import { describe, expect, test } from 'vitest';

import { PageViewModelMock } from '../page-view-model/page-view-model.impl.test';
import { PageViewModelBaseMock } from '../page-view-model/page-view-model.base.test';

import { PageViewModelProps, withPageViewModel } from './with-page-view-model';

Expand All @@ -13,7 +13,7 @@ const createIdGenerator = (prefix?: string) => {

describe('withPageViewModel', () => {
test('renders (required path param)', async () => {
class VM extends PageViewModelMock<{ foo: string }> {
class VM extends PageViewModelBaseMock<{ foo: string }> {
mount() {
super.mount();
}
Expand All @@ -29,7 +29,7 @@ describe('withPageViewModel', () => {
expect(screen.getByText('hello VM_0')).toBeDefined();
});
test('renders (optional path param)', async () => {
class VM extends PageViewModelMock<{ foo?: string }> {
class VM extends PageViewModelBaseMock<{ foo?: string }> {
mount() {
super.mount();
}
Expand All @@ -45,7 +45,7 @@ describe('withPageViewModel', () => {
expect(screen.getByText('hello VM_0')).toBeDefined();
});
test('renders (no path params)', async () => {
class VM extends PageViewModelMock {
class VM extends PageViewModelBaseMock {
mount() {
super.mount();
}
Expand Down
4 changes: 2 additions & 2 deletions src/hoc/with-page-view-model.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import {
ViewModelInputProps,
ViewModelProps,
withViewModel,
} from 'mobx-vm-entities';
import { AnyObject, Class, RenameKey } from 'mobx-vm-entities/utils/types';
} from 'mobx-view-model';
import { AnyObject, Class, RenameKey } from 'mobx-view-model/utils/types';
import { ComponentType, ReactNode } from 'react';

import type { AnyPageViewModel } from '../page-view-model';
Expand Down
9 changes: 8 additions & 1 deletion src/page-view-model/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
import { PageViewModelBase } from './page-view-model.base';

export * from './page-view-model';
export * from './page-view-model.impl';
export * from './page-view-model.base';
export * from './page-view-model.types';

/**
* @deprecated Will be removed in 2.0.0 releases. Please use {@link PageViewModelBase} instead
*/
export const PageViewModelImpl = PageViewModelBase;
17 changes: 17 additions & 0 deletions src/page-view-model/page-view-model.base.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { AnyViewModel } from 'mobx-view-model';
import { EmptyObject } from 'mobx-view-model/utils/types';
import { describe, expect, test } from 'vitest';

import { PageViewModelBase } from './page-view-model.base';
import { AnyPathParams } from './page-view-model.types';

export class PageViewModelBaseMock<
Params extends AnyPathParams = EmptyObject,
ParentViewModel extends AnyViewModel | null = null,
> extends PageViewModelBase<Params, ParentViewModel> {}

describe.skip('PageViewModelBase', () => {
test.skip('renders', () => {
expect(true).toBe(true);
});
});
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { AnyViewModel, ViewModelImpl } from 'mobx-vm-entities';
import { EmptyObject } from 'mobx-vm-entities/utils/types';
import { AnyViewModel, ViewModelBase } from 'mobx-view-model';
import { EmptyObject } from 'mobx-view-model/utils/types';

import { PageViewModel } from './page-view-model';
import { AnyPathParams } from './page-view-model.types';

export class PageViewModelImpl<
export class PageViewModelBase<
Params extends AnyPathParams = EmptyObject,
ParentViewModel extends AnyViewModel | null = null,
>
extends ViewModelImpl<Params, ParentViewModel>
extends ViewModelBase<Params, ParentViewModel>
implements PageViewModel<Params, ParentViewModel>
{
get pathParams() {
Expand Down
17 changes: 0 additions & 17 deletions src/page-view-model/page-view-model.impl.test.ts

This file was deleted.

4 changes: 2 additions & 2 deletions src/page-view-model/page-view-model.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AnyViewModel, ViewModel } from 'mobx-vm-entities';
import { EmptyObject } from 'mobx-vm-entities/utils/types';
import { AnyViewModel, ViewModel } from 'mobx-view-model';
import { EmptyObject } from 'mobx-view-model/utils/types';

import { AnyPathParams } from './page-view-model.types';

Expand Down
2 changes: 1 addition & 1 deletion src/router/router.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
IMobxLocation,
IQueryParams,
} from 'mobx-location-history';
import { AnyObject } from 'mobx-vm-entities/utils/types';
import { AnyObject } from 'mobx-view-model/utils/types';

export interface IMobxRouter {
history: IMobxHistory;
Expand Down

0 comments on commit 7cb3256

Please sign in to comment.