use crate::{lock_r, models::dolls::DollDto, state::FDOLL}; const APPLY_TEXTURE: bool = true; pub fn get_active_doll() -> Option { let guard = lock_r!(FDOLL); let active_doll_id = guard .user_data .user .as_ref() .and_then(|user| user.active_doll_id.as_deref())?; guard .user_data .dolls .as_ref() .and_then(|dolls| dolls.iter().find(|doll| doll.id == active_doll_id)) .cloned() } pub fn get_active_doll_sprite_base64() -> Result, String> { get_active_doll() .map(|doll| { let color_scheme = doll.configuration.color_scheme; super::sprite_recolor::recolor_gif_base64( &color_scheme.body, &color_scheme.outline, APPLY_TEXTURE, ) .map_err(|err| err.to_string()) }) .transpose() }