Browse Source
Bugfix/double scrollbars on feature page (#6925 )
* Fix double scrollbars on feature page
* Remove has-tabs style class
* Update changelog
pull/6928/head
Kenrick Tandrian
2 days ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with
21 additions and
11 deletions
CHANGELOG.md
apps/client/src/app/pages/about/about-page.component.ts
apps/client/src/app/pages/admin/admin-page.component.ts
apps/client/src/app/pages/faq/faq-page.component.ts
apps/client/src/app/pages/home/home-page.component.ts
apps/client/src/app/pages/portfolio/portfolio-page.component.ts
apps/client/src/app/pages/resources/resources-page.component.ts
apps/client/src/app/pages/user-account/user-account-page.component.ts
apps/client/src/app/pages/zen/zen-page.component.ts
apps/client/src/styles.scss
@ -16,6 +16,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Removed the deprecated attributes (`assetClass`, `countries` , `currency` , `dataSource` , `name` , `sectors` , `symbol` and `url` ) from the holdings of the public portfolio endpoint response
- Removed the deprecated attributes (`assetClass`, `countries` , `currency` , `dataSource` , `name` , `sectors` , `symbol` and `url` ) from the holdings of the public portfolio endpoint response
- Upgraded `@keyv/redis` from version `4.4.0` to `5.1.6`
- Upgraded `@keyv/redis` from version `4.4.0` to `5.1.6`
### Fixed
- Fixed a layout regression that caused a double scrollbar on pages without tabs
## 3.4.0 - 2026-05-21
## 3.4.0 - 2026-05-21
### Added
### Added
@ -21,7 +21,7 @@ import {
} from 'ionicons/icons' ;
} from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-about-page' ,
selector : 'gf-about-page' ,
styleUrls : [ './about-page.scss' ] ,
styleUrls : [ './about-page.scss' ] ,
@ -15,7 +15,7 @@ import {
} from 'ionicons/icons' ;
} from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-admin-page' ,
selector : 'gf-admin-page' ,
styleUrls : [ './admin-page.scss' ] ,
styleUrls : [ './admin-page.scss' ] ,
@ -11,7 +11,7 @@ import { addIcons } from 'ionicons';
import { cloudyOutline , readerOutline , serverOutline } from 'ionicons/icons' ;
import { cloudyOutline , readerOutline , serverOutline } from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-faq-page' ,
selector : 'gf-faq-page' ,
styleUrls : [ './faq-page.scss' ] ,
styleUrls : [ './faq-page.scss' ] ,
@ -25,7 +25,7 @@ import {
} from 'ionicons/icons' ;
} from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-home-page' ,
selector : 'gf-home-page' ,
styleUrls : [ './home-page.scss' ] ,
styleUrls : [ './home-page.scss' ] ,
@ -18,7 +18,7 @@ import {
} from 'ionicons/icons' ;
} from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-portfolio-page' ,
selector : 'gf-portfolio-page' ,
styleUrls : [ './portfolio-page.scss' ] ,
styleUrls : [ './portfolio-page.scss' ] ,
@ -14,7 +14,7 @@ import {
} from 'ionicons/icons' ;
} from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-resources-page' ,
selector : 'gf-resources-page' ,
styleUrls : [ './resources-page.scss' ] ,
styleUrls : [ './resources-page.scss' ] ,
@ -12,7 +12,7 @@ import { addIcons } from 'ionicons';
import { diamondOutline , keyOutline , settingsOutline } from 'ionicons/icons' ;
import { diamondOutline , keyOutline , settingsOutline } from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-user-account-page' ,
selector : 'gf-user-account-page' ,
styleUrls : [ './user-account-page.scss' ] ,
styleUrls : [ './user-account-page.scss' ] ,
@ -12,7 +12,7 @@ import { addIcons } from 'ionicons';
import { albumsOutline , analyticsOutline } from 'ionicons/icons' ;
import { albumsOutline , analyticsOutline } from 'ionicons/icons' ;
@Component ( {
@Component ( {
host : { class : 'page has-tabs ' } ,
host : { class : 'page' } ,
imports : [ GfPageTabsComponent ] ,
imports : [ GfPageTabsComponent ] ,
selector : 'gf-zen-page' ,
selector : 'gf-zen-page' ,
styleUrls : [ './zen-page.scss' ] ,
styleUrls : [ './zen-page.scss' ] ,
@ -365,7 +365,8 @@ ngx-skeleton-loader {
}
}
. has-info-message {
. has-info-message {
. page . has-tabs {
/ / Restrict viewport height of tabbed views when the Live Demo or system announcements banner are displayed
. page : has ( gf-page-tabs ) {
height : calc ( 100 svh - 2 * var ( -- mat-toolbar-standard-height )) ;
height : calc ( 100 svh - 2 * var ( -- mat-toolbar-standard-height )) ;
}
}
}
}
@ -479,7 +480,6 @@ ngx-skeleton-loader {
. page {
. page {
display : flex ;
display : flex ;
height : calc ( 100 svh - var ( -- mat-toolbar-standard-height )) ;
overflow-y : auto ;
overflow-y : auto ;
padding-bottom : env ( safe - area-inset-bottom ) ;
padding-bottom : env ( safe - area-inset-bottom ) ;
padding-bottom : constant ( safe - area-inset-bottom ) ;
padding-bottom : constant ( safe - area-inset-bottom ) ;
@ -491,7 +491,13 @@ ngx-skeleton-loader {
z-index : 999 ;
z-index : 999 ;
}
}
& : not ( . has-tabs ) {
/ / Restrict viewport height and layout boundaries only when the page hosts tab navigation
& : has ( gf-page-tabs ) {
height : calc ( 100 svh - var ( -- mat-toolbar-standard-height )) ;
}
/ / Apply vertical padding only to standalone or nested content views ( tabs handle their own padding )
& : not ( : has ( gf-page-tabs ) ) {
@media ( min-width : 576 px ) {
@media ( min-width : 576 px ) {
padding : 2 rem 0 ;
padding : 2 rem 0 ;
}
}