Skip to content

Commit c86498e

Browse files
committed
Added onFocusCapture event for better react native support
1 parent e74ac2e commit c86498e

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

.changeset/sharp-days-return.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@plexinc/react-lightning": patch
3+
---
4+
5+
Added onFocusCapture event for better react native support

packages/react-lightning/src/element/LightningViewElement.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@ export class LightningViewElement<
214214

215215
public on = this._emitter.on.bind(this._emitter);
216216
public off = this._emitter.off.bind(this._emitter);
217+
public addEventListener = this._emitter.on.bind(this._emitter);
218+
public removeEventListener = this._emitter.off.bind(this._emitter);
217219
public emit = this._emitter.emit.bind(this._emitter);
218220

219221
public constructor(
@@ -310,6 +312,7 @@ export class LightningViewElement<
310312

311313
public focus(): void {
312314
if (!this._focused) {
315+
this.props.onFocusCapture?.(this);
313316
this._focused = true;
314317
this._emitter.emit('focusChanged', true);
315318
this.props.onFocus?.(this);

packages/react-lightning/src/types/Focusable.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export interface Focusable {
88
}
99

1010
export interface FocusableProps {
11+
onFocusCapture?: (element: LightningElement) => void;
1112
onFocus?: (element: LightningElement) => void;
1213
onBlur?: (element: LightningElement) => void;
1314
}

packages/react-lightning/src/types/LightningElementEvents.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export interface LightningElementEvents {
1313
destroy: () => void;
1414
childAdded: (child: LightningElement, index: number) => void;
1515
childRemoved: (child: LightningElement, index: number) => void;
16+
childFocused: (child: LightningElement) => void;
1617
beforeRender: () => void;
1718
layout: (dimensions: Rect) => void;
1819
textureLoaded: NodeLoadedEventHandler;

0 commit comments

Comments
 (0)