diff options
| author | Andrew Lee <[email protected]> | 2026-02-05 21:38:57 -0500 |
|---|---|---|
| committer | Andrew Lee <[email protected]> | 2026-02-05 21:40:13 -0500 |
| commit | 6c68cb168a6020e0589c99add348bb7a73f4eda6 (patch) | |
| tree | 9e80976be820ed25a8dfe089c06745e73ba486df /src/components | |
| parent | 00a841d83aeb4fa657d9dbfee58ac9b36eee3382 (diff) | |
| download | shiftos-archive-website-6c68cb168a6020e0589c99add348bb7a73f4eda6.tar.gz shiftos-archive-website-6c68cb168a6020e0589c99add348bb7a73f4eda6.tar.bz2 shiftos-archive-website-6c68cb168a6020e0589c99add348bb7a73f4eda6.zip | |
shifter stuff + updated downloads
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/Shifter.tsx | 85 | ||||
| -rw-r--r-- | src/components/Shifter/Sidebar.tsx | 74 | ||||
| -rw-r--r-- | src/components/Shifter/Window/Borders.tsx | 0 | ||||
| -rw-r--r-- | src/components/Shifter/Window/Buttons.tsx | 0 | ||||
| -rw-r--r-- | src/components/Shifter/Window/TitleBar.tsx | 6 | ||||
| -rw-r--r-- | src/components/Shifter/Window/TitleText.tsx | 0 | ||||
| -rw-r--r-- | src/components/ToggleShifter.tsx | 32 |
7 files changed, 106 insertions, 91 deletions
diff --git a/src/components/Shifter.tsx b/src/components/Shifter.tsx index 36b2262..940e6f0 100644 --- a/src/components/Shifter.tsx +++ b/src/components/Shifter.tsx @@ -1,13 +1,7 @@ import React, { useState, useRef } from 'react'; +import { sidebarContent } from './Shifter/Sidebar'; import '../styles/shifter.css'; -let cssVariables = ['--titlebar-colour', - '--titlebar-text-colour', - '--titlebar-control-colour', - '--titlebar-control-link', - '--window-font', - '--titlebar-font'] - export default function Shifter() { const [sidebar, setSidebar] = useState(0); const [position, setPosition] = useState({ @@ -25,13 +19,6 @@ export default function Shifter() { } - function resetSettings() { - cssVariables.map((x) => { - localStorage.removeItem(x); - document.documentElement.style.removeProperty(x); - }); - } - function closeButton() { } @@ -80,70 +67,6 @@ export default function Shifter() { } }, [isDragging]); - function sidebarContent(): React.ReactNode { - switch (sidebar) { - case 0: - return ( - <> - <div className="shifter-welcome"> - <h1>Welcome to the Shifter!</h1> - <p>The shifter is an application that allows you to modify various features in ShiftOS. - Initially the user interface of ShiftOS is very dull however you can use the Shifter and - various sub programs within the Shifter such as the "Colour Picker" to improve the - appearance of ShiftOS.</p> - <p>The basic process of modifying your ShiftOS interface is very simple. You first choose a - main category on the left which will bring up a list of sub categories. Next select a - sub category to display your list of customization options. Once you have modified the - appropriate settings click Apply Changes to confirm your choices.</p> - </div> - <div className="shifter-codepoints"> - <h2>You can earn codepoints using the Shifter!</h2> - <p>That's right! Simply by customizing your ShiftOS interface you can earn as many - codepoints as you like. The amount of codepoints you earn will be calculated and - displayed the moment you press "Apply Changes". The more time you spend customizing the - more codepoints you will earn!</p> - </div> - </> - ) - case 1: - return ( - <> - <div> - <div className="window" style={{ paddingBottom: 130 }}> - <div className="titlebar"> - <div className="titlebar-text">Template</div> - <div className="titlebar-buttons"></div> - </div> - </div> - </div> - <div className="shifter-window-sidebar"> - <div className="shifter-window-buttons"> - <a className="shifter-button" onClick={() => console.log("Title Bar")}>Title Bar</a> - <a className="shifter-button" onClick={() => console.log("Title Text")}>Title Text</a> - <a className="shifter-button" onClick={() => console.log("Buttons")}>Buttons</a> - <a className="shifter-button" onClick={() => console.log("Borders")}>Borders</a> - </div> - <div> - <a onClick={() => testOption()}>Test</a> - Content - </div> - </div> - </> - ) - case 2: - return ( - <> - <h1>Global Settings Reset!</h1> - <p>After spending hours customizing ShiftOS you may want to reset all settings to their default values so you can have a clean slate. - Remember that once you reset your settings you can't undo your actions so only do so if you truly want to abandon all the customizations you have made to ShiftOS.</p> - <a onClick={() => resetSettings()}>Reset All Settings</a> - <p><b>Warning! A Global Reset Is Irreversible!</b></p> - </> - ) - } - } - - return ( <> <div className="window draggable" style={{ @@ -158,16 +81,16 @@ export default function Shifter() { </div> <div className="content"> <div className="sidebar"> - <div className="sidebar-content"> + <aside className="sidebar-content"> <a href="#windows" className="sidebar-button" onClick={() => changeSidebar(1)}>Windows</a> <div className="sep"/> <a href="#reset" className="sidebar-button" onClick={() => changeSidebar(2)}>Reset</a> <div className="sep"/> - </div> + </aside> <a href="#apply" className="shifter-button" onClick={() => applyButton()}>Apply Changes</a> </div> <div className="shifter-body"> - {sidebarContent()} + {sidebarContent(sidebar)} </div> </div> </div> diff --git a/src/components/Shifter/Sidebar.tsx b/src/components/Shifter/Sidebar.tsx new file mode 100644 index 0000000..adb211f --- /dev/null +++ b/src/components/Shifter/Sidebar.tsx @@ -0,0 +1,74 @@ +import { cssVariables } from '../../scripts/variables'; + +function resetSettings() { + cssVariables.map((x) => { + if (!x) return; + localStorage.removeItem(x); + document.documentElement.style.removeProperty(x); + }); +} + +export function sidebarContent(sidebar: number): React.ReactNode { + switch (sidebar) { + case 0: + return ( + <section className="welcome"> + <div className="shifter-welcome"> + <h1>Welcome to the Shifter!</h1> + <p>The shifter is an application that allows you to modify various features in ShiftOS. + Initially the user interface of ShiftOS is very dull however you can use the Shifter and + various sub programs within the Shifter such as the "Colour Picker" to improve the + appearance of ShiftOS.</p> + <p>The basic process of modifying your ShiftOS interface is very simple. You first choose a + main category on the left which will bring up a list of sub categories. Next select a + sub category to display your list of customization options. Once you have modified the + appropriate settings click Apply Changes to confirm your choices.</p> + </div> + <div className="shifter-codepoints"> + <h2>You can earn codepoints using the Shifter!</h2> + <p>That's right! Simply by customizing your ShiftOS interface you can earn as many + codepoints as you like. The amount of codepoints you earn will be calculated and + displayed the moment you press "Apply Changes". The more time you spend customizing the + more codepoints you will earn!</p> + </div> + </section> + ) + case 1: + return ( + <section className="windows"> + <div className="template"> + <div className="window" style={{ paddingBottom: 103 }}> + <div className="titlebar"> + <div className="titlebar-text">Template</div> + <div className="titlebar-buttons"></div> + </div> + </div> + </div> + <div className="shifter-window-sidebar"> + <aside className="shifter-window-buttons"> + <a className="window-shifter-button" onClick={() => console.log("Title Bar")}>Title Bar</a> + <a className="window-shifter-button" onClick={() => console.log("Title Text")}>Title Text</a> + <a className="window-shifter-button" onClick={() => console.log("Buttons")}>Buttons</a> + <a className="window-shifter-button" onClick={() => console.log("Borders")}>Borders</a> + </aside> + <div className="window-setting-main"> + <h3>Window Settings</h3> + <p>Welcome to the windows settings panel. Here you can modify the appearance of the controls that are displayed on your open windows. + Just select a sub option to the left to get started!</p> + <p>The preview window above will track your modifications live until you click "Apply Changes".</p> + </div> + </div> + </section> + ) + case 2: + return ( + <section className="reset"> + <h1>Global Settings Reset!</h1> + <p>After spending hours customizing ShiftOS you may want to reset all settings to their default values so you can have a clean slate. + Remember that once you reset your settings you can't undo your actions so only do so if you truly want to abandon all the customizations you have made to ShiftOS.</p> + <a className="reset-button" onClick={() => resetSettings()}>Reset All Settings</a> + <p><b>Warning! A Global Reset Is Irreversible!</b></p> + </section> + ) + } +} diff --git a/src/components/Shifter/Window/Borders.tsx b/src/components/Shifter/Window/Borders.tsx new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/Shifter/Window/Borders.tsx diff --git a/src/components/Shifter/Window/Buttons.tsx b/src/components/Shifter/Window/Buttons.tsx new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/Shifter/Window/Buttons.tsx diff --git a/src/components/Shifter/Window/TitleBar.tsx b/src/components/Shifter/Window/TitleBar.tsx new file mode 100644 index 0000000..6b3fa70 --- /dev/null +++ b/src/components/Shifter/Window/TitleBar.tsx @@ -0,0 +1,6 @@ +function setTitleBar(type: number, b: any) { + switch (type) { + case 0: + return localStorage.setItem("--titlebar-colour", b); + } +} diff --git a/src/components/Shifter/Window/TitleText.tsx b/src/components/Shifter/Window/TitleText.tsx new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/Shifter/Window/TitleText.tsx diff --git a/src/components/ToggleShifter.tsx b/src/components/ToggleShifter.tsx index 4737a6f..725a8cc 100644 --- a/src/components/ToggleShifter.tsx +++ b/src/components/ToggleShifter.tsx @@ -1,14 +1,26 @@ import Shifter from './Shifter.tsx'; -import { useState } from "react"; +import { useEffect, useState } from "react"; export default function ToggleShifter() { - const [isShowingShifter, setShowingShifter] = useState(false); - - return ( - <> - {isShowingShifter && ( - <Shifter /> - )} - </> - ) + const [isShowingShifter, setShowingShifter] = useState(false); + + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + if (event.key === "s") { + setShowingShifter(prev => !prev); + } + }; + + window.addEventListener("keydown", handleKeyDown); + + return () => { + window.removeEventListener("keydown", handleKeyDown); + }; + }, []); + + return ( + <> + {isShowingShifter && <Shifter />} + </> + ); } |
