diff --git a/src/seqta/utils/AboutMinecraftServer.ts b/src/seqta/utils/AboutMinecraftServer.ts new file mode 100644 index 00000000..50f8d0fb --- /dev/null +++ b/src/seqta/utils/AboutMinecraftServer.ts @@ -0,0 +1,357 @@ +import { settingsState } from "./listeners/SettingsState"; +import { animate, stagger } from "motion"; +import stringToHTML from "./stringToHTML"; +import browser from "webextension-polyfill"; +import kofi from "@/resources/kofi.png?base64"; + +export async function DeleteWhatsNew() { + const bkelement = document.getElementById("whatsnewbk"); + const popup = document.getElementsByClassName("whatsnewContainer")[0]; + + if (!settingsState.animations) { + bkelement?.remove(); + return; + } + + animate( + [popup, bkelement!], + { opacity: [1, 0], scale: [1, 0] }, + { ease: [0.22, 0.03, 0.26, 1] }, + ).then(() => { + bkelement?.remove(); + }); +} + +export function OpenWhatsNewPopup() { + const background = document.createElement("div"); + background.id = "whatsnewbk"; + background.classList.add("whatsnewBackground"); + + const container = document.createElement("div"); + container.classList.add("whatsnewContainer"); + + var header: any = stringToHTML( + /* html */ + `
+

What's New

+

BetterSEQTA+ V${browser.runtime.getManifest().version}

+
`, + ).firstChild; + + let imagecont = document.createElement("div"); + imagecont.classList.add("whatsnewImgContainer"); + + let video = document.createElement("video"); + let source = document.createElement("source"); + + source.setAttribute( + "src", + "https://raw.githubusercontent.com/BetterSEQTA/BetterSEQTA-Plus/main/src/resources/update-video.mp4", + ); + video.autoplay = true; + video.muted = true; + video.loop = true; + video.appendChild(source); + video.classList.add("whatsnewImg"); + imagecont.appendChild(video); + + /* let whatsnewimg = document.createElement("img"); + //whatsnewimg.src = "https://raw.githubusercontent.com/BetterSEQTA/BetterSEQTA-Plus/main/src/resources/update-image.webp"; + whatsnewimg.src = browser.runtime.getURL('../../resources/update-image.webp'); + whatsnewimg.classList.add("whatsnewImg"); + imagecont.appendChild(whatsnewimg); */ + + let textcontainer = document.createElement("div"); + textcontainer.classList.add("whatsnewTextContainer"); + + let text = stringToHTML(/* html */ ` +
+

3.4.8 - Improvements!

+
  • Added new assessments kanban overview
  • +
  • Added custom profile pictures
  • +
  • Added custom shortcut icons
  • +
  • Added modern and animated notices on homepage
  • +
  • Improved global search performance and bug fixes
  • +
  • Fixed sidebar icons reverting to old style after reload
  • +
  • Fixed settings popup not appearing on disabled pages
  • +
  • Fixed 12-hour time not applying correctly in timetable
  • +
  • Fixed background flickering on page load
  • +
  • Fixed homepage lessons not properly changing days
  • +
  • Performance improvements for global search
  • +
  • Performance improvements across the extension
  • +
  • Other bug fixes and improvements
  • + +

    3.4.7 - Global Search

    +
  • Added a new global search bar (enable in settings) + beta +
  • +
  • Fixed news feed not loading
  • +
  • Style changes and improvements
  • +
  • Other bug fixes
  • + +

    3.4.6.1 - Hot patch!

    +
  • Fixed storage not updating and sometimes being replaced with default values
  • + +

    3.4.6 - Massive internal reworks!

    +
  • Fix SEQTA classes not being applied correctly causing a totally broken experience
  • +
  • Reworked internals to function as a plugin system (more on this soon)
  • +
  • Rebuilt theme system that is significantly less buggy
  • +
  • Performance improvements
  • +
  • Other minor bug fixes
  • + +

    3.4.5 - News, Bug Fixes, and improvements!

    +
  • Added alternative news sources
  • +
  • Notifications now open direct messages
  • +
  • Added Toggle for Letter/Percent Grades
  • +
  • Added fullscreen to the theme creator CSS editor
  • +
  • Added warning if BetterSEQTA is installed
  • +
  • Removed max width from theme creator
  • +
  • Fixed discord icon colour in light mode
  • +
  • Fixed subject averages not showing up with letter grades
  • +
  • Tweaked compose UI
  • + +

    3.4.4 - Bug Fixes and Improvements

    +
  • Added vertical zoom to the timetable
  • +
  • Fixed theme importing failing when images were included
  • +
  • Removed broken gradients on the backgrounds of certain buttons
  • +
  • Fixed timetable quickbar arrow receiving the wrong colour
  • +
  • Auto-applied selected theme after saving in theme creator
  • +
  • Fixed a bug where timetable was clipped at certain times
  • +
  • Fixed custom sidebar layouts not applying on page load
  • +
  • Improved spacing of the message editor buttons
  • +
  • Added HEX colour input to the theme creator
  • +
  • Fixed theme application in the creator
  • +
  • Performance improvements
  • +
  • Other minor bug fixes
  • + +

    3.4.3 - Minor Bug Fixes

    +
  • Fixed a bug where timetable colours couldn't be changed
  • +
  • Other minor bug fixes
  • + +

    3.4.2 - Minor Bug Fixes

    +
  • Fixed a bug where Assessment Average wasn't enabled by default
  • +
  • Fixed floating menus would sometimes be placed behind other elements
  • + +

    3.4.1 - Bug Fixes and Performance Improvements

    +
  • Added a new "Subject Average" section to the assessments page
  • +
  • Fixed a bug where animations wouldn't play correctly
  • +
  • Added loading animations to the home page
  • +
  • Under the hood performance improvements
  • +
  • Improved animation performance
  • +
  • Better Animations!
  • +
  • Minor style tweaks
  • + +

    3.4.0 - Major Performance Update

    +
  • Completely rebuilt the extension popup using Svelte for dramatically improved performance
  • +
  • Added a brand new background store with search functionality and downloadable backgrounds
  • +
  • Significant code cleanup and optimization across the extension
  • +
  • Improved overall responsiveness and load times
  • +
  • Smoother animations and improved scrolling
  • +
  • Fixed Firefox compatibility issues
  • +
  • Other minor bug fixes and under the hood improvements
  • + +

    3.3.1 - Hot Fix

    +
  • Fixed assessments not loading when no notices are available
  • + +

    3.3.0 - Overhauled Theming System

    +
  • Added a theme store!
  • +
  • Added the new theme creator!
  • +
  • Fixed Notices not working on home page
  • +
  • Fixed dark/light button labels inverted
  • +
  • Switched to GitHub for hosting the update video
  • +
  • Fixed an issue where the settings menu wouldn't change theme
  • +
  • Fixed custom shortcuts not allowing ports to be used
  • +
  • Fixed occasional flashing when using animations
  • +
  • Fixed loading of the tab icon
  • +
  • Made animations toggle apply to settings
  • +
  • Small styling improvements
  • +
  • Other minor bug fixes
  • + + +

    3.2.7 - Minor Improvements

    +
  • Improved performance!
  • +
  • Fixed a bug where the icon wasn't showing up
  • + +

    3.2.6 - Bug fixes and performance improvements

    +
  • Improved contrast for notifications
  • +
  • Added 12-hour time format toggle
  • +
  • Using external update video to ensure smaller package size
  • +
  • Refactored underlying code to improve performance
  • +
  • Removed old theme system *revamp coming soon*
  • +
  • Improved notices contrast
  • +
  • Remove Telemetry completely - as we weren't using it too much
  • +
  • Added Error handling to settings interface
  • +
  • Fixed HTML message editor cursor becoming misaligned
  • +
  • Enabled spellcheck inside of direct messages
  • +
  • Fixed timetable dates being misaligned
  • +
  • Other minor bug fixes and under the hood improvements
  • + +

    3.2.5 - More Bug Fixes

    +
  • New direct message scroll animations
  • +
  • Added error message for brave browser shields breaking backgrounds
  • +
  • Fixed homepage assessment tooltips being cut off
  • +
  • Improved direct message styling
  • +
  • Made settings panel auto size to height of screen
  • +
  • Fixed timetable dates not visible
  • +
  • Other minor bug fixes
  • + +

    3.2.4 - Bug Fixes

    +
  • Added an open changelog button to settings
  • +
  • Fixed a memory overflow bug with Education Perfect
  • +
  • Fixed a bug where the background wouldn't change instantly
  • +
  • Fixed news feed not loading
  • +
  • Fixed home items duplicating
  • +
  • Fixed Upcoming assessments not showing
  • + +

    3.2.2 - Minor Improvements

    +
  • Added Settings open-close animation
  • +
  • Minor Bug Fixes
  • + +

    3.2.0 - Custom Themes

    +
  • Added transparency (blur) effects
  • +
  • Added custom themes
  • +
  • Added colour picker history
  • +
  • Heaps of bug fixes
  • + +

    3.1.3 - Custom Backgrounds

    +
  • Added custom backgrounds with support for images and videos
  • +
  • Overhauled topbar
  • +
  • New animated hamburger icon
  • +
  • Minor bug fixes
  • + +

    3.1.2 - New settings menu!

    +
  • Overhauled the settings menu
  • +
  • Added custom gradients
  • +
  • Added HEAPS of animations
  • +
  • Fixed a bug where shortcuts don't show up
  • +
  • Other minor bugs fixed
  • + +

    3.1.1 - Minor Bug fixes

    +
  • Fixed assessments overlapping
  • +
  • Fixed houses not displaying if they aren't a specific color
  • +
  • Fixed Chrome Webstore Link
  • + +

    3.1.0 - Design Improvements

    +
  • Minor UI improvements
  • +
  • Added Animation Speed Slider
  • +
  • Animation now enables and disables without reloading SEQTA
  • +
  • Changed logo
  • + +

    3.0.0 - BetterSEQTA+ *Complete Overhaul*

    +
  • Redesigned appearance
  • +
  • Upgraded to manifest V3 (longer support)
  • +
  • Fixed transitional glitches
  • +
  • Under the hood improvements
  • +
  • Fixed News Feed
  • + +

    2.0.7 - Added support to other domains + Minor bug fixes

    +
  • Fixed BetterSEQTA+ not loading on some pages
  • +
  • Fixed text colour of notices being unreadable
  • +
  • Fixed pages not reloading when saving changes
  • + +

    2.0.2 - Minor bug fixes

    +
  • Fixed indicator for current lesson
  • +
  • Fixed text colour for DM messages list in Light mode
  • +
  • Fixed user info text colour
  • + +

    Sleek New Layout

    +
  • Updated with a new font and presentation, BetterSEQTA+ has never looked better.
  • + +

    New Updated Sidebar

    +
  • Condensed appearance with new updated icons.
  • + +

    Independent Light Mode and Dark Mode

    +
  • Dark mode and Light mode are now available to pick alongside your chosen Theme Colour. Your Theme Colour will now become an accent colour for the page. + Light/Dark mode can be toggled with the new button, found in the top-right of the menu bar.
  • + +

    Create Custom Shortcuts

    +
  • Found in the BetterSEQTA+ Settings menu, custom shortcuts can now be created with a name and URL of your choice.
  • +
    + `).firstChild; + + let footer = stringToHTML(/* html */ ` +
    +
    + Resources and Feedback: + + + + + + + + + + + + + + + + + + + + +
    +
    + + Buy Me a Coffee at ko-fi.com + +
    +
    + `).firstChild; + + let exitbutton = document.createElement("div"); + exitbutton.id = "whatsnewclosebutton"; + + container.append(header); + container.append(imagecont); + container.append(textcontainer); + container.append(text as ChildNode); + container.append(footer as ChildNode); + container.append(exitbutton); + + background.append(container); + + document.getElementById("container")!.append(background); + + let bkelement = document.getElementById("whatsnewbk"); + let popup = document.getElementsByClassName("whatsnewContainer")[0]; + + if (settingsState.animations) { + animate( + [popup, bkelement as HTMLElement], + { scale: [0, 1] }, + { + type: "spring", + stiffness: 220, + damping: 18, + }, + ); + + animate( + ".whatsnewTextContainer *", + { opacity: [0, 1], y: [10, 0] }, + { + delay: stagger(0.05, { startDelay: 0.1 }), + duration: 0.5, + ease: [0.22, 0.03, 0.26, 1], + }, + ); + } + + delete settingsState.justupdated; + + bkelement!.addEventListener("click", function (event) { + // Check if the click event originated from the element itself and not any of its children + if (event.target === bkelement) { + DeleteWhatsNew(); + } + }); + + var closeelement = document.getElementById("whatsnewclosebutton"); + closeelement!.addEventListener("click", function () { + DeleteWhatsNew(); + }); +}