diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2022-07-19 15:20:56 -0400 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2022-07-19 15:20:56 -0400 |
| commit | 39feeb74ffad85ba038e70773eba30385155c950 (patch) | |
| tree | e92fdbfa8ba2987a97341c4a885898df02bf4cad | |
| parent | 5f4255b9ce0583e5a7ad9440493cdaa64d1e664b (diff) | |
Parse local storage db if it exists. Move json parsing to `ts` files, remove `json` from rollup
| -rw-r--r-- | rollup.config.js | 6 | ||||
| -rw-r--r-- | src/components/AssignLabs/AssignLabs.svelte | 15 | ||||
| -rw-r--r-- | src/components/Sidebar.svelte | 19 | ||||
| -rw-r--r-- | src/util/parser.ts | 3 |
4 files changed, 16 insertions, 27 deletions
diff --git a/rollup.config.js b/rollup.config.js index e0d1445..be0f95d 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -80,11 +80,7 @@ export default { // If we're building for production (npm run build // instead of npm run dev), minify - production && terser(), - - // Reading from local json should only happen in development - Furkan - // !production && json() - json() + production && terser() ], watch: { clearScreen: false diff --git a/src/components/AssignLabs/AssignLabs.svelte b/src/components/AssignLabs/AssignLabs.svelte index 3a326ad..b543509 100644 --- a/src/components/AssignLabs/AssignLabs.svelte +++ b/src/components/AssignLabs/AssignLabs.svelte @@ -3,8 +3,6 @@ import { labStore, ptStore } from "../../stores"; import Lab from "./LabBox.svelte"; import PT from "./PTBox.svelte"; - import { onMount } from "svelte"; - import { parseDatabaseLocal } from "../../util/parser"; let selectedPeerTeacher: PeerTeacher | undefined; @@ -58,14 +56,6 @@ selectedPeerTeacher?.labs.delete(id); updateReactiveDeclarations(); } - - // Load db from local storage so I don't have to keep uploading - onMount(() => { - const db = localStorage.getItem("db"); - if (db) { - parseDatabaseLocal(JSON.parse(db)); - } - }); </script> <div @@ -96,7 +86,7 @@ <!-- Available Labs --> <div class="assign-box"> - <div class="assign-box-header">Labs</div> + <div class="assign-box-header">Labs: {labs.length}</div> <div class="assign-box-body"> {#each compatibleLabs as lab} <svelte:component @@ -124,7 +114,6 @@ iconName="minus-circle" iconClick={() => { unassignLab(lab.id); - }} /> {/each} @@ -134,7 +123,7 @@ <!-- Bottom half: Universal unassigned labs --> <div class="flex flex-col mt-2 text-center"> - <h1>Unassigned Labs</h1> + <h1>Unassigned Labs: {unassignedLabs.length}</h1> <div class="flex flex-row overflow-auto border-y-4 mt-1 border-slate-500 w-full items-center text-sm" > diff --git a/src/components/Sidebar.svelte b/src/components/Sidebar.svelte index 6eecf51..92f6427 100644 --- a/src/components/Sidebar.svelte +++ b/src/components/Sidebar.svelte @@ -3,10 +3,8 @@ import AssignLabs from "./AssignLabs/AssignLabs.svelte"; import FileUploads from "./FileUploads.svelte"; import { onMount } from "svelte"; - import { parseDatabase, parseDatabaseLocal } from "../util/parser"; - import { parseDatabaseFile } from "../logic/EditorActions"; - import * as local_db from "../../pt-db.json"; - // + import { parseDatabaseLocalStorage } from "../util/parser"; + let sections = [ { name: "File Uploads", component: FileUploads }, { name: "Peer Teachers", component: null }, // TODO @@ -20,10 +18,15 @@ // Set initial page to Assign Labs while I work on it let selected = sections[2]; - onMount(async () => { - // load database on mount for testing purposes - console.log("reading local database"); - parseDatabaseLocal(local_db); + // Load from local storage. FOR TESTING PURPOSES ONLY. REMOVE THIS FROM PRODUCTION + onMount(() => { + const db = localStorage.getItem("db"); + if (db) { + console.log("Using database found in local storage"); + parseDatabaseLocalStorage(db); + } else { + console.log("No database found in local storage"); + } }); </script> diff --git a/src/util/parser.ts b/src/util/parser.ts index 0f82996..7e062e1 100644 --- a/src/util/parser.ts +++ b/src/util/parser.ts @@ -164,7 +164,8 @@ export function parseDatabase(database: DatabaseFile) { * and updates local storage * @param database The database object from a db file */ -export function parseDatabaseLocal(database: DatabaseFile) { +export function parseDatabaseLocalStorage(database_string: string) { + const database = JSON.parse(database_string) const result = { labs: new Map<number, Lab>(), peerTeachers: new Map<number, PeerTeacher>() |
