ionic-team / ionic-team/ionic-framework

bug: popover height calculated incorrectly with popoverController + component

Offen
#30,320 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
triage
Vorherrschende Sprache
TypeScript
Sterne
52.7k
Forks
13.3k
Ø Merge
1 T. 15 Std.
Gemergte PRs (30 T.)
51

Beschreibung

### Prerequisites

- [x] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#creating-an-issue).
- [x] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [x] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v8.x

### Current Behavior

When creating a popover with the popoverController and an Angular component, the height of the popover is calculated before Angular's change detection cycle is run. This means that if you are passing content into the popover, the height will be calculated incorrectly and the popover will be positioned wrong.

This mainly shows up when putting the popover in a footer as the offset is calculated using the content height.

### Expected Behavior

Ionic shouldn't calculate the content height of the popover before a change detection cycle has run so that any height changes caused by component props will be reflected.

### Steps to Reproduce

```
const popover = await this.popoverController.create({
component: PopoverContentComponent,
componentProps: { message: "some multiline content" },
event: { target: element } as unknown as Event, // an element in a footer
});
```

```
import { Component, Input } from '@angular/core';
import { CommonModule } from '@angular/common';

@Component({
selector: 'popover-content',
standalone: true,
imports: [CommonModule],
templateUrl: './popover-content.component.html',
styleUrl: './popover-content.component.scss',
})
export class PopoverContentComponent {
@Input() message = '';
}
```
```


{{ message }}



```

### Code Reproduction URL

https://github.com

### Ionic Info

Ionic:

Ionic CLI : 7.2.0 (\AppData\Roaming\nvm\v18.20.3\node_modules\@ionic\cli)
Ionic Framework : @ionic/angular 8.2.7 (\node_modules\@ionic\angular)
@angular-devkit/build-angular : 18.2.12 (\node_modules\@angular-devkit\build-angular)
@angular-devkit/schematics : 18.2.12 (\node_modules\@angular-devkit\schematics)
@angular/cli : 18.2.12 (\node_modules\@angular\cli)
@ionic/angular-toolkit : not installed

Capacitor:

Capacitor CLI : not installed
@capacitor/android : 6.1.0 (\node_modules\@capacitor\android)
@capacitor/core : 6.1.0 (\node_modules\@capacitor\core)
@capacitor/ios : 6.1.0 (\node_modules\@capacitor\ios)

Utility:

cordova-res : not installed globally
native-run : not installed globally

System:

NodeJS : v18.20.3 (C:\Program Files\nodejs\node.exe)
npm : 10.7.0
OS : Windows 10

### Additional Information

_No response_

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.