Skip to content

Commit

Permalink
feat(core): enable TuiHint hover when TuiHintManual is null
Browse files Browse the repository at this point in the history
  • Loading branch information
MuhammedSmani committed Dec 10, 2024
1 parent 4d4dbf1 commit e659456
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
10 changes: 7 additions & 3 deletions projects/core/directives/hint/hint-manual.directive.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type {OnChanges} from '@angular/core';
import {Directive, inject, Input} from '@angular/core';
import {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';
import type {Subscriber} from 'rxjs';
import {BehaviorSubject} from 'rxjs';

import {TuiHintHover} from './hint-hover.directive';
Expand All @@ -12,19 +13,22 @@ import {TuiHintHover} from './hint-hover.directive';
})
export class TuiHintManual extends TuiDriver implements OnChanges {
private readonly hover = inject(TuiHintHover);
private readonly stream$ = new BehaviorSubject(false);
private readonly stream$ = new BehaviorSubject<boolean | null>(false);

@Input()
public tuiHintManual = false;
public tuiHintManual: boolean | null = false;

public readonly type = 'hint';

constructor() {
super((subscriber) => this.stream$.subscribe(subscriber));
super((subscriber: Subscriber<boolean | null>) =>
this.stream$.subscribe(subscriber),
);
this.hover.enabled = false;
}

public ngOnChanges(): void {
this.stream$.next(this.tuiHintManual);
this.hover.enabled = this.tuiHintManual === null;
}
}
11 changes: 10 additions & 1 deletion projects/core/directives/hint/test/hint.directive.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type {TemplateRef} from '@angular/core';
import {ChangeDetectionStrategy, Component} from '@angular/core';
import type {ComponentFixture} from '@angular/core/testing';
import {discardPeriodicTasks, fakeAsync, TestBed, tick} from '@angular/core/testing';
import {TuiHint, TuiRoot} from '@taiga-ui/core';
import {TuiHint, TuiHintManual, TuiRoot} from '@taiga-ui/core';

type Hint = TemplateRef<Record<string, unknown>> | string | null | undefined;

Expand Down Expand Up @@ -95,6 +95,15 @@ describe('Hint', () => {

expect(getTooltip()).toBeNull();
}));

it('enables hover when tuiHintManual is null', () => {
const hintManualDirective = TestBed.inject(TuiHintManual);

hintManualDirective.tuiHintManual = null;
hintManualDirective.ngOnChanges();

expect(hintManualDirective['hover'].enabled).toBeTruthy();
});
});

describe('Hint is not shown', () => {
Expand Down

0 comments on commit e659456

Please sign in to comment.