Skip to content

Commit

Permalink
feat(ui): add global user
Browse files Browse the repository at this point in the history
upgrade dependencies
  • Loading branch information
DefectingCat committed Jan 15, 2025
1 parent 098d1b6 commit 822dad7
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 58 deletions.
72 changes: 35 additions & 37 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ rustflags = ["-Cdebuginfo=0", "-C", "target-cpu=native", "-Z", "threads=8"]
[profile.ui]
inherits = "release"
opt-level = "s"
rustflags = ["-Cdebuginfo=0", "-Z", "threads=8"]
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ run:

ui:
cd venus-ui \
&& trunk build
&& trunk build --cargo-profile ui

ui-dev:
cd venus-ui \
&& trunk serve

ui-release: ui-clean
cd venus-ui \
&& trunk build --release
&& trunk build --release --cargo-profile ui

ui-clean:
cd venus-ui \
Expand Down
16 changes: 8 additions & 8 deletions venus-ui/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@ authors = ["xfy <[email protected]>"]
leptos = { version = "0.7", features = ["csr", "nightly"] }
leptos_meta = { version = "0.7" }
leptos_router = { version = "0.7", features = ["nightly"] }
leptos-use = "0.14.0"
leptos-use = "0.15.3"
console_log = "1"
log = "0.4.22"
log = "0.4.25"
console_error_panic_hook = "0.1"
gloo = "0.11.0"
serde = { version = "1.0.215", features = ["derive", "serde_derive"] }
serde_json = "1.0.133"
serde = { version = "1.0.217", features = ["derive", "serde_derive"] }
serde_json = "1.0.135"
rand = "0.8.5"
send_wrapper = { version = "0.6.0", features = ["futures"] }
web-sys = { version = "0.3.76", features = ["Document", "Window"] }
anyhow = "1.0.94"
web-sys = { version = "0.3.77", features = ["Document", "Window"] }
anyhow = "1.0.95"

# utils
# strum = { version = "0.25", features = ["derive", "strum_macros"] }
# strum_macros = "0.25"

[dev-dependencies]
wasm-bindgen = "0.2.99"
wasm-bindgen-test = "0.3.49"
wasm-bindgen = "0.2.100"
wasm-bindgen-test = "0.3.50"
20 changes: 11 additions & 9 deletions venus-ui/src/api.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
use core::fmt;

use gloo::{
net::http::Request,
storage::{LocalStorage, Storage},
};
use leptos::prelude::on_cleanup;
use gloo::net::http::Request;
use leptos::{logging, prelude::on_cleanup};
use send_wrapper::SendWrapper;
use serde::{de::DeserializeOwned, Deserialize, Serialize};
use web_sys::wasm_bindgen::JsValue;

use crate::{consts::USER_KEY, utils::error_to_string, User};
use crate::{utils::error_to_string, USER};

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct BaseResponse<T> {
Expand Down Expand Up @@ -40,9 +37,14 @@ where
}
});

let user = LocalStorage::get::<User>(USER_KEY).unwrap_or_default();
let token = user.token;
let token_type = user.token_type;
let user = USER.read();
let (token_type, token) = match user {
Ok(user) => (user.token_type.clone(), user.token.clone()),
Err(err) => {
logging::error!("cannot get user {err}");
("".to_string(), "".to_string())
}
};

let request = Request::post(address)
.abort_signal(abort_signal.as_ref())
Expand Down
9 changes: 7 additions & 2 deletions venus-ui/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
#![feature(stmt_expr_attributes)]
use std::sync::{LazyLock, RwLock};

use components::notifications::Notifications;
use consts::{COLOR_MODE, SIDEBAR_OPEN_KEY, TABS_KEY, USER_KEY};
use gloo::storage::{LocalStorage, Storage};
use hooks::use_global_ui;
use layout::Layout;
use leptos::{logging, prelude::*};
use leptos::prelude::*;
use leptos_meta::*;
use leptos_router::{components::*, path};
use leptos_use::{use_color_mode_with_options, UseColorModeOptions, UseColorModeReturn};
Expand All @@ -23,6 +25,8 @@ mod layout;
mod pages;
mod utils;

pub static USER: LazyLock<RwLock<User>> = LazyLock::new(|| RwLock::new(User::new()));

/// 各个页面的保存的 Tab ID,用于持久化 Tab 状态
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Tabs {
Expand Down Expand Up @@ -132,7 +136,8 @@ pub fn App() -> impl IntoView {
Effect::new(|| {
let ui = use_global_ui();
let user = ui.user.get();
logging::log!("user {:?}", ui.user.get());
let mut global_user = USER.write().expect("write USER failed");
*global_user = user.clone();
LocalStorage::set(USER_KEY, user).ok();
});
Effect::new(|| {
Expand Down

0 comments on commit 822dad7

Please sign in to comment.