yggdrasil/context.rs
1//! 前端全局上下文定义。
2//!
3//! 当前保存当前登录用户的信息,供 Dioxus 组件在客户端与服务端渲染期间共享访问。
4
5use dioxus::prelude::*;
6use std::sync::Arc;
7
8use crate::models::user::PublicUser;
9
10/// 用户上下文,用于在组件树中传递登录状态。
11#[derive(Clone, Copy)]
12pub struct UserContext {
13 /// 当前登录用户,未登录时为 `None`。
14 pub user: Signal<Option<Arc<PublicUser>>>,
15 /// 是否已完成会话校验,避免重复触发验证请求。
16 pub checked: Signal<bool>,
17}