Skip to content

Commit 2610f03

Browse files
committed
fixed show dark mode
1 parent 5f23024 commit 2610f03

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

templates/development.php

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
<?php
22

3+
use Psr\Http\Message\ServerRequestInterface;
34
use Yiisoft\ErrorHandler\CompositeException;
45
use Yiisoft\ErrorHandler\Exception\ErrorException;
6+
use Yiisoft\ErrorHandler\Renderer\HtmlRenderer;
57
use Yiisoft\FriendlyException\FriendlyExceptionInterface;
68

79
/**
8-
* @var $this \Yiisoft\ErrorHandler\Renderer\HtmlRenderer
9-
* @var $request \Psr\Http\Message\ServerRequestInterface|null
10-
* @var $throwable \Throwable
10+
* @var $this HtmlRenderer
11+
* @var $request ServerRequestInterface|null
12+
* @var $throwable Throwable
1113
*/
1214

1315
$theme = $_COOKIE['yii-exception-theme'] ?? '';
@@ -363,28 +365,42 @@ function enableLightTheme() {
363365
document.onmouseup = function() { document.getElementsByTagName('body')[0].classList.remove('mousedown'); }
364366

365367
<?php if (empty($theme)): ?>
366-
var theme = getCookie('yii-exception-theme');
368+
const themeMedia = window.matchMedia('(prefers-color-scheme: dark)');
369+
const theme = getCookie('yii-exception-theme');
367370

368371
if (theme) {
372+
applyTheme(theme);
373+
} else {
374+
applyTheme((themeMedia.matches ? 'dark-theme' : 'light-theme'));
375+
}
376+
377+
themeMedia.addEventListener('change', event => {
378+
if (!theme) {
379+
applyTheme((event.matches ? 'dark-theme' : 'light-theme'));
380+
}
381+
});
382+
383+
function applyTheme(theme){
369384
document.body.classList.add(theme);
370385
}
386+
371387
<?php endif; ?>
372388

373389
function setCookie(name, value) {
374-
var date = new Date(2100, 0, 1);
375-
var expires = "; expires=" + date.toUTCString();
390+
const date = new Date(2100, 0, 1);
391+
const expires = "; expires=" + date.toUTCString();
376392

377393
document.cookie = name + "=" + (value || "") + expires + "; path=/";
378394
}
379395

380396
function getCookie(name) {
381-
var nameEQ = name + "=";
382-
var ca = document.cookie.split(';');
397+
const nameEQ = name + "=";
398+
const ca = document.cookie.split(';');
383399

384-
for (var i=0; i < ca.length; i++) {
385-
var c = ca[i];
386-
while (c.charAt(0)==' ') c = c.substring(1,c.length);
387-
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
400+
for (let i=0; i < ca.length; i++) {
401+
let c = ca[i];
402+
while (c.charAt(0) === ' ') c = c.substring(1,c.length);
403+
if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length,c.length);
388404
}
389405

390406
return null;

0 commit comments

Comments
 (0)