feat(frontend): improves current_status

This commit is contained in:
itsscb 2024-09-06 14:25:55 +02:00
parent e41eeaa890
commit 3c1d4f91b6

View File

@ -83,30 +83,28 @@ impl Game {
pub fn current_status(&self) -> Status { pub fn current_status(&self) -> Status {
self.word.as_ref().map_or(Status::New, |_| { self.word.as_ref().map_or(Status::New, |_| {
let word_count = self.submitted_words.len(); let word_count = self.submitted_words.len();
if self.tries == 0 { match self.tries {
Status::New 0 => Status::New,
} else if self.tries < MAX_TRIES { 1..MAX_TRIES => self
if self
.submitted_words .submitted_words
.last() .last()
.unwrap() .map_or(Status::InProgress, |words| {
.iter() if words.iter().all(|v| matches!(v, CharStatus::Match(_))) {
.all(|v| matches!(v, CharStatus::Match(_))) Status::Win(word_count)
{ } else {
Status::Win(word_count) Status::InProgress
} else { }
Status::InProgress }),
} _ => self
} else if self .submitted_words
.submitted_words .last()
.last() .map_or(Status::Lose(word_count), |words| {
.unwrap() if words.iter().all(|v| matches!(v, CharStatus::Match(_))) {
.iter() Status::Win(word_count)
.all(|v| matches!(v, CharStatus::Match(_))) } else {
{ Status::Lose(word_count)
Status::Win(word_count) }
} else { }),
Status::Lose(word_count)
} }
}) })
} }