// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

import type { BrowserWindow } from 'electron';
import { app, ipcMain } from 'electron';

let bounceId = -1;

export function init(win: BrowserWindow): void {
  ipcMain.on('bounce-app-icon-start', (_, isCritical = false) => {
    if (app.dock) {
      const type = isCritical ? 'critical' : 'informational';
      bounceId = app.dock.bounce(type);
    } else if (win && win.flashFrame) {
      win.once('focus', () => {
        win.flashFrame(false);
      });
      win.flashFrame(true);
    }
  });

  ipcMain.on('bounce-app-icon-stop', () => {
    if (app.dock) {
      if (bounceId < 0) {
        return;
      }

      app.dock.cancelBounce(bounceId);
      bounceId = -1;
    } else if (win && win.flashFrame) {
      win.flashFrame(false);
    }
  });
}