aboutsummaryrefslogtreecommitdiffstats
path: root/src/electron/ipc-api/dnd.ts
blob: 280521a9fbc6273992e3a12208574b3f3a6a89e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { ipcMain } from 'electron';
import { isMac } from '../../environment';

const debug = require('../../preload-safe-debug')('Ferdium:ipcApi:dnd');

export default async () => {
  ipcMain.handle('get-dnd', async () => {
    if (!isMac) {
      return false;
    }
    const { getDoNotDisturb } = await import('macos-notification-state');

    if (!getDoNotDisturb) {
      debug("Could not load 'macos-notification-state' module");
      return false;
    }

    try {
      const isDND = await getDoNotDisturb();
      debug('Fetching DND state, set to', isDND);
      return isDND;
    } catch (error) {
      console.error(error);
      return false;
    }
  });
};