diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2022-06-03 12:53:34 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2022-06-03 12:53:34 -0500 |
| commit | fe0a572cba1959f6a9b36da29f03db8627539438 (patch) | |
| tree | 7dbc667573959c8d35c3a6a8457943f821c3d28a /src/components | |
| parent | 9d3cf148bc0d9ebda4dd9ec3e2c71895f5706943 (diff) | |
Move files
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/DarkModeSwitch.svelte | 52 | ||||
| -rw-r--r-- | src/components/Sidebar.svelte | 56 |
2 files changed, 108 insertions, 0 deletions
diff --git a/src/components/DarkModeSwitch.svelte b/src/components/DarkModeSwitch.svelte new file mode 100644 index 0000000..b119ad1 --- /dev/null +++ b/src/components/DarkModeSwitch.svelte @@ -0,0 +1,52 @@ +<script> + function selectDaisyTheme(new_theme) { + document.querySelector(":root").setAttribute("data-theme", new_theme); + } + + function toggleDarkMode() { + const theme = localStorage.theme; + if (theme == "dark") { + localStorage.theme = "light"; + selectDaisyTheme("light"); + } else if (theme == "light") { + localStorage.theme = "dark"; + selectDaisyTheme("dark"); + } + } + + function isDarkMode() { + return localStorage.theme == "dark"; + } +</script> + +<label class="swap swap-rotate"> + <!-- this hidden checkbox controls the state --> + <!-- Make Moon/Sun icon based on current theme --> + {#if isDarkMode()} + <input type="checkbox" on:click={toggleDarkMode} /> + {:else} + <input type="checkbox" checked="checked" on:click={toggleDarkMode} /> + {/if} + + <!-- sun icon --> + <svg + class="swap-on fill-current w-10 h-10" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 24 24" + > + <path + d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z" + /> + </svg> + + <!-- moon icon --> + <svg + class="swap-off fill-current w-10 h-10" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 24 24" + > + <path + d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z" + /> + </svg> +</label> diff --git a/src/components/Sidebar.svelte b/src/components/Sidebar.svelte new file mode 100644 index 0000000..eaea191 --- /dev/null +++ b/src/components/Sidebar.svelte @@ -0,0 +1,56 @@ +<script> + import DarkModeSwitch from "./components/DarkModeSwitch.svelte"; + + let active_section : undefined; + + let sections = [ + 'File Uploads', + 'Peer Teachers', + 'Labs', + 'Active Peer Teachers', + 'Stats', + 'TAMU html output' + ] + + let sections2 = [ + {name: 'File Uploads', file: null, isActive: 'active'}, + {name: 'Peer Teachers', file: null, isActive: 'active'} + ] + + function chooseSection(sec) { + active_section = sec; + console.log('Chose section', active_section) + } +</script> + +<!-- Entire Page --> +<div class="flex flex-row h-screen"> + <!-- SIDEBAR --> + <div class="w-2/12 flex flex-col border-r"> + <!-- Header for sidebar sections --> + <div + class="font-serif flex-none text-center text-2xl text-neutral-900 p-4 border-b font-black" + > + <!-- Text --> + <div>Peer Teacher Manager</div> + <div> + <DarkModeSwitch /> + </div> + </div> + + <!-- Sidebar sections --> + <div class="flex-col overflow-y-auto"> + <ul class="menu bg-base-100 w-full text-xl"> + {#each sections as sec, i} + <li><div class=""> {sec} </div></li> + {/each} + {#each sections2 as sec, i} + <li><div class="" on:click={() => chooseSection(sec)}> {sec.name} </div></li> + {/each} + </ul> + </div> + </div> + + <!-- Main content --> + <div class="flex-auto">Content</div> +</div> |
