From 0bfddab9153995fb10943615e793aaf97427f2ec Mon Sep 17 00:00:00 2001 From: "Bundyo (Kamen Bundev)" Date: Tue, 25 Jun 2019 15:15:14 +0300 Subject: [PATCH] Add support for :focus pseudo class in TextField/TextView (#7396) --- .../editable-text-base/editable-text-base-common.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts b/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts index 495df9f91..04d3400b7 100644 --- a/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts +++ b/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts @@ -1,5 +1,5 @@ import { EditableTextBase as EditableTextBaseDefinition, KeyboardType, ReturnKeyType, UpdateTextTrigger, AutocapitalizationType } from "."; -import { TextBase, Property, CssProperty, Style, Color, booleanConverter, makeValidator, makeParser } from "../text-base"; +import { TextBase, Property, CssProperty, Style, Color, booleanConverter, makeValidator, makeParser, PseudoClassHandler } from "../text-base"; export * from "../text-base"; @@ -18,6 +18,17 @@ export abstract class EditableTextBase extends TextBase implements EditableTextB public abstract dismissSoftInput(); public abstract _setInputType(inputType: number): void; + + private _focusHandler = () => this._goToVisualState("focus"); + private _blurHandler = () => this._goToVisualState("blur"); + + @PseudoClassHandler("focus", "blur") + _updateHandler(subscribe) { + const method = subscribe ? "on" : "off"; + + this[method]("focus", this._focusHandler); + this[method]("blur", this._blurHandler); + }; } // TODO: Why not name it - hintColor property??