mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-04-21 11:26:15 +02:00
40 lines
1.1 KiB
Rust
40 lines
1.1 KiB
Rust
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
use tauri::{command, plugin::PermissionState, AppHandle, Runtime, State};
|
|
|
|
use crate::{Notification, NotificationData, Result};
|
|
|
|
#[command]
|
|
pub(crate) async fn is_permission_granted<R: Runtime>(
|
|
_app: AppHandle<R>,
|
|
notification: State<'_, Notification<R>>,
|
|
) -> Result<Option<bool>> {
|
|
let state = notification.permission_state()?;
|
|
match state {
|
|
PermissionState::Granted => Ok(Some(true)),
|
|
PermissionState::Denied => Ok(Some(false)),
|
|
PermissionState::Prompt | PermissionState::PromptWithRationale => Ok(None),
|
|
}
|
|
}
|
|
|
|
#[command]
|
|
pub(crate) async fn request_permission<R: Runtime>(
|
|
_app: AppHandle<R>,
|
|
notification: State<'_, Notification<R>>,
|
|
) -> Result<PermissionState> {
|
|
notification.request_permission()
|
|
}
|
|
|
|
#[command]
|
|
pub(crate) async fn notify<R: Runtime>(
|
|
_app: AppHandle<R>,
|
|
notification: State<'_, Notification<R>>,
|
|
options: NotificationData,
|
|
) -> Result<()> {
|
|
let mut builder = notification.builder();
|
|
builder.data = options;
|
|
builder.show()
|
|
}
|