Server: Add Submission/User tabs to browse page

- Remove account dark state
This commit is contained in:
asonix 2021-01-30 14:33:07 -06:00
parent 0bacafd8a8
commit ddac4d3b9c
17 changed files with 122 additions and 116 deletions

View file

@ -85,11 +85,16 @@ picture {
} }
.home-content { .home-content {
padding: 96px 0 32px; padding: 80px 0 32px;
}
.tabs {
padding: 0 12px;
overflow-x: auto;
} }
.profile-search { .profile-search {
margin-bottom: 32px; margin: 32px 0;
} }
.profile-result { .profile-result {
@ -307,6 +312,10 @@ picture {
right: 0; right: 0;
} }
.tabs {
padding: 0;
}
.profile-search { .profile-search {
padding: 0 8px; padding: 0 8px;
} }

View file

@ -101,13 +101,11 @@ async fn cookies_page(
args: CookiesPageArgs, args: CookiesPageArgs,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut cookie_state = match hyaenidae_accounts::cookies_page(args) { let cookie_state = match hyaenidae_accounts::cookies_page(args) {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
cookie_state.dark(nav_state.dark());
rendered(HttpResponse::Ok(), |cursor| { rendered(HttpResponse::Ok(), |cursor| {
crate::templates::session::cookies(cursor, &loader, &cookie_state, &nav_state) crate::templates::session::cookies(cursor, &loader, &cookie_state, &nav_state)
}) })
@ -122,13 +120,11 @@ async fn login_page(
args: LoginPageArgs, args: LoginPageArgs,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut login_state = match hyaenidae_accounts::login_page(args) { let login_state = match hyaenidae_accounts::login_page(args) {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
login_state.dark(nav_state.dark());
rendered(HttpResponse::Ok(), |cursor| { rendered(HttpResponse::Ok(), |cursor| {
crate::templates::session::login(cursor, &loader, &login_state, &nav_state) crate::templates::session::login(cursor, &loader, &login_state, &nav_state)
}) })
@ -139,13 +135,11 @@ async fn login(
args: LoginArgs, args: LoginArgs,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut login_state = match hyaenidae_accounts::login(args).await? { let login_state = match hyaenidae_accounts::login(args).await? {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
login_state.dark(nav_state.dark());
rendered(HttpResponse::BadRequest(), |cursor| { rendered(HttpResponse::BadRequest(), |cursor| {
crate::templates::session::login(cursor, &loader, &login_state, &nav_state) crate::templates::session::login(cursor, &loader, &login_state, &nav_state)
}) })
@ -156,13 +150,11 @@ async fn register_page(
args: RegisterPageArgs, args: RegisterPageArgs,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut register_state = match hyaenidae_accounts::register_page(args) { let register_state = match hyaenidae_accounts::register_page(args) {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
register_state.dark(nav_state.dark());
rendered(HttpResponse::Ok(), |cursor| { rendered(HttpResponse::Ok(), |cursor| {
crate::templates::session::register(cursor, &loader, &register_state, &nav_state) crate::templates::session::register(cursor, &loader, &register_state, &nav_state)
}) })
@ -173,13 +165,11 @@ async fn register(
args: RegisterArgs, args: RegisterArgs,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut register_state = match hyaenidae_accounts::register(args).await? { let register_state = match hyaenidae_accounts::register(args).await? {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
register_state.dark(nav_state.dark());
rendered(HttpResponse::BadRequest(), |cursor| { rendered(HttpResponse::BadRequest(), |cursor| {
crate::templates::session::register(cursor, &loader, &register_state, &nav_state) crate::templates::session::register(cursor, &loader, &register_state, &nav_state)
}) })
@ -196,11 +186,8 @@ async fn account_page(
user: User, user: User,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut uname_state = hyaenidae_accounts::update_username_page(uname_args); let uname_state = hyaenidae_accounts::update_username_page(uname_args);
let mut pass_state = hyaenidae_accounts::update_password_page(pass_args); let pass_state = hyaenidae_accounts::update_password_page(pass_args);
uname_state.dark(nav_state.dark());
pass_state.dark(nav_state.dark());
rendered(HttpResponse::Ok(), |cursor| { rendered(HttpResponse::Ok(), |cursor| {
crate::templates::session::account( crate::templates::session::account(
@ -227,14 +214,11 @@ async fn update_username(
user: User, user: User,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut uname_state = match hyaenidae_accounts::update_username(uname_args).await? { let uname_state = match hyaenidae_accounts::update_username(uname_args).await? {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
let mut pass_state = hyaenidae_accounts::update_password_page(pass_args); let pass_state = hyaenidae_accounts::update_password_page(pass_args);
uname_state.dark(nav_state.dark());
pass_state.dark(nav_state.dark());
rendered(HttpResponse::BadRequest(), |cursor| { rendered(HttpResponse::BadRequest(), |cursor| {
crate::templates::session::account( crate::templates::session::account(
@ -255,15 +239,12 @@ async fn update_password(
user: User, user: User,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut uname_state = hyaenidae_accounts::update_username_page(uname_args); let uname_state = hyaenidae_accounts::update_username_page(uname_args);
let mut pass_state = match hyaenidae_accounts::update_password(pass_args).await? { let pass_state = match hyaenidae_accounts::update_password(pass_args).await? {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
uname_state.dark(nav_state.dark());
pass_state.dark(nav_state.dark());
rendered(HttpResponse::BadRequest(), |cursor| { rendered(HttpResponse::BadRequest(), |cursor| {
crate::templates::session::account( crate::templates::session::account(
cursor, cursor,
@ -281,13 +262,11 @@ async fn delete_account_page(
args: DeleteUserPageArgs, args: DeleteUserPageArgs,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut delete_state = match hyaenidae_accounts::delete_user_page(args) { let delete_state = match hyaenidae_accounts::delete_user_page(args) {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
delete_state.dark(nav_state.dark());
rendered(HttpResponse::Ok(), |cursor| { rendered(HttpResponse::Ok(), |cursor| {
crate::templates::session::delete_account(cursor, &loader, &delete_state, &nav_state) crate::templates::session::delete_account(cursor, &loader, &delete_state, &nav_state)
}) })
@ -298,13 +277,11 @@ async fn delete_account(
args: DeleteUserArgs, args: DeleteUserArgs,
nav_state: NavState, nav_state: NavState,
) -> Result<HttpResponse, Error> { ) -> Result<HttpResponse, Error> {
let mut delete_state = match hyaenidae_accounts::delete_user(args).await? { let delete_state = match hyaenidae_accounts::delete_user(args).await? {
Ok(state) => state, Ok(state) => state,
Err(res) => return Ok(res), Err(res) => return Ok(res),
}; };
delete_state.dark(nav_state.dark());
rendered(HttpResponse::BadRequest(), |cursor| { rendered(HttpResponse::BadRequest(), |cursor| {
crate::templates::session::delete_account(cursor, &loader, &delete_state, &nav_state) crate::templates::session::delete_account(cursor, &loader, &delete_state, &nav_state)
}) })

View file

@ -73,10 +73,6 @@ async fn main() -> anyhow::Result<()> {
}; };
let accounts_config = hyaenidae_accounts::Config { let accounts_config = hyaenidae_accounts::Config {
toolkit_path: format!(
"/toolkit/{}",
hyaenidae_toolkit::templates::statics::toolkit_css.name
),
key: secret_key, key: secret_key,
https: false, https: false,
pages: std::sync::Arc::new(accounts::Pages), pages: std::sync::Arc::new(accounts::Pages),

View file

@ -73,7 +73,7 @@ impl FromRequest for NavState {
admin, admin,
href, href,
is_open, is_open,
dark: true, dark: false,
}) })
}) })
} }
@ -137,7 +137,7 @@ impl NavState {
} }
fn logout_button(&self, logout_state: &LogoutState, loader: &ActixLoader) -> Button { fn logout_button(&self, logout_state: &LogoutState, loader: &ActixLoader) -> Button {
logout_state.button(Button::primary_outline(&fl!(loader, "nav-logout-button"))) Button::primary_outline(&fl!(loader, "nav-logout-button")).form(&logout_state.logout_path())
} }
pub(crate) fn buttons(&self, loader: &ActixLoader) -> Vec<Button> { pub(crate) fn buttons(&self, loader: &ActixLoader) -> Vec<Button> {

View file

@ -4,13 +4,13 @@
@use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title}, Button, Card}; @use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title}, Button, Card};
@use i18n_embed_fl::fl; @use i18n_embed_fl::fl;
@(card_config: &Card, loader: &ActixLoader, state: &DeleteUserState) @(card_config: &Card, loader: &ActixLoader, state: &DeleteUserState, dark: bool)
@:card(card_config, { @:card(card_config, {
<form method="POST" action="@state.delete_user_path()"> <form method="POST" action="@state.delete_user_path()">
@:card_title({ @fl!(loader, "delete-account-heading") }) @:card_title({ @fl!(loader, "delete-account-heading") })
@:card_body({ @:card_body({
@:password_input("password", &fl!(loader, "password-input"), state.password(), state.password_error(), state.dark) @:password_input("password", &fl!(loader, "password-input"), state.password(), state.password_error(), dark)
}) })
@:card_body({ @:card_body({
@:button_group(&[ @:button_group(&[

View file

@ -4,14 +4,14 @@
@use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title, link}, Button, Card, Link}; @use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title, link}, Button, Card, Link};
@use i18n_embed_fl::fl; @use i18n_embed_fl::fl;
@(card_config: &Card, loader: &ActixLoader, state: &LoginState) @(card_config: &Card, loader: &ActixLoader, state: &LoginState, dark: bool)
@:card(card_config, { @:card(card_config, {
<form method="POST" action="@state.login_path()"> <form method="POST" action="@state.login_path()">
@:card_title({ @fl!(loader, "login-heading") }) @:card_title({ @fl!(loader, "login-heading") })
@:card_body({ @:card_body({
@:text_input("username", &fl!(loader, "login-username"), state.username(), state.username_error(), state.dark) @:text_input("username", &fl!(loader, "login-username"), state.username(), state.username_error(), dark)
@:password_input("password", &fl!(loader, "login-password"), state.password(), None, state.dark) @:password_input("password", &fl!(loader, "login-password"), state.password(), None, dark)
@:link(&Link::current_tab(&state.register_path()), { I do not have an account }) @:link(&Link::current_tab(&state.register_path()), { I do not have an account })
}) })
@:card_body({ @:card_body({

View file

@ -1,6 +0,0 @@
@use hyaenidae_accounts::LogoutState;
@use hyaenidae_toolkit::{templates::button_group, Button};
@(btn: Button, state: &LogoutState)
@:button_group(&[state.button(btn)])

View file

@ -4,15 +4,15 @@
@use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title, link}, Button, Card, Link}; @use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title, link}, Button, Card, Link};
@use i18n_embed_fl::fl; @use i18n_embed_fl::fl;
@(card_config: &Card, loader: &ActixLoader, state: &RegisterState) @(card_config: &Card, loader: &ActixLoader, state: &RegisterState, dark: bool)
@:card(card_config, { @:card(card_config, {
<form method="POST" action="@state.register_path()"> <form method="POST" action="@state.register_path()">
@:card_title({ @fl!(loader, "register-heading") }) @:card_title({ @fl!(loader, "register-heading") })
@:card_body({ @:card_body({
@:text_input("username", &fl!(loader, "register-username"), state.username(), state.username_error(), state.dark) @:text_input("username", &fl!(loader, "register-username"), state.username(), state.username_error(), dark)
@:password_input("password", &fl!(loader, "register-password"), state.password(), None, state.dark) @:password_input("password", &fl!(loader, "register-password"), state.password(), None, dark)
@:password_input("password_confirmation", &fl!(loader, "register-confirmation"), state.confirmation(), state.confirmation_error(), state.dark) @:password_input("password_confirmation", &fl!(loader, "register-confirmation"), state.confirmation(), state.confirmation_error(), dark)
@:link(&Link::current_tab(&state.login_path()), { I already have an account }) @:link(&Link::current_tab(&state.login_path()), { I already have an account })
}) })
@:card_body({ @:card_body({

View file

@ -4,15 +4,15 @@
@use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title}, Button, Card}; @use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title}, Button, Card};
@use i18n_embed_fl::fl; @use i18n_embed_fl::fl;
@(card_config: &Card, loader: &ActixLoader, state: &UpdatePasswordState) @(card_config: &Card, loader: &ActixLoader, state: &UpdatePasswordState, dark: bool)
@:card(card_config, { @:card(card_config, {
<form method="POST" action="@state.update_password_path()"> <form method="POST" action="@state.update_password_path()">
@:card_title({ @fl!(loader, "update-password-heading") }) @:card_title({ @fl!(loader, "update-password-heading") })
@:card_body({ @:card_body({
@:password_input("new_password", &fl!(loader, "update-password-input"), state.new_password(), None, state.dark) @:password_input("new_password", &fl!(loader, "update-password-input"), state.new_password(), None, dark)
@:password_input("new_password_confirmation", &fl!(loader, "confirm-password-input"), state.new_password_confirmation(), state.new_password_confirmation_error(), state.dark) @:password_input("new_password_confirmation", &fl!(loader, "confirm-password-input"), state.new_password_confirmation(), state.new_password_confirmation_error(), dark)
@:password_input("password", &fl!(loader, "password-input"), state.password(), state.password_error(), state.dark) @:password_input("password", &fl!(loader, "password-input"), state.password(), state.password_error(), dark)
}) })
@:card_body({ @:card_body({
@:button_group(&[ @:button_group(&[

View file

@ -4,14 +4,14 @@
@use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title}, Button, Card}; @use hyaenidae_toolkit::{templates::{button_group, card, card_body, card_title}, Button, Card};
@use i18n_embed_fl::fl; @use i18n_embed_fl::fl;
@(card_config: &Card, loader: &ActixLoader, state: &UpdateUsernameState) @(card_config: &Card, loader: &ActixLoader, state: &UpdateUsernameState, dark: bool)
@:card(card_config, { @:card(card_config, {
<form method="POST" action="@state.update_username_path()"> <form method="POST" action="@state.update_username_path()">
@:card_title({ @fl!(loader, "update-username-heading") }) @:card_title({ @fl!(loader, "update-username-heading") })
@:card_body({ @:card_body({
@:text_input("new_username", &fl!(loader, "update-username-input"), state.username(), state.username_error(), state.dark) @:text_input("new_username", &fl!(loader, "update-username-input"), state.username(), state.username_error(), dark)
@:password_input("password", &fl!(loader, "password-input"), state.password(), state.password_error(), state.dark) @:password_input("password", &fl!(loader, "password-input"), state.password(), state.password_error(), dark)
}) })
@:card_body({ @:card_body({
@:button_group(&[ @:button_group(&[

View file

@ -5,12 +5,23 @@
@use hyaenidae_toolkit::templates::button_group; @use hyaenidae_toolkit::templates::button_group;
@use hyaenidae_toolkit::templates::centered; @use hyaenidae_toolkit::templates::centered;
@use hyaenidae_toolkit::{templates::{card, card_body, card_title}, Card}; @use hyaenidae_toolkit::{templates::{card, card_body, card_title}, Card};
@use hyaenidae_toolkit::{templates::{tab, tab_group}, Tab};
@use hyaenidae_toolkit::templates::{thumbnail, thumbnail_border, thumbnails}; @use hyaenidae_toolkit::templates::{thumbnail, thumbnail_border, thumbnails};
@use i18n_embed_fl::fl; @use i18n_embed_fl::fl;
@(loader: &ActixLoader, browse_view: &ViewBrowseState, nav_state: &NavState) @(loader: &ActixLoader, browse_view: &ViewBrowseState, nav_state: &NavState)
@:wide(loader, &fl!(loader, "site-name"), &fl!(loader, "site-description"), nav_state, {}, { @:wide(loader, &fl!(loader, "site-name"), &fl!(loader, "site-description"), nav_state, {}, {
<div class="tabs">
@:tab_group({
@:tab(Tab::new("/browse").selected(true), {
@fl!(loader, "submissions-tab")
})
@:tab(Tab::new("/discover"), {
@fl!(loader, "profiles-tab")
})
})
</div>
@if browse_view.has_submissions() { @if browse_view.has_submissions() {
@if browse_view.has_nav() { @if browse_view.has_nav() {
@:thumbnail_border({ @:thumbnail_border({

View file

@ -2,63 +2,77 @@
@use crate::extensions::ProfileExt; @use crate::extensions::ProfileExt;
@use crate::nav::NavState; @use crate::nav::NavState;
@use crate::profile_list::ProfileListState; @use crate::profile_list::ProfileListState;
@use crate::templates::layouts::home; @use crate::templates::layouts::wide;
@use hyaenidae_toolkit::{templates::button_group, Button}; @use hyaenidae_toolkit::{templates::button_group, Button};
@use hyaenidae_toolkit::{templates::{card, card_body, card_section}, Card}; @use hyaenidae_toolkit::{templates::{card, card_body, card_section}, Card};
@use hyaenidae_toolkit::templates::centered;
@use hyaenidae_toolkit::templates::{icon, image}; @use hyaenidae_toolkit::templates::{icon, image};
@use hyaenidae_toolkit::{templates::link, Link}; @use hyaenidae_toolkit::{templates::link, Link};
@use hyaenidae_toolkit::templates::search; @use hyaenidae_toolkit::templates::search;
@use hyaenidae_toolkit::{templates::{tab, tab_group}, Tab};
@use i18n_embed_fl::fl; @use i18n_embed_fl::fl;
@(loader: &ActixLoader, state: &ProfileListState, nav_state: &NavState) @(loader: &ActixLoader, state: &ProfileListState, nav_state: &NavState)
@:home(loader, &fl!(loader, "discover-users-title"), &fl!(loader, "discover-users-subtitle"), nav_state, {}, { @:wide(loader, &fl!(loader, "discover-users-title"), &fl!(loader, "discover-users-subtitle"), nav_state, {}, {
<div class="profile-search"> <div class="tabs">
<form method="GET" action="@state.search_path()"> @:tab_group({
@:search(state.search_input(loader).dark(nav_state.dark()), Button::primary(&fl!(loader, "discover-users-search-button"))) @:tab(Tab::new("/browse"), {
</form> @fl!(loader, "submissions-tab")
})
@:tab(Tab::new("/discover").selected(true), {
@fl!(loader, "profiles-tab")
})
})
</div> </div>
@:card(&Card::full_width().dark(nav_state.dark()), { @:centered(false, {
@for pview in state.profiles() { <div class="profile-search">
@:card_section({ <form method="GET" action="@state.search_path()">
<div class="profile-result"> @:search(state.search_input(loader).dark(nav_state.dark()), Button::primary(&fl!(loader, "discover-users-search-button")))
@if let Some(img) = pview.banner_image(loader) { </form>
<div class="profile-result--background"> </div>
@:image(&img) @:card(&Card::full_width().dark(nav_state.dark()), {
</div> @for pview in state.profiles() {
} @:card_section({
<div class="profile-result--left"> <div class="profile-result">
<div class="profile-result--icon"> @if let Some(img) = pview.banner_image(loader) {
@:icon(&pview.icon(loader).small(true).dark(nav_state.dark())) <div class="profile-result--background">
</div> @:image(&img)
<div class="profile-result--meta">
<div class="profile-result--display-name">
@if let Some(display_name) = pview.profile.display_name() {
@:link(&Link::current_tab(&pview.profile.view_path()).plain(true), {
@Html(display_name)
})
}
</div> </div>
<div class="profile-result--handle">
@:link(&Link::current_tab(&pview.profile.view_path()).plain(true), {
@pview.profile.full_handle()
})
</div>
</div>
</div>
<div class="profile-result--buttons">
@if !pview.profile.is_suspended() {
@:button_group(&state.profile_buttons(loader, pview))
} }
<div class="profile-result--left">
<div class="profile-result--icon">
@:icon(&pview.icon(loader).small(true).dark(nav_state.dark()))
</div>
<div class="profile-result--meta">
<div class="profile-result--display-name">
@if let Some(display_name) = pview.profile.display_name() {
@:link(&Link::current_tab(&pview.profile.view_path()).plain(true), {
@Html(display_name)
})
}
</div>
<div class="profile-result--handle">
@:link(&Link::current_tab(&pview.profile.view_path()).plain(true), {
@pview.profile.full_handle()
})
</div>
</div>
</div>
<div class="profile-result--buttons">
@if !pview.profile.is_suspended() {
@:button_group(&state.profile_buttons(loader, pview))
}
</div>
</div> </div>
</div> })
}) }
}
@if state.has_nav() { @if state.has_nav() {
@:card_body({ @:card_body({
@:button_group(&state.nav(loader)) @:button_group(&state.nav(loader))
}) })
} }
})
}) })
}) })

View file

@ -12,10 +12,12 @@
@:button_js() @:button_js()
}, { }, {
@:card(&Card::full_width().dark(nav_state.dark()), { @:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ @fl!(loader, "username-heading", currentUsername = user.username()) }) @:card_title({
@fl!(loader, "username-heading", currentUsername = user.username())
})
}) })
@:update_username(&Card::full_width().dark(nav_state.dark()), loader, uname_state) @:update_username(&Card::full_width().dark(nav_state.dark()), loader, uname_state, nav_state.dark())
@:update_password(&Card::full_width().dark(nav_state.dark()), loader, pass_state) @:update_password(&Card::full_width().dark(nav_state.dark()), loader, pass_state, nav_state.dark())
@:card(&Card::full_width().dark(nav_state.dark()), { @:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ @fl!(loader, "danger-heading") }) @:card_title({ @fl!(loader, "danger-heading") })
@:card_body({ @:card_body({

View file

@ -11,5 +11,5 @@
@:home(loader, &fl!(loader, "delete-account-heading"), &fl!(loader, "delete-account-confirmation"), nav_state, { @:home(loader, &fl!(loader, "delete-account-heading"), &fl!(loader, "delete-account-confirmation"), nav_state, {
@:button_js() @:button_js()
}, { }, {
@:delete_user(&Card::full_width().dark(nav_state.dark()), loader, state) @:delete_user(&Card::full_width().dark(nav_state.dark()), loader, state, nav_state.dark())
}) })

View file

@ -11,5 +11,5 @@
@:home(loader, &fl!(loader, "login-heading"), &fl!(loader, "login-subheading"), nav_state, { @:home(loader, &fl!(loader, "login-heading"), &fl!(loader, "login-subheading"), nav_state, {
@:button_js() @:button_js()
}, { }, {
@:login(&Card::full_width().dark(nav_state.dark()), loader, login_state) @:login(&Card::full_width().dark(nav_state.dark()), loader, login_state, nav_state.dark())
}) })

View file

@ -9,5 +9,5 @@
@(loader: &ActixLoader, register_state: &RegisterState, nav_state: &NavState) @(loader: &ActixLoader, register_state: &RegisterState, nav_state: &NavState)
@:home(loader, &fl!(loader, "register-heading"), &fl!(loader, "register-subheading"), nav_state, { @:button_js() }, { @:home(loader, &fl!(loader, "register-heading"), &fl!(loader, "register-subheading"), nav_state, { @:button_js() }, {
@:register(&Card::full_width().dark(nav_state.dark()), loader, register_state) @:register(&Card::full_width().dark(nav_state.dark()), loader, register_state, nav_state.dark())
}) })

View file

@ -361,6 +361,9 @@ feed-empty-subtitle = Follow users on Hyaenidae to start seeing submissions in y
feed-empty-browse-users = Browse Users feed-empty-browse-users = Browse Users
feed-empty-browse-submissions = Browse Submissions feed-empty-browse-submissions = Browse Submissions
submissions-tab = Submissions
profiles-tab = Users
notification-count = Notifications: {$count} notification-count = Notifications: {$count}
notification-subtitle = Notifications on {site-name} notification-subtitle = Notifications on {site-name}
notification-clear-all-heading = Clear All notification-clear-all-heading = Clear All