Skip to content

Commit 7e5cb5a

Browse files
fix: improve color scheme handling to support dynamic updates (#1590)
1 parent 5c5e50d commit 7e5cb5a

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/ts/core/core.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CHECKED_DATA_ATTRIBUTE, TRANSLATION_ATTRIBUTE } from "../common/constants";
2-
import { type Profile, Timeline, type Tweet, getColorScheme } from "twi-ext";
2+
import { type Profile, Timeline, type Tweet, getColorScheme, onColorSchemeChange } from "twi-ext";
33
import { analyzeProfileProps, analyzeTombstoneProps, analyzeTweetProps } from "./propsAnalyzer";
44
import { generateMessageDataForProfile, generateMessageDataForTweet } from "./messageDataGenerator";
55
import { SbsMessageWrapper } from "./sbsMessageWrapper";
@@ -32,8 +32,13 @@ class Core {
3232
this.checkProfile(profile);
3333
});
3434

35-
const colorScheme = getColorScheme() === "light" ? "light" : "dark";
36-
document.body.setAttribute("data-color-scheme", colorScheme);
35+
const colorScheme = getColorScheme();
36+
Core.updateColorScheme(colorScheme);
37+
onColorSchemeChange(Core.updateColorScheme.bind(this));
38+
}
39+
40+
private static updateColorScheme(colorScheme: ReturnType<typeof getColorScheme>): void {
41+
document.body.setAttribute("data-color-scheme", colorScheme === "light" ? "light" : "dark");
3742
}
3843

3944
private checkProfile(profile: Profile): void {

0 commit comments

Comments
 (0)