Skip to content
This repository was archived by the owner on Feb 7, 2025. It is now read-only.

Commit 5d7abbb

Browse files
committed
Deprecate discourse-color-scheme-toggle in favor of the core version
1 parent 5281244 commit 5d7abbb

File tree

4 files changed

+49
-4
lines changed

4 files changed

+49
-4
lines changed

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# discourse-color-scheme-toggle
1+
# DEPRECATED
22

3-
Color Scheme Toggler to switch between Dark / Light schemes set by the user's preferences
4-
5-
This component adds a clickable toggle color scheme button in the hamburger menu.
3+
This feature has been folded into Discourse core under the `interface color selector` site setting.

javascripts/discourse/connectors/home-logo-contents__after/minimized-hook.gjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ import {
88
} from "../../lib/color-scheme-override";
99

1010
export default class MinimizedHook extends Component {
11+
static shouldRender(args, helper) {
12+
const coreSelector = helper.siteSettings.interface_color_selector;
13+
return coreSelector === undefined || coreSelector === "disabled";
14+
}
15+
1116
@service keyValueStore;
1217

1318
@action

javascripts/discourse/connectors/sidebar-footer-actions/toggler-button.gjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ import { service } from "@ember/service";
33
import ColorSchemeToggler from "../../components/color-scheme-toggler";
44

55
export default class TogglerButton extends Component {
6+
static shouldRender(args, helper) {
7+
const coreSelector = helper.siteSettings.interface_color_selector;
8+
return coreSelector === undefined || coreSelector === "disabled";
9+
}
10+
611
@service session;
712
@service siteSettings;
813

javascripts/discourse/initializers/color-scheme-toggler.gjs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { later, schedule } from "@ember/runloop";
33
import { service } from "@ember/service";
44
import { loadColorSchemeStylesheet } from "discourse/lib/color-scheme-picker";
55
import { bind } from "discourse/lib/decorators";
6+
import getURL from "discourse/lib/get-url";
67
import { withPluginApi } from "discourse/lib/plugin-api";
78
import { currentThemeId } from "discourse/lib/theme-selector";
89
import ColorSchemeToggler from "../components/color-scheme-toggler";
@@ -19,6 +20,42 @@ class TogglerInit {
1920
constructor(owner) {
2021
setOwner(this, owner);
2122

23+
const coreSelector = this.siteSettings.interface_color_selector;
24+
if (coreSelector !== undefined) {
25+
const becomeNoOp = coreSelector !== "disabled";
26+
27+
withPluginApi("1.28.0", (api) => {
28+
const currentUser = api.getCurrentUser();
29+
if (currentUser?.admin) {
30+
const themeId = themePrefix("foo").match(
31+
/theme_translations\.(\d+)\.foo/
32+
)[1];
33+
const themeURL = getURL(`/admin/customize/themes/${themeId}`);
34+
const message = becomeNoOp
35+
? `
36+
<b>Admin notice:</b> the "Dark-Light Toggle" theme component is still enabled on your site, but it has been superseded by the new core version and doesn't do anything now. Please <a href="${themeURL}">delete</a> it to prevent potential breakages in the future.`
37+
: `
38+
<b>Admin notice:</b> you're using the "Dark-Light Toggle" theme component which is now available as a core feature. Please enable the core version via the <a href="${getURL(
39+
"/admin/site_settings/category/all_results?filter=interface_color_selector"
40+
)}">interface color selector</a> site setting and <a href="${themeURL}">delete</a> the theme component.`;
41+
42+
api.addGlobalNotice(
43+
message,
44+
"color-scheme-toggle-component-deprecated",
45+
{
46+
dismissable: true,
47+
level: "warn",
48+
dismissDuration: moment.duration("1", "day"),
49+
}
50+
);
51+
}
52+
});
53+
54+
if (becomeNoOp) {
55+
return;
56+
}
57+
}
58+
2259
const storedOverride = this.keyValueStore.getItem(
2360
COLOR_SCHEME_OVERRIDE_KEY
2461
);

0 commit comments

Comments
 (0)