|
1 | 1 | /** @odoo-module **/
|
2 | 2 |
|
| 3 | +import {_t} from "@web/core/l10n/translation"; |
3 | 4 | import {browser} from "@web/core/browser/browser";
|
| 5 | +import {cookie} from "@web/core/browser/cookie"; |
4 | 6 | import {registry} from "@web/core/registry";
|
| 7 | +import {user} from "@web/core/user"; |
5 | 8 |
|
6 | 9 | export function darkModeSwitchItem(env) {
|
7 | 10 | return {
|
8 | 11 | type: "switch",
|
9 | 12 | id: "color_scheme.switch",
|
10 |
| - description: env._t("Dark Mode"), |
| 13 | + description: _t("Dark Mode"), |
11 | 14 | callback: () => {
|
12 | 15 | env.services.color_scheme.switchColorScheme();
|
13 | 16 | },
|
14 |
| - isChecked: env.services.cookie.current.color_scheme === "dark", |
| 17 | + isChecked: cookie.get("color_scheme") === "dark", |
15 | 18 | sequence: 40,
|
16 | 19 | };
|
17 | 20 | }
|
18 | 21 |
|
19 | 22 | export const colorSchemeService = {
|
20 |
| - dependencies: ["cookie", "orm", "ui", "user"], |
| 23 | + dependencies: ["orm", "ui"], |
21 | 24 |
|
22 |
| - async start(env, {cookie, orm, ui, user}) { |
| 25 | + async start(env, {orm, ui}) { |
23 | 26 | registry.category("user_menuitems").add("darkmode", darkModeSwitchItem);
|
24 | 27 |
|
25 |
| - if (!cookie.current.color_scheme) { |
| 28 | + if (!cookie.get("color_scheme")) { |
26 | 29 | const match_media = window.matchMedia("(prefers-color-scheme: dark)");
|
27 | 30 | const dark_mode = match_media.matches;
|
28 |
| - cookie.setCookie("color_scheme", dark_mode ? "dark" : "light"); |
| 31 | + cookie.set("color_scheme", dark_mode ? "dark" : "light"); |
29 | 32 | if (dark_mode) browser.location.reload();
|
30 | 33 | }
|
31 | 34 |
|
32 | 35 | return {
|
33 | 36 | async switchColorScheme() {
|
34 |
| - const scheme = |
35 |
| - cookie.current.color_scheme === "dark" ? "light" : "dark"; |
36 |
| - cookie.setCookie("color_scheme", scheme); |
37 |
| - |
| 37 | + const scheme = cookie.get("color_scheme") === "dark" ? "light" : "dark"; |
| 38 | + cookie.set("color_scheme", scheme); |
38 | 39 | await orm.write("res.users", [user.userId], {
|
39 | 40 | dark_mode: scheme === "dark",
|
40 | 41 | });
|
|
0 commit comments