Skip to content

Commit 4ecf9da

Browse files
erdnaxeColdHeat
andauthored
Language chooser in navbar (#99)
* Theme radio dropdowns * Add language switch to navbar * yarn build * fixup! Add language switch to navbar * Update LanguageForm to use AlpineJS * Simplify LanguageForm --------- Co-authored-by: Kevin Chung <[email protected]>
1 parent 3f9bb7a commit 4ecf9da

22 files changed

+88
-43
lines changed

assets/js/components/language.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import CTFd from "../index";
2+
import Alpine from "alpinejs";
3+
4+
Alpine.data("LanguageForm", () => ({
5+
async set(event) {
6+
let language = event.target.getAttribute("value");
7+
document.cookie = `language=${language};SameSite=Lax`;
8+
9+
// Set user language preference if logged in
10+
if (CTFd.user.id) {
11+
await CTFd.fetch("/api/v1/users/me", {
12+
method: "PATCH",
13+
body: JSON.stringify({ language }),
14+
});
15+
}
16+
17+
// Reload with new language
18+
window.location.reload();
19+
},
20+
}));

assets/js/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import eventAlerts from "./utils/notifications/alerts";
1515
import eventToasts from "./utils/notifications/toasts";
1616
import eventRead from "./utils/notifications/read";
1717

18+
import "./components/language";
19+
1820
dayjs.extend(advancedFormat);
1921
CTFd.init(window.init);
2022

static/assets/challenges.369de531.js renamed to static/assets/challenges.bf350543.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/assets/clipboard.0c9c5ddd.js renamed to static/assets/clipboard.3bb95f09.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/assets/index.2e31e3b8.js renamed to static/assets/index.8a9f494f.js

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/assets/notifications.91eecfcb.js renamed to static/assets/notifications.c0f2004c.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/assets/page.3c5083de.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

static/assets/page.811c80a2.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import{C as o,m as d}from"./index.8a9f494f.js";window.CTFd=o;window.Alpine=d;d.start();

static/assets/scoreboard.b1c04d97.js renamed to static/assets/scoreboard.899daf28.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/assets/settings.64728c4b.js renamed to static/assets/settings.ce53005a.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)