mirror of https://github.com/wayvr-org/wayvr.git
refactor SupporterTier
This commit is contained in:
parent
77b5004541
commit
345fe7b3ac
|
|
@ -64,35 +64,22 @@ async fn request_supporters(tasks: Tasks<Task>) {
|
|||
}
|
||||
}
|
||||
|
||||
fn tier_pretty_print(tier: &str) -> String {
|
||||
format!("{} Tier", wlx_common::locale::capitalize_string(tier))
|
||||
}
|
||||
|
||||
fn tier_color(tier: &str) -> &'static str {
|
||||
match tier {
|
||||
"platinum" => "#aaffff",
|
||||
"gold" => "#ffffaa",
|
||||
"silver" => "#cccccc",
|
||||
"bronze" => "#ffaa66",
|
||||
_ => "on_background",
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> TabDonate<T> {
|
||||
fn set_supporters(&mut self, layout: &mut Layout, supporters: cached_fetcher::Supporters) -> anyhow::Result<()> {
|
||||
let globals = layout.state.globals.clone();
|
||||
layout.remove_children(self.id_current_supporters);
|
||||
|
||||
let mut current_tier = "";
|
||||
let mut current_tier = None;
|
||||
let mut tier_parent = WidgetID::default();
|
||||
|
||||
for supporter in &supporters.supporters {
|
||||
if supporter.tier != current_tier {
|
||||
current_tier = &supporter.tier;
|
||||
if Some(supporter.tier) != current_tier {
|
||||
current_tier = Some(supporter.tier);
|
||||
|
||||
let mut params = TemplateParams::new();
|
||||
params.insert_str("text", tier_pretty_print(&supporter.tier));
|
||||
params.insert("color", tier_color(&supporter.tier));
|
||||
params.insert_str("text", supporter.tier.pretty_str());
|
||||
params.insert("color", supporter.tier.color_str());
|
||||
self.state.realize_template(
|
||||
&doc_params(&globals),
|
||||
"TierCell",
|
||||
|
|
|
|||
|
|
@ -3,17 +3,42 @@ use std::time::{SystemTime, UNIX_EPOCH};
|
|||
use crate::util::{networking::http_client, steam_utils::AppID};
|
||||
use anyhow::Context;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use strum::{AsRefStr};
|
||||
use wlx_common::cache_dir;
|
||||
|
||||
fn get_unix_timestamp() -> u64 {
|
||||
SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, AsRefStr)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum SupporterTier {
|
||||
Platinum,
|
||||
Gold,
|
||||
Silver,
|
||||
Bronze,
|
||||
}
|
||||
|
||||
impl SupporterTier {
|
||||
pub fn pretty_str(self) -> String {
|
||||
format!("{self:?} Tier")
|
||||
}
|
||||
|
||||
pub fn color_str(self) -> &'static str {
|
||||
match self {
|
||||
Self::Platinum => "#aaffff",
|
||||
Self::Gold => "#ffffaa",
|
||||
Self::Silver => "#cccccc",
|
||||
Self::Bronze => "#ffaa66",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Supporter {
|
||||
pub username: String,
|
||||
pub date: String,
|
||||
pub tier: String,
|
||||
pub tier: SupporterTier,
|
||||
pub contribution_count: u32,
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue