summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/DBInfoscreen.pm18
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm1
2 files changed, 18 insertions, 1 deletions
diff --git a/lib/DBInfoscreen.pm b/lib/DBInfoscreen.pm
index 6be6e2c..1828737 100644
--- a/lib/DBInfoscreen.pm
+++ b/lib/DBInfoscreen.pm
@@ -26,6 +26,24 @@ my %default = (
sub startup {
my ($self) = @_;
+ $self->hook(
+ before_dispatch => sub {
+ my ($self) = @_;
+
+ # The "theme" cookie is set client-side if the theme we delivered was
+ # changed by dark mode detection or by using the theme switcher. It's
+ # not part of Mojolicious' session data (and can't be, due to
+ # signing and HTTPOnly), so we need to add it here.
+
+ for my $cookie ( @{ $self->req->cookies } ) {
+ if ( $cookie->name eq 'theme' ) {
+ $self->session( theme => $cookie->value );
+ return;
+ }
+ }
+ }
+ );
+
$self->attr(
cache_hafas => sub {
my ($self) = @_;
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm
index 8ac8101..4a9c94d 100644
--- a/lib/DBInfoscreen/Controller/Stationboard.pm
+++ b/lib/DBInfoscreen/Controller/Stationboard.pm
@@ -517,7 +517,6 @@ sub handle_request {
my $show_details = $self->param('detailed') // 0;
my $backend = $self->param('backend') // 'iris';
my $admode = $self->param('admode') // 'deparr';
- my $dark_layout = $self->param('dark') // 0;
my $apiver = $self->param('version') // 0;
my $callback = $self->param('callback');
my $with_related = !$self->param('no_related');