mirror of
https://github.com/nitnelave/lldap.git
synced 2023-04-12 14:25:13 +00:00
Cleanup
This commit is contained in:
parent
e2fd9686a8
commit
d868bbf651
@ -1,6 +1,4 @@
|
|||||||
use crate::{
|
use crate::components::avatar_cache::AvatarCacheContext;
|
||||||
components::avatar_cache::{AvatarCacheContext},
|
|
||||||
};
|
|
||||||
use yew::{function_component, prelude::*};
|
use yew::{function_component, prelude::*};
|
||||||
|
|
||||||
#[derive(Properties, PartialEq)]
|
#[derive(Properties, PartialEq)]
|
||||||
@ -13,7 +11,11 @@ pub struct Props {
|
|||||||
#[function_component(ShowAvatar)]
|
#[function_component(ShowAvatar)]
|
||||||
pub fn show_avatar(props: &Props) -> Html {
|
pub fn show_avatar(props: &Props) -> Html {
|
||||||
let cache = use_context::<AvatarCacheContext>().expect("no ctx found");
|
let cache = use_context::<AvatarCacheContext>().expect("no ctx found");
|
||||||
let avatar = cache.avatars.get(&props.username).map(|val| val.clone()).unwrap_or(None);
|
let avatar = cache
|
||||||
|
.avatars
|
||||||
|
.get(&props.username)
|
||||||
|
.map(|val| val.clone())
|
||||||
|
.unwrap_or(None);
|
||||||
match avatar {
|
match avatar {
|
||||||
Some(avatar) => html! {
|
Some(avatar) => html! {
|
||||||
<img
|
<img
|
||||||
|
@ -18,19 +18,19 @@ pub struct GetUserAvatar;
|
|||||||
#[graphql(
|
#[graphql(
|
||||||
schema_path = "../schema.graphql",
|
schema_path = "../schema.graphql",
|
||||||
query_path = "queries/list_users.graphql",
|
query_path = "queries/list_users.graphql",
|
||||||
response_derives = "Debug,Clone,PartialEq,Eq,Hash",
|
response_derives = "Debug",
|
||||||
variables_derives = "Clone",
|
variables_derives = "Clone",
|
||||||
custom_scalars_module = "crate::infra::graphql"
|
custom_scalars_module = "crate::infra::graphql"
|
||||||
)]
|
)]
|
||||||
pub struct ListUserNames;
|
pub struct ListUserNames;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
#[derive(PartialEq, Clone)]
|
||||||
pub enum CacheAction {
|
pub enum CacheAction {
|
||||||
Clear,
|
Clear,
|
||||||
AddAvatar((String, Option<String>)),
|
AddAvatar((String, Option<String>)),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, Clone)]
|
#[derive(PartialEq, Eq, Clone)]
|
||||||
pub struct AvatarCache {
|
pub struct AvatarCache {
|
||||||
pub avatars: HashMap<String, Option<String>>,
|
pub avatars: HashMap<String, Option<String>>,
|
||||||
}
|
}
|
||||||
@ -55,14 +55,14 @@ impl Reducible for AvatarCache {
|
|||||||
|
|
||||||
pub type AvatarCacheContext = UseReducerHandle<AvatarCache>;
|
pub type AvatarCacheContext = UseReducerHandle<AvatarCache>;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
#[derive(PartialEq, Clone)]
|
||||||
pub enum CacheMode {
|
pub enum CacheMode {
|
||||||
AllUsers,
|
AllUsers,
|
||||||
SingleUser(String),
|
SingleUser(String),
|
||||||
None,
|
None,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Properties, Debug, PartialEq)]
|
#[derive(Properties, PartialEq)]
|
||||||
pub struct AvatarCacheProviderProps {
|
pub struct AvatarCacheProviderProps {
|
||||||
#[prop_or_default]
|
#[prop_or_default]
|
||||||
pub children: Children,
|
pub children: Children,
|
||||||
@ -81,9 +81,7 @@ pub fn avatar_cache_provider(props: &AvatarCacheProviderProps) -> Html {
|
|||||||
use_effect_with_deps(
|
use_effect_with_deps(
|
||||||
move |mode| {
|
move |mode| {
|
||||||
match mode {
|
match mode {
|
||||||
CacheMode::None => {
|
CacheMode::None => cache.dispatch(CacheAction::Clear),
|
||||||
cache.dispatch(CacheAction::Clear)
|
|
||||||
}
|
|
||||||
CacheMode::AllUsers => {
|
CacheMode::AllUsers => {
|
||||||
let cache = cache.clone();
|
let cache = cache.clone();
|
||||||
wasm_bindgen_futures::spawn_local(async move {
|
wasm_bindgen_futures::spawn_local(async move {
|
||||||
|
@ -13,8 +13,8 @@ use gloo_file::{
|
|||||||
use graphql_client::GraphQLQuery;
|
use graphql_client::GraphQLQuery;
|
||||||
use validator_derive::Validate;
|
use validator_derive::Validate;
|
||||||
use web_sys::{FileList, HtmlInputElement, InputEvent};
|
use web_sys::{FileList, HtmlInputElement, InputEvent};
|
||||||
use yew::prelude::*;
|
|
||||||
use yew::context::ContextHandle;
|
use yew::context::ContextHandle;
|
||||||
|
use yew::prelude::*;
|
||||||
use yew_form_derive::Model;
|
use yew_form_derive::Model;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
@ -412,7 +412,10 @@ impl UserDetailsForm {
|
|||||||
self.user.avatar = Some(avatar);
|
self.user.avatar = Some(avatar);
|
||||||
}
|
}
|
||||||
self.just_updated = true;
|
self.just_updated = true;
|
||||||
self.avatar_cache.dispatch(CacheAction::AddAvatar((self.user.id.clone(), self.user.avatar.clone())));
|
self.avatar_cache.dispatch(CacheAction::AddAvatar((
|
||||||
|
self.user.id.clone(),
|
||||||
|
self.user.avatar.clone(),
|
||||||
|
)));
|
||||||
Ok(true)
|
Ok(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user