mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-03 10:11:15 +02:00
* chore: add prettier for js/ts formatting * fix lint-staged to object * test commit * format all * lock file bump * eslint extends prettier This will let us skip rules in eslint that prettier can control. Prettier for styles, eslint for code errors. * add prettier config * roll back to what we had with eslint settings * skip mutation observer * add prettier typescript eslint * run prettier in lint workflow * format:check script * turn off space before function in eslint it is fighting with prettier * fix dir in workflow * remove semis * add api to eslint * shift eslint ignore comment after prettier format * ignore errors that currently exist * build:typevalidators * replace was broken on typevalidator build * try pushing up error * format * try removing working dir from eslint workflow * try node 12 * fix indent in action * bump eslint * fix supposeded error and try another * try breaking eslint * try building in action * adjust action paths again * need dot * remove build * fix(tauri.js/eslint): escape glob * * fix(tauri.js): ignore lint error * Create prettier-taurijs.md Co-authored-by: Noah Klayman <noahklayman@gmail.com>
36 lines
976 B
TypeScript
36 lines
976 B
TypeScript
import { promisified } from './tauri'
|
|
|
|
export interface Options {
|
|
title: string
|
|
body?: string
|
|
icon?: string
|
|
}
|
|
|
|
export type PartialOptions = Omit<Options, 'title'>
|
|
export type Permission = 'granted' | 'denied' | 'default'
|
|
|
|
async function isPermissionGranted(): Promise<boolean | null> {
|
|
if (window.Notification.permission !== 'default') {
|
|
return await Promise.resolve(window.Notification.permission === 'granted')
|
|
}
|
|
return await promisified({
|
|
cmd: 'isNotificationPermissionGranted'
|
|
})
|
|
}
|
|
|
|
async function requestPermission(): Promise<Permission> {
|
|
return await window.Notification.requestPermission()
|
|
}
|
|
|
|
function sendNotification(options: Options | string): void {
|
|
if (typeof options === 'string') {
|
|
// eslint-disable-next-line no-new
|
|
new window.Notification(options)
|
|
} else {
|
|
// eslint-disable-next-line no-new
|
|
new window.Notification(options.title, options)
|
|
}
|
|
}
|
|
|
|
export { sendNotification, requestPermission, isPermissionGranted }
|