Skip to content

Commit

Permalink
feat(dropdown): replace NgbNavbar usage by DOM call to closest()
Browse files Browse the repository at this point in the history
The NgbNavbar directive is not removed, but simply deprecated, in order to avoid a breaking change for people who have imported it in their modules or standalone components.

fix ng-bootstrap#4462
  • Loading branch information
jnizet committed Jan 20, 2023
1 parent 064fef3 commit f7e8d2f
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 19 deletions.
19 changes: 3 additions & 16 deletions src/dropdown/dropdown.module.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,18 @@
import { NgModule } from '@angular/core';
import {
NgbDropdown,
NgbDropdownAnchor,
NgbDropdownToggle,
NgbDropdownMenu,
NgbDropdownItem,
NgbNavbar,
} from './dropdown';
import { NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem } from './dropdown';

export {
NgbDropdown,
NgbDropdownAnchor,
NgbDropdownToggle,
NgbDropdownMenu,
NgbDropdownItem,
// eslint-disable-next-line deprecation/deprecation
NgbNavbar,
} from './dropdown';
export { NgbDropdownConfig } from './dropdown-config';

const NGB_DROPDOWN_DIRECTIVES = [
NgbDropdown,
NgbDropdownAnchor,
NgbDropdownToggle,
NgbDropdownMenu,
NgbDropdownItem,
NgbNavbar,
];
const NGB_DROPDOWN_DIRECTIVES = [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem];

@NgModule({
imports: NGB_DROPDOWN_DIRECTIVES,
Expand Down
7 changes: 4 additions & 3 deletions src/dropdown/dropdown.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import {
NgZone,
OnChanges,
OnDestroy,
Optional,
Output,
QueryList,
Renderer2,
Expand All @@ -31,6 +30,9 @@ import { Key } from '../util/key';
import { NgbDropdownConfig } from './dropdown-config';
import { FOCUSABLE_ELEMENTS_SELECTOR } from '../util/focus-trap';

/**
* @deprecated this directive isn't useful anymore. You can remove it from your imports
*/
@Directive({ selector: '.navbar', standalone: true })
export class NgbNavbar {}

Expand Down Expand Up @@ -249,15 +251,14 @@ export class NgbDropdown implements AfterContentInit, OnChanges, OnDestroy {
private _ngZone: NgZone,
private _elementRef: ElementRef<HTMLElement>,
private _renderer: Renderer2,
@Optional() ngbNavbar: NgbNavbar,
) {
this.placement = config.placement;
this.popperOptions = config.popperOptions;
this.container = config.container;
this.autoClose = config.autoClose;

this._positioning = ngbPositioning();
this.display = ngbNavbar ? 'static' : 'dynamic';
this.display = this._elementRef.nativeElement.closest('.navbar') ? 'static' : 'dynamic';
}

ngAfterContentInit() {
Expand Down
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ export {
NgbDropdownMenu,
NgbDropdownModule,
NgbDropdownToggle,
// eslint-disable-next-line deprecation/deprecation
NgbNavbar,
} from './dropdown/dropdown.module';
export {
Expand Down

0 comments on commit f7e8d2f

Please sign in to comment.