Added cross-browser fullscreen behaviour#152
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
I have looked into this and it only happens when:
There might be workarounds but they would require too much of a faking of fullscreen behaviour and I think it's not worth the trade-off. |
|
@MarielaTihova please resolve conflicts |
…ples into mtihova/fix-147
|
@ChronosSF Can this PR undergo a new review and be updated to the latest angular release. I notice |
There was a problem hiding this comment.
Pull request overview
This PR addresses cross-browser UI inconsistencies reported in #147 by improving fullscreen enter/exit detection (including Safari/WebKit events and F11 heuristics), adjusting fullscreen-related styling to avoid dark/black rendering, and updating Ignite UI-related dependencies across multiple example projects.
Changes:
- Added WebKit fullscreen event handling and centralized fullscreen detection/toggling logic in the home view.
- Updated home view styling for fullscreen and sub-header/tab areas to improve cross-browser rendering.
- Updated Ignite UI Angular / Charts / Core / WebComponents dependency versions (and corresponding lockfiles) across several projects.
Reviewed changes
Copilot reviewed 10 out of 20 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/app/views/home/home.component.ts | Adds cross-browser fullscreen event handling and updated fullscreen toggle logic. |
| src/app/views/home/home.component.scss | Adjusts colors/backgrounds for sub-header and fullscreen states. |
| projects/sales-grid/src/app/sales-grid/sales-grid.component.ts | Adds platform/browser detection for safer client-only UI behavior. |
| projects/sales-grid/src/app/sales-grid/sales-grid.component.html | Conditionally renders tooltip-related UI in the browser. |
| projects/hr-portal/package-lock.json | Lockfile metadata adjustment for hammerjs. |
| projects/fleet-management-grid/package-lock.json | Bumps Ignite UI packages in lockfile. |
| projects/erp-hgrid/package-lock.json | Bumps Ignite UI packages in lockfile. |
| projects/charts/step-chart/package.json | Bumps Ignite UI and webcomponents dependency ranges. |
| projects/charts/step-chart/package-lock.json | Updates resolved Ignite UI/webcomponents versions and peer metadata. |
| projects/charts/polar-chart/package.json | Bumps Ignite UI and webcomponents dependency ranges. |
| projects/charts/polar-chart/package-lock.json | Updates resolved Ignite UI/webcomponents versions and peer metadata. |
| projects/charts/pie-chart/package.json | Bumps Ignite UI and webcomponents dependency ranges. |
| projects/charts/pie-chart/package-lock.json | Updates resolved Ignite UI/webcomponents versions and peer metadata. |
| projects/charts/line-chart/package.json | Bumps Ignite UI and webcomponents dependency ranges. |
| projects/charts/line-chart/package-lock.json | Updates resolved Ignite UI/webcomponents versions and peer metadata. |
| projects/charts/column-chart/package.json | Bumps Ignite UI and webcomponents dependency ranges. |
| projects/charts/column-chart/package-lock.json | Updates resolved Ignite UI/webcomponents versions and peer metadata. |
| projects/charts/bar-chart/package.json | Bumps Ignite UI and webcomponents dependency ranges. |
| projects/charts/bar-chart/package-lock.json | Updates resolved Ignite UI/webcomponents versions and peer metadata. |
| package-lock.json | Updates root resolved Ignite UI packages. |
Files not reviewed (9)
- projects/charts/bar-chart/package-lock.json: Generated file
- projects/charts/column-chart/package-lock.json: Generated file
- projects/charts/line-chart/package-lock.json: Generated file
- projects/charts/pie-chart/package-lock.json: Generated file
- projects/charts/polar-chart/package-lock.json: Generated file
- projects/charts/step-chart/package-lock.json: Generated file
- projects/erp-hgrid/package-lock.json: Generated file
- projects/fleet-management-grid/package-lock.json: Generated file
- projects/hr-portal/package-lock.json: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ngOnDestroy(): void { | ||
| if (!isPlatformBrowser(this.platformId)) return; | ||
|
|
||
| document.removeEventListener('fullscreenchange', this.onFullscreenChange); | ||
| document.addEventListener('webkitfullscreenchange', this.onFullscreenChange); // Safari / Mac | ||
| window.removeEventListener('resize', this.onResize); |
| public async onToggleFullscreen(): Promise<void> { | ||
| if (!isPlatformBrowser(this.platformId)) return; | ||
|
|
||
| const el = this.fullscreenElement?.nativeElement; | ||
| if (!el) return; | ||
|
|
||
| if (!document.fullscreenElement && el?.requestFullscreen) { | ||
| await el.requestFullscreen(); | ||
| this.isFullscreen = true; | ||
| } else if (document.exitFullscreen) { | ||
| await document.exitFullscreen(); | ||
| this.isFullscreen = false; | ||
| try { | ||
| if (!this.isFullscreen) { | ||
| await this.requestFullscreen(el); | ||
| } else { | ||
| await this.exitFullscreen(); | ||
| } | ||
|
|
||
| this.isFullscreen = this.isElementFullscreen(); | ||
| this.cdr.detectChanges(); | ||
| } catch (err) { |
| background: white; | ||
| color: var(--ig-gray-900, black); |
| background: white; | ||
| color: var(--ig-gray-900, black); |
| <button *ngIf="isBrowser && configTooltipRef" igxButton="contained" style="margin-right: 10px;" | ||
| [igxToggleAction]="viewDropdown" [igxDropDownItemNavigation]="viewDropdown" | ||
| [igxTooltipTarget]="configTooltipRef"> |
| <div #configTooltipRef="tooltip" igxTooltip> | ||
| Change pivot configuration. | ||
| </div> | ||
| <div *ngIf="isBrowser && configTooltipRef" #configTooltipRef="tooltip" igxTooltip> |
Resolves #147