Мне нужно создать модал неактивности в моем проекте Angular с использованием таймера от Rx JS. Поскольку я новичок в Rx JS, у меня проблемы с этим. Вот код, который у меня есть сейчас. Это работает, но проблема, которую я имею, состоит в том, чтобы перезапустить таймер после того, как пользователь нажимает. На этом этапе я могу отменить таймер с условием takeUntil, но я могу перезапустить таймер снова. Я изучал примеры и код, но все они работают с событиями нажатия кнопок «Пуск», «Стоп», «Перезапуск», и мне нужно, чтобы события происходили после выполнения takeUntil. Спасибо за любую помощь, кто-нибудь может мне помочь!
fromEvent(document, 'scroll');
this.authManager = new BehaviorSubject(AuthState.INITIAL_STATE);
this.authChange = this.authManager.asObservable();
this.authChange.pipe(
filter((authState: AuthState) => authState === AuthState.LOGGED_IN),
map((authState:AuthState) => timer(8000).pipe(
takeUntil(clickEvent)
)),
tap(() => console.log('logged in. session timeout counting down from now'))
).switch().subscribe(() => {
console.log('timer ended: logging out');
this.waitingUserResponse();
});