forked from didirus/AstralRinth
* Add launcher_feature_version to Profile * Misc fixes - Add typing to theme and settings stuff - Push instance route on creation from installing a modpack - Fixed servers not reloading properly when first added * Make old instances scan the logs folder for joined servers on launcher startup * Create AttachedWorldData * Change AttachedWorldData interface * Rename WorldType::World to WorldType::Singleplayer * Implement world display status system * Fix Minecraft font * Fix set_world_display_status Tauri error * Add 'Play instance' option * Add option to disable worlds showing in Home * Fixes - Fix available server filter only showing if there are some available - Fixed server and singleplayer filters sometimes showing when there are only servers or singleplayer worlds - Fixed new worlds not being automatically added when detected - Rephrased Jump back into worlds option description * Fixed sometimes more than 6 items showing up in Jump back in * Fix servers.dat issue with instances you haven't played before * Fix too large of bulk requests being made, limit max to 800 #3430 * Add hiding from home page, add types to Mods.vue * Make recent worlds go into grid when display is huge * Fix lint * Remove redundant media query * Fix protocol version on home page, and home page being blocked by pinging servers * Clippy fix * More Clippy fixes * Fix Prettier lints * Undo `from_string` changes --------- Co-authored-by: Josiah Glosson <soujournme@gmail.com> Co-authored-by: Alejandro González <me@alegon.dev>
67 lines
1.6 KiB
Rust
67 lines
1.6 KiB
Rust
use crate::auth::AuthenticationError;
|
|
use actix_web::http::StatusCode;
|
|
use actix_web::{HttpResponse, ResponseError};
|
|
use std::fmt::{Debug, Display, Formatter};
|
|
|
|
pub struct Success<'a> {
|
|
pub icon: &'a str,
|
|
pub name: &'a str,
|
|
}
|
|
|
|
impl Success<'_> {
|
|
pub fn render(self) -> HttpResponse {
|
|
let html = include_str!("success.html");
|
|
|
|
HttpResponse::Ok()
|
|
.append_header(("Content-Type", "text/html; charset=utf-8"))
|
|
.body(
|
|
html.replace("{{ icon }}", self.icon)
|
|
.replace("{{ name }}", self.name),
|
|
)
|
|
}
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
pub struct ErrorPage {
|
|
pub code: StatusCode,
|
|
pub message: String,
|
|
}
|
|
|
|
impl Display for ErrorPage {
|
|
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
|
let html = include_str!("error.html")
|
|
.replace("{{ code }}", &self.code.to_string())
|
|
.replace("{{ message }}", &self.message);
|
|
write!(f, "{html}")?;
|
|
|
|
Ok(())
|
|
}
|
|
}
|
|
|
|
impl ErrorPage {
|
|
pub fn render(&self) -> HttpResponse {
|
|
HttpResponse::Ok()
|
|
.append_header(("Content-Type", "text/html; charset=utf-8"))
|
|
.body(self.to_string())
|
|
}
|
|
}
|
|
|
|
impl actix_web::ResponseError for ErrorPage {
|
|
fn status_code(&self) -> StatusCode {
|
|
self.code
|
|
}
|
|
|
|
fn error_response(&self) -> HttpResponse {
|
|
self.render()
|
|
}
|
|
}
|
|
|
|
impl From<AuthenticationError> for ErrorPage {
|
|
fn from(item: AuthenticationError) -> Self {
|
|
ErrorPage {
|
|
code: item.status_code(),
|
|
message: item.to_string(),
|
|
}
|
|
}
|
|
}
|