Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add more fine-grained control over inputs and outputs #328

Merged
merged 1 commit into from
Nov 25, 2022

Conversation

timdeschryver
Copy link
Member

@timdeschryver timdeschryver commented Nov 24, 2022

Part of #322

BREAKING CHANGE:

rerender expects properties to be wrapped in an object containing componentProperties (or componentInputs and componentOutputs to have a more fine-grained control).

BEFORE:

await render(PersonComponent, { 
  componentProperties: { 
    name: 'Sarah' 
  }
});


await rerender({ name: 'Sarah 2' });

AFTER:

await render(PersonComponent, { 
  componentProperties: { 
    name: 'Sarah' 
  }
});


await rerender({ 
  componentProperties: { 
    name: 'Sarah 2' 
  }
});

@timdeschryver timdeschryver force-pushed the feat/change-input-output branch from 4361a6f to 93c5ccc Compare November 24, 2022 19:00
@timdeschryver timdeschryver merged commit ce3a612 into beta Nov 25, 2022
@timdeschryver timdeschryver deleted the feat/change-input-output branch November 25, 2022 11:42
@github-actions
Copy link

🎉 This PR is included in version 13.0.0-beta.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

timdeschryver added a commit that referenced this pull request Dec 8, 2022
BREAKING CHANGE:

`rerender` expects properties to be wrapped in an object containing `componentProperties` (or `componentInputs` and `componentOutputs` to have a more fine-grained control).

BEFORE:

```ts
await render(PersonComponent, { 
  componentProperties: { 
    name: 'Sarah' 
  }
});


await rerender({ name: 'Sarah 2' });
```

AFTER:

```ts
await render(PersonComponent, { 
  componentProperties: { 
    name: 'Sarah' 
  }
});


await rerender({ 
  componentProperties: { 
    name: 'Sarah 2' 
  }
});
```
timdeschryver added a commit that referenced this pull request Dec 14, 2022
* feat: update to Angular 15

* feat: rename ɵcomponentImports to componentImports

BREAKING CHANGE:

The render property ɵcomponentImports is not experimental anymore, and is renamed to componentImports

BEFORE:

```ts
render(ParentComponent, {
    ɵcomponentImports: [ChildComponent],
});
```

AFTER:

```ts
render(ParentComponent, {
    componentImports: [ChildComponent],
});
```

* docs: update material inputs example (#324)

* fix: don't fire router events on render (#325)

Closes #318

* fix: don't invoke ngOnChanges when no properties are provided (#326)

Closes #323

BREAKING CHANGE:

This change is made to have the same behavior as the run time behavior.

BEFORE:

The `ngOnChanges` lifecycle is always invoked when a component is rendered. 

AFTER:

The `ngOnChanges` lifecycle is only invoked if a component is rendered with `componentProperties`.

* feat: add more fine-grained control over inputs and outputs (#328)

BREAKING CHANGE:

`rerender` expects properties to be wrapped in an object containing `componentProperties` (or `componentInputs` and `componentOutputs` to have a more fine-grained control).

BEFORE:

```ts
await render(PersonComponent, { 
  componentProperties: { 
    name: 'Sarah' 
  }
});


await rerender({ name: 'Sarah 2' });
```

AFTER:

```ts
await render(PersonComponent, { 
  componentProperties: { 
    name: 'Sarah' 
  }
});


await rerender({ 
  componentProperties: { 
    name: 'Sarah 2' 
  }
});
```

* feat: add ability to turn off auto detect changes (#329)

* chore: update peer dependencies (#330)

BREAKING CHANGE:

BEFORE:

The minimum version of Angular is v14.0.0

AFTER:

The minimum version of Angular is v14.1.0

* feat: childComponentOverrides is stable (#338)

* fix: invoke changeChanges once on input change (#339)

* feat: remove detectChanges in favor of detectChangesOnRender (#341)

BREAKING CHANGE:

The config property detectChanges is renamed to detectChangesOnRender.

BEFORE:

```ts
const component = await render(AppComponent, {
  detectChanges: false
});
```

AFTER:

```ts
const component = await render(AppComponent, {
  detectChangesOnRender: false
});
```

* test: extra tests for ngOnChanges (#342)

* test: add test example for harness (#343)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant