feat(shared-scanner): Moved to shared/scanner

feat(common-data-access): takeUnitl operators for keydown

Refs: #5062
This commit is contained in:
Lorenz Hilpert
2025-06-12 16:34:21 +02:00
parent 055cfb67d3
commit 3cf05f04ef
30 changed files with 93 additions and 44 deletions

View File

@@ -1 +1,2 @@
export * from './take-until-aborted';
export * from './take-unitl-keydown';

View File

@@ -0,0 +1,14 @@
import { filter, fromEvent, Observable, takeUntil } from 'rxjs';
export const takeUntilKeydown =
<T>(key: string) =>
(source: Observable<T>): Observable<T> => {
const keydownEvent$ = fromEvent<KeyboardEvent>(document, 'keydown').pipe(
// Filter for the specific key
filter((event) => event.key === key),
);
return source.pipe(takeUntil(keydownEvent$));
};
export const takeUntilKeydownEscape = <T>() => takeUntilKeydown<T>('Escape');

View File

@@ -1,4 +1,4 @@
import { Observable, fromEvent } from 'rxjs';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
/**
@@ -19,7 +19,6 @@ export const fromAbortSignal = (signal: AbortSignal): Observable<void> => {
return new Observable<void>((subscriber) => {
const abortHandler = () => {
subscriber.next();
subscriber.complete();
};
// Listen for the 'abort' event