Improve character limit bounds indicator

This commit is contained in:
Joseph T. Lyons 2023-12-06 21:23:51 -05:00
parent 668f5accab
commit d62b151bc0

View file

@ -244,9 +244,16 @@ impl Render for FeedbackModal {
None => true, None => true,
}; };
let allow_submission = FEEDBACK_CHAR_LIMIT.contains(&self.character_count) let valid_character_count = FEEDBACK_CHAR_LIMIT.contains(&self.character_count);
&& valid_email_address let characters_remaining =
&& !self.pending_submission; if valid_character_count || self.character_count > *FEEDBACK_CHAR_LIMIT.end() {
*FEEDBACK_CHAR_LIMIT.end() as i32 - self.character_count as i32
} else {
self.character_count as i32 - *FEEDBACK_CHAR_LIMIT.start() as i32
};
let allow_submission =
valid_character_count && valid_email_address && !self.pending_submission;
let dismiss = cx.listener(|_, _, cx| { let dismiss = cx.listener(|_, _, cx| {
// TODO // TODO
@ -294,11 +301,11 @@ impl Render for FeedbackModal {
.child( .child(
div().child( div().child(
Label::new(format!( Label::new(format!(
"{} / {} Characters", "Characters: {}",
self.character_count, characters_remaining
FEEDBACK_CHAR_LIMIT.end()
)) ))
.color(Color::Default), .when(valid_character_count, |this| this.color(Color::Success))
.when(!valid_character_count, |this| this.color(Color::Error))
), ),
) )
.child( div() .child( div()