Как узнать, остается ли пользователь на странице, используя beforeunload в Angular?

#angular #decorator #preventdefault #onbeforeunload

#angular #декоратор #preventdefault #onbeforeunload

Вопрос:

Я использую Dropzone для загрузки файлов в свой веб. Я хочу отменить текущую загрузку файлов, а затем удалить загруженные файлы в моем хранилище. Во время загрузки файлов, если пользователь покидает сайт, появляется модальный параметр по умолчанию, и он решает, остаться или уйти.

Это модальный параметр по умолчанию в Chrome:

Оставьте сайт модальным

Мой текущий код работает, когда пользователь, наконец, решает покинуть сайт, но если он решит остаться, код также запускается.

Я ищу функцию или что-то, что сообщит мне, останется ли пользователь или покинет сайт для принятия того или иного решения. Другими словами, я хочу знать, на какую кнопку нажимает пользователь и где хранится эта информация.

Я использую декоратор HostListener с событием beforunload:

  @HostListener('window:beforeunload', ['$event'])
  onWindowClose(event: any): void {
   // Some code
   event.preventDefault();
   event.returnValue = false;
   }
 

Код в HostListener выполняется всякий раз, когда пользователь остается или покидает сайт.