Skip to content

Commit 521996f

Browse files
committed
better error handling and scrolling
1 parent 9dfd15d commit 521996f

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

src/app/jwt_decoder.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,14 @@ impl Decoder {
7171
pub fn set_decoded(&mut self, decoded: Option<TokenData<Payload>>) {
7272
match decoded.as_ref() {
7373
Some(payload) => {
74-
self.header = ScrollableTxt::new(to_string_pretty(&payload.header).unwrap());
75-
self.payload = ScrollableTxt::new(to_string_pretty(&payload.claims).unwrap())
74+
let header = to_string_pretty(&payload.header).unwrap();
75+
if header != self.header.get_txt() {
76+
self.header = ScrollableTxt::new(header);
77+
}
78+
let payload = to_string_pretty(&payload.claims).unwrap();
79+
if payload != self.payload.get_txt() {
80+
self.payload = ScrollableTxt::new(payload);
81+
}
7682
}
7783
None => {
7884
self.header = ScrollableTxt::default();

src/app/jwt_encoder.rs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ impl Encoder<'_> {
5353
}
5454

5555
pub fn encode_jwt_token(app: &mut App) {
56-
app.data.error = String::new();
5756
let header = app.data.encoder.header.input.lines().join("\n");
5857
if header.is_empty() {
5958
app.handle_error(String::from("Header should not be empty").into());
@@ -79,20 +78,35 @@ pub fn encode_jwt_token(app: &mut App) {
7978
let token = jsonwebtoken::encode(&header, &payload, &encoding_key);
8079
match token {
8180
Ok(token) => {
82-
app.data.encoder.encoded = ScrollableTxt::new(token);
83-
app.data.encoder.signature_verified = true;
81+
if token != app.data.encoder.encoded.get_txt() {
82+
app.data.encoder.encoded = ScrollableTxt::new(token);
83+
app.data.encoder.signature_verified = true;
84+
}
85+
}
86+
Err(e) => {
87+
app.handle_error(e.into());
88+
return;
8489
}
85-
Err(e) => app.handle_error(e.into()),
8690
}
8791
}
88-
Err(e) => app.handle_error(e),
92+
Err(e) => {
93+
app.handle_error(e);
94+
return;
95+
}
8996
}
9097
}
91-
Err(e) => app.handle_error(format!("Error parsing payload: {:}", e).into()),
98+
Err(e) => {
99+
app.handle_error(format!("Error parsing payload: {:}", e).into());
100+
return;
101+
}
92102
}
93103
}
94-
Err(e) => app.handle_error(format!("Error parsing header: {:}", e).into()),
104+
Err(e) => {
105+
app.handle_error(format!("Error parsing header: {:}", e).into());
106+
return;
107+
}
95108
}
109+
app.data.error = String::new();
96110
}
97111

98112
pub fn encoding_key_from_secret(alg: &Algorithm, secret_string: &str) -> JWTResult<EncodingKey> {

src/app/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,6 @@ impl App {
190190
pub fn push_navigation_route(&mut self, route: Route) {
191191
self.navigation_stack.push(route);
192192
self.is_routing = true;
193-
self.data.error = String::default();
194193
}
195194

196195
pub fn pop_navigation_stack(&mut self) -> Option<Route> {
@@ -211,16 +210,19 @@ impl App {
211210
self.main_tabs.next();
212211
let route = self.main_tabs.get_active_route();
213212
self.push_navigation_route(*route);
213+
self.data.error = String::default();
214214
}
215215

216216
pub fn route_decoder(&mut self) {
217217
let route = self.main_tabs.set_index(0).route;
218218
self.push_navigation_route(route);
219+
self.data.error = String::default();
219220
}
220221

221222
pub fn route_encoder(&mut self) {
222223
let route = self.main_tabs.set_index(1).route;
223224
self.push_navigation_route(route);
225+
self.data.error = String::default();
224226
}
225227

226228
pub fn on_tick(&mut self) {

0 commit comments

Comments
 (0)