aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2022-07-19 15:20:56 -0400
committerFurkan Sahin <furkan-dev@proton.me>2022-07-19 15:20:56 -0400
commit39feeb74ffad85ba038e70773eba30385155c950 (patch)
treee92fdbfa8ba2987a97341c4a885898df02bf4cad
parent5f4255b9ce0583e5a7ad9440493cdaa64d1e664b (diff)
Parse local storage db if it exists. Move json parsing to `ts` files, remove `json` from rollup
-rw-r--r--rollup.config.js6
-rw-r--r--src/components/AssignLabs/AssignLabs.svelte15
-rw-r--r--src/components/Sidebar.svelte19
-rw-r--r--src/util/parser.ts3
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>()