mirror of
https://github.com/yewprint/yewprint
synced 2024-11-21 19:13:05 +00:00
Use Cell instead of RefCell (#166)
This commit is contained in:
parent
5d0bddca6b
commit
b71f69ade9
5 changed files with 11 additions and 9 deletions
|
@ -3,7 +3,8 @@
|
|||
clippy::needless_update,
|
||||
clippy::inconsistent_struct_constructor,
|
||||
clippy::type_complexity,
|
||||
clippy::derive_partial_eq_without_eq
|
||||
clippy::derive_partial_eq_without_eq,
|
||||
clippy::uninlined_format_args
|
||||
)]
|
||||
|
||||
mod button_group;
|
||||
|
|
|
@ -31,7 +31,7 @@ pub fn download_from_npm_package(
|
|||
|
||||
let version = if version.is_empty() || version == "latest" {
|
||||
let info: PackageInfo =
|
||||
ureq::get(format!("https://registry.npmjs.org/{}", package_name).as_str())
|
||||
ureq::get(format!("https://registry.npmjs.org/{package_name}").as_str())
|
||||
.call()?
|
||||
.into_json()?;
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ impl Component for App {
|
|||
fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool {
|
||||
match msg {
|
||||
Msg::ToggleLight => {
|
||||
DARK.with(|x| x.replace_with(|&mut x| !x));
|
||||
DARK.with(|x| x.replace(!x.get()));
|
||||
}
|
||||
Msg::GoToMenu(event, doc_menu) => {
|
||||
event.prevent_default();
|
||||
|
@ -70,7 +70,7 @@ impl Component for App {
|
|||
}
|
||||
|
||||
fn view(&self, ctx: &Context<Self>) -> Html {
|
||||
let dark = DARK.with(|x| *x.borrow());
|
||||
let dark = DARK.with(|x| x.get());
|
||||
|
||||
let netlify_badge = if dark {
|
||||
"https://www.netlify.com/img/global/badges/netlify-color-accent.svg"
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
dead_code,
|
||||
clippy::derive_partial_eq_without_eq,
|
||||
// Shadows lints linked to this issue: https://github.com/yewstack/yew/issues/2931
|
||||
clippy::let_unit_value
|
||||
clippy::let_unit_value,
|
||||
clippy::uninlined_format_args
|
||||
)]
|
||||
|
||||
mod app;
|
||||
|
@ -39,11 +40,11 @@ mod tree;
|
|||
pub use app::*;
|
||||
pub use example::*;
|
||||
pub use logo::*;
|
||||
use std::cell::RefCell;
|
||||
use std::cell::Cell;
|
||||
|
||||
thread_local! {
|
||||
pub static DARK: RefCell<bool> = {
|
||||
RefCell::new(web_sys::window()
|
||||
pub static DARK: Cell<bool> = {
|
||||
Cell::new(web_sys::window()
|
||||
.and_then(|x| x.match_media("(prefers-color-scheme: dark)").ok().flatten())
|
||||
.map(|x| x.matches())
|
||||
.unwrap_or(true))
|
||||
|
|
|
@ -63,7 +63,7 @@ impl Component for Example {
|
|||
onclose={ctx.link().callback(|_| Msg::Close)}
|
||||
{backdrop}
|
||||
class={classes!(
|
||||
DARK.with(|x| x.borrow().then_some("bp3-dark")),
|
||||
DARK.with(|x| x.get().then_some("bp3-dark")),
|
||||
self.tall.then_some("docs-overlay-example-tall"),
|
||||
)}
|
||||
style="left: calc(50vw - 200px); margin: 10vh 0; top: 0; width: 400px;"
|
||||
|
|
Loading…
Reference in a new issue