Compare commits

...

3 Commits

Author SHA1 Message Date
SethBurkart123 ecc89e864c chore: bump version to 3.7.2 and update changelog 2026-06-19 15:00:29 +10:00
AdenMGB 0e696e0175 fix: add safer dom for analytics 2026-06-17 10:09:21 +09:30
AdenMGB b8709f6391 fix: fix analytics page breaking built @sethBurkart123 2026-06-16 17:29:30 +09:30
5 changed files with 22 additions and 4 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "betterseqtaplus",
"version": "3.7.0",
"version": "3.7.2",
"type": "module",
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development and add heaps more features!",
"browserslist": "> 0.5%, last 2 versions, not dead",
@@ -1,5 +1,6 @@
import { settingsState } from "@/seqta/utils/listeners/SettingsState";
import { waitForElm } from "@/seqta/utils/waitForElm";
import { renderAnalyticsPage } from "./ui";
let loadInFlight: Promise<void> | null = null;
@@ -27,7 +28,15 @@ async function loadAnalyticsPageInner(): Promise<void> {
});
document.querySelector('[data-key="analytics"]')?.classList.add("active");
const main = (await waitForElm("#main", true, 100, 60)) as HTMLElement;
let main: HTMLElement;
try {
main = (await waitForElm("#main", true, 100, 60)) as HTMLElement;
} catch {
console.warn(
"[BetterSEQTA+] Analytics: timed out waiting for #main (shell not ready).",
);
return;
}
main.innerHTML = "";
main.style.overflow = "auto";
@@ -41,6 +50,5 @@ async function loadAnalyticsPageInner(): Promise<void> {
const titlediv = document.getElementById("title")?.firstChild;
if (titlediv) (titlediv as HTMLElement).innerText = "Analytics";
const { renderAnalyticsPage } = await import("./ui");
renderAnalyticsPage(container);
}
@@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
+1 -1
View File
@@ -1,4 +1,4 @@
import tailwindStyles from "@/interface/index.css?inline";
import tailwindStyles from "./tailwind.css?inline";
import pluginStyles from "./styles.css?inline";
import { settingsState } from "@/seqta/utils/listeners/SettingsState";
import { mount, unmount } from "svelte";
@@ -42,6 +42,13 @@ export function OpenWhatsNewPopup(onDismissed?: () => void) {
const text = stringToHTML(/* html */ `
<div class="whatsnewTextContainer" style="height: 50%;overflow-y: auto;">
<h1>3.7.2 Analytics Fixes</h1>
<li>Fixed analytics page breaking on certain configurations.</li>
<li>Added safer DOM handling for analytics to prevent crashes.</li>
<li>Fixed hovering tooltip for forecast analytics chart.</li>
<li>Improved grade analytics layout, controls, and forecast chart rendering.</li>
<li>Updated update image for new layout.</li>
<h1>3.7.0 Grade Analytics, Enhanced Navigation, fonts, Global Search & SEQTA Engage Improvements</h1>
<li>Added Enhanced Navigation for courses: the navigator now auto-scrolls to the selected lesson (e.g. inside the "Go to…" popup) and prev/next arrows for jumping between lessons.</li>
<li>Added Grade Analytics, new sidebar page with grade trend charts synced from SEQTA.</li>