refactor notification comp

This commit is contained in:
2026-03-10 07:12:55 +07:00
parent 4b4f6913bb
commit 12a0e6db08
20 changed files with 331 additions and 193 deletions

View File

@@ -591,7 +591,7 @@ impl DeviceRegistry {
match task.await {
Ok(_) => {
cx.update(|window, cx| {
window.clear_notification(id, cx);
window.clear_notification_by_id::<DeviceNotification>(id, cx);
})
.ok();
}
@@ -627,13 +627,14 @@ impl DeviceRegistry {
let entity = cx.entity().downgrade();
let loading = Rc::new(Cell::new(false));
let key = SharedString::from(event.id.to_hex());
Notification::new()
.custom_id(SharedString::from(event.id.to_hex()))
.type_id::<DeviceNotification>(key)
.autohide(false)
.icon(IconName::UserKey)
.title(SharedString::from("New request"))
.content(move |_window, cx| {
.content(move |_this, _window, cx| {
v_flex()
.gap_2()
.text_sm()
@@ -689,7 +690,7 @@ impl DeviceRegistry {
)
.into_any_element()
})
.action(move |_window, _cx| {
.action(move |_this, _window, _cx| {
let view = entity.clone();
let event = event.clone();
@@ -715,6 +716,8 @@ impl DeviceRegistry {
}
}
struct DeviceNotification;
/// Verify the author of an event
async fn verify_author(client: &Client, event: &Event) -> bool {
if let Some(signer) = client.signer() {