From 5856a394f1ac2540b1b74c56bf44bdb9f6bfad97 Mon Sep 17 00:00:00 2001 From: luolei Date: Fri, 5 Aug 2022 18:28:26 +0800 Subject: [PATCH 1/3] feat(fromEvent): support HTMLElement --- packages/rxjs/from/index.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/rxjs/from/index.ts b/packages/rxjs/from/index.ts index 0b21346fef9..b3253526718 100644 --- a/packages/rxjs/from/index.ts +++ b/packages/rxjs/from/index.ts @@ -19,9 +19,12 @@ export function from(value: ObservableInput | Ref, watchOptions?: Watch } } -export function fromEvent(value: Ref, event: string): Observable { - return from(value, { immediate: true }).pipe( - filter(value => value instanceof HTMLElement), - mergeMap(value => fromEventRx(value, event)), - ) +export function fromEvent(value: Ref | T, event: string): Observable { + if (isRef(value)) { + return from(value, { immediate: true }).pipe( + filter(value => value instanceof HTMLElement), + mergeMap(value => fromEventRx(value, event)), + ) + } + return fromEventRx(value, event); } From 29345535afd91451dc3cf8f7aa1ee906d6d2e703 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sat, 6 Aug 2022 16:48:25 +0800 Subject: [PATCH 2/3] Update packages/rxjs/from/index.ts --- packages/rxjs/from/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rxjs/from/index.ts b/packages/rxjs/from/index.ts index b3253526718..c106e87f63a 100644 --- a/packages/rxjs/from/index.ts +++ b/packages/rxjs/from/index.ts @@ -26,5 +26,5 @@ export function fromEvent(value: Ref | T, event: strin mergeMap(value => fromEventRx(value, event)), ) } - return fromEventRx(value, event); + return fromEventRx(value, event) } From c7ac6bd688f8ef5bf26a5ae858261bcc38aed1ba Mon Sep 17 00:00:00 2001 From: luolei Date: Sat, 6 Aug 2022 17:06:31 +0800 Subject: [PATCH 3/3] Update packages/rxjs/from/index.ts --- packages/rxjs/from/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/rxjs/from/index.ts b/packages/rxjs/from/index.ts index c106e87f63a..436d58e1e90 100644 --- a/packages/rxjs/from/index.ts +++ b/packages/rxjs/from/index.ts @@ -2,6 +2,7 @@ import { Observable, fromEvent as fromEventRx, from as fromRxjs } from 'rxjs' import type { ObservableInput } from 'rxjs' import { filter, mergeMap } from 'rxjs/operators' import type { Ref, WatchOptions } from 'vue-demi' +import type { MaybeRef } from '@vueuse/shared' import { isRef, watch } from 'vue-demi' export function from(value: ObservableInput | Ref, watchOptions?: WatchOptions): Observable { @@ -19,7 +20,7 @@ export function from(value: ObservableInput | Ref, watchOptions?: Watch } } -export function fromEvent(value: Ref | T, event: string): Observable { +export function fromEvent(value: MaybeRef, event: string): Observable { if (isRef(value)) { return from(value, { immediate: true }).pipe( filter(value => value instanceof HTMLElement),