summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/webview-zoom.ts
blob: 9fa9bb9ed92a54d4c07deb24805c0a58c24af169 (plain)
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
28
29
30
31
// Copyright 2019-2024 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

import { invoke } from "@tauri-apps/api/core"
import { type as ostype } from "@tauri-apps/plugin-os"

const OS_NAME = ostype()

let zoomLevel = 1

const MAX_ZOOM_LEVEL = 10
const MIN_ZOOM_LEVEL = 0.2

window.addEventListener("keydown", (event) => {
  if (OS_NAME === "macos" ? event.metaKey : event.ctrlKey) {
    if (event.key === "-") {
      zoomLevel -= 0.2
    } else if (event.key === "=" || event.key === "+") {
      zoomLevel += 0.2
    } else if (event.key === "0") {
      zoomLevel = 1
    } else {
      return
    }
    zoomLevel = Math.min(Math.max(zoomLevel, MIN_ZOOM_LEVEL), MAX_ZOOM_LEVEL)
    invoke("plugin:webview|set_webview_zoom", {
      value: zoomLevel,
    })
  }
})