mirror of
https://github.com/flarum/core.git
synced 2025-08-07 08:56:38 +02:00
fix: respect user theme preference (#4033)
This commit is contained in:
@@ -377,7 +377,7 @@ export default class Application {
|
||||
}
|
||||
|
||||
private initColorScheme(forumDefault: string | null = null): void {
|
||||
forumDefault ??= document.documentElement.getAttribute('data-theme') ?? 'auto';
|
||||
forumDefault ??= app.forum.attribute('colorScheme') ?? 'auto';
|
||||
this.allowUserColorScheme = forumDefault === 'auto';
|
||||
const userConfiguredPreference = this.session.user?.preferences()?.colorScheme;
|
||||
|
||||
|
@@ -101,6 +101,8 @@ class ForumResource extends AbstractResource implements Findable
|
||||
->get(fn () => $this->settings->get('theme_primary_color')),
|
||||
Schema\Str::make('themeSecondaryColor')
|
||||
->get(fn () => $this->settings->get('theme_secondary_color')),
|
||||
Schema\Str::make('colorScheme')
|
||||
->get(fn () => $this->settings->get('color_scheme')),
|
||||
Schema\Str::make('logoUrl')
|
||||
->get(fn () => $this->getLogoUrl()),
|
||||
Schema\Str::make('faviconUrl')
|
||||
|
@@ -102,7 +102,11 @@ class FrontendServiceProvider extends AbstractServiceProvider
|
||||
$settings = $container->make(SettingsRepositoryInterface::class);
|
||||
|
||||
// Add document classes/attributes for design use cases.
|
||||
$document->extraAttributes['data-theme'] = $settings->get('color_scheme');
|
||||
$document->extraAttributes['data-theme'] = function (ServerRequestInterface $request) use ($settings) {
|
||||
return $settings->get('color_scheme') === 'auto'
|
||||
? RequestUtil::getActor($request)->getPreference('colorScheme')
|
||||
: $settings->get('color_scheme');
|
||||
};
|
||||
$document->extraAttributes['data-colored-header'] = $settings->get('theme_colored_header') ? 'true' : 'false';
|
||||
$document->extraAttributes['class'][] = function (ServerRequestInterface $request) {
|
||||
return RequestUtil::getActor($request)->isGuest() ? 'guest-user' : 'logged-in';
|
||||
|
Reference in New Issue
Block a user