mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-04-21 11:26:15 +02:00
250857b7b7
* chore(deps): update dependency typescript to v6 * Use 6.0.3 * Fix eslint * Add `rootDir` since it's no longer inferred > https://github.com/microsoft/TypeScript/issues/62508#issuecomment-3348659946 --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tony <legendmastertony@gmail.com>
41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { invoke } from '@tauri-apps/api/core'
|
|
|
|
// open <a href="..."> links with the API
|
|
function openLinks(): void {
|
|
document.querySelector('body')?.addEventListener('click', function (e) {
|
|
let target: HTMLElement | null = e.target as HTMLElement
|
|
while (target) {
|
|
if (target.matches('a')) {
|
|
const t = target
|
|
if (
|
|
t.href !== ''
|
|
&& ['http://', 'https://', 'mailto:', 'tel:'].some((v) =>
|
|
t.href.startsWith(v)
|
|
)
|
|
&& t.target === '_blank'
|
|
) {
|
|
void invoke('plugin:shell|open', {
|
|
path: t.href
|
|
})
|
|
e.preventDefault()
|
|
}
|
|
break
|
|
}
|
|
target = target.parentElement
|
|
}
|
|
})
|
|
}
|
|
|
|
if (
|
|
document.readyState === 'complete'
|
|
|| document.readyState === 'interactive'
|
|
) {
|
|
openLinks()
|
|
} else {
|
|
window.addEventListener('DOMContentLoaded', openLinks, true)
|
|
}
|