From 139dd82de037552c057decfb0b08fe70b52797d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Sat, 2 Oct 2021 17:01:09 +0300 Subject: [PATCH] Hidden action --- src/lib/common-ui.module.ts | 3 ++- .../hidden-action.component.html | 3 +++ .../hidden-action.component.scss | 0 .../hidden-action/hidden-action.component.ts | 25 +++++++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/lib/misc/hidden-action/hidden-action.component.html create mode 100644 src/lib/misc/hidden-action/hidden-action.component.scss create mode 100644 src/lib/misc/hidden-action/hidden-action.component.ts diff --git a/src/lib/common-ui.module.ts b/src/lib/common-ui.module.ts index 9f10028..ea17ad9 100644 --- a/src/lib/common-ui.module.ts +++ b/src/lib/common-ui.module.ts @@ -18,6 +18,7 @@ import { IqserScrollbarModule } from './scrollbar'; import { IqserEmptyStatesModule } from './empty-states'; import { LogPipe } from './utils/pipes/log.pipe'; import { LogoComponent } from './misc/logo/logo.component'; +import { HiddenActionComponent } from './misc/hidden-action/hidden-action.component'; const matModules = [MatIconModule, MatProgressSpinnerModule]; const modules = [ @@ -31,7 +32,7 @@ const modules = [ IqserScrollbarModule, IqserEmptyStatesModule ]; -const components = [StatusBarComponent, FullPageLoadingIndicatorComponent, FullPageErrorComponent, LogoComponent]; +const components = [StatusBarComponent, FullPageLoadingIndicatorComponent, FullPageErrorComponent, LogoComponent, HiddenActionComponent]; const pipes = [SortByPipe, HumanizePipe]; @NgModule({ diff --git a/src/lib/misc/hidden-action/hidden-action.component.html b/src/lib/misc/hidden-action/hidden-action.component.html new file mode 100644 index 0000000..a101778 --- /dev/null +++ b/src/lib/misc/hidden-action/hidden-action.component.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/lib/misc/hidden-action/hidden-action.component.scss b/src/lib/misc/hidden-action/hidden-action.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/misc/hidden-action/hidden-action.component.ts b/src/lib/misc/hidden-action/hidden-action.component.ts new file mode 100644 index 0000000..0447279 --- /dev/null +++ b/src/lib/misc/hidden-action/hidden-action.component.ts @@ -0,0 +1,25 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; + +@Component({ + selector: 'iqser-hidden-action', + templateUrl: './hidden-action.component.html', + styleUrls: ['./hidden-action.component.scss'] +}) +export class HiddenActionComponent { + @Input() requiredClicks = 4; + @Output() readonly action = new EventEmitter(); + private _clickCount = 0; + private _clickCountTimeout?: ReturnType; + + countActions(): void { + this._clickCount += 1; + if (this._clickCount === this.requiredClicks) { + this._clickCount = 0; + this.action.emit(); + } + clearTimeout(this._clickCountTimeout); + this._clickCountTimeout = setTimeout(() => { + this._clickCount = 0; + }, 1000); + } +}