From a1dfcd3c353e840ae761fab165c8268bf37cedee Mon Sep 17 00:00:00 2001 From: Fluffy-Bean Date: Wed, 8 May 2024 17:53:21 +0100 Subject: [PATCH] Nicer item page Add markdown support to item description Cart now gets loaded in the background, poorly implemented I presume --- front/package-lock.json | 58 ++++--- front/package.json | 1 + front/public/beetle.jpg | Bin 0 -> 70532 bytes front/public/spinner.svg | 1 + front/src/App.svelte | 46 +++-- front/src/components/BasketItem.svelte | 5 +- front/src/lib/cart.ts | 53 +++--- front/src/lib/test-api.ts | 3 +- front/src/lib/test-data.ts | 45 +++-- front/src/pages/PageAbout.svelte | 19 ++- front/src/pages/PageCart.svelte | 40 +++-- front/src/pages/PageItem.svelte | 228 ++++++++++++++++++++----- front/src/styles/_navigation_bar.scss | 5 +- front/src/styles/_reset.scss | 1 - 14 files changed, 365 insertions(+), 140 deletions(-) create mode 100644 front/public/beetle.jpg create mode 100644 front/public/spinner.svg diff --git a/front/package-lock.json b/front/package-lock.json index 2abbd70..5c77bac 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "dependencies": { "leaflet": "^1.9.4", + "svelte-markdown": "^0.4.1", "svelte-spa-router": "^4.0.1" }, "devDependencies": { @@ -24,7 +25,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -405,7 +405,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -419,7 +418,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -428,7 +426,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -436,14 +433,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -699,8 +694,7 @@ "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/geojson": { "version": "7946.0.14", @@ -717,11 +711,15 @@ "@types/geojson": "*" } }, + "node_modules/@types/marked": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-5.0.2.tgz", + "integrity": "sha512-OucS4KMHhFzhz27KxmWg7J+kIYqyqoW5kdIEI319hqARQQUTqhao3M/F+uFnDXD0Rg72iDDZxZNxq5gvctmLlg==" + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -746,7 +744,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -755,7 +752,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -812,7 +808,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", "@types/estree": "^1.0.1", @@ -825,7 +820,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -864,7 +858,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, "engines": { "node": ">=6" } @@ -911,7 +904,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -1006,7 +998,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "dev": true, "dependencies": { "@types/estree": "*" } @@ -1028,14 +1019,12 @@ "node_modules/locate-character": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" }, "node_modules/magic-string": { "version": "0.30.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz", "integrity": "sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -1043,11 +1032,21 @@ "node": ">=12" } }, + "node_modules/marked": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.2.tgz", + "integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 16" + } + }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/ms": { "version": "2.1.2", @@ -1086,7 +1085,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^3.0.0", @@ -1224,7 +1222,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1233,7 +1230,6 @@ "version": "4.2.14", "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.14.tgz", "integrity": "sha512-ry3+YlWqZpHxLy45MW4MZIxNdvB+Wl7p2nnstWKbOAewaJyNJuOtivSbRChcfIej6wFBjWqyKmf/NgK1uW2JAA==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", @@ -1266,6 +1262,18 @@ "svelte": "^3.19.0 || ^4.0.0" } }, + "node_modules/svelte-markdown": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/svelte-markdown/-/svelte-markdown-0.4.1.tgz", + "integrity": "sha512-pOlLY6EruKJaWI9my/2bKX8PdTeP5CM0s4VMmwmC2prlOkjAf+AOmTM4wW/l19Y6WZ87YmP8+ZCJCCwBChWjYw==", + "dependencies": { + "@types/marked": "^5.0.1", + "marked": "^5.1.2" + }, + "peerDependencies": { + "svelte": "^4.0.0" + } + }, "node_modules/svelte-spa-router": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-4.0.1.tgz", diff --git a/front/package.json b/front/package.json index c229f4a..1b109df 100644 --- a/front/package.json +++ b/front/package.json @@ -18,6 +18,7 @@ }, "dependencies": { "leaflet": "^1.9.4", + "svelte-markdown": "^0.4.1", "svelte-spa-router": "^4.0.1" } } diff --git a/front/public/beetle.jpg b/front/public/beetle.jpg new file mode 100644 index 0000000000000000000000000000000000000000..252a827862ffff20cb566b3db6715b89c70ccea2 GIT binary patch literal 70532 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 ygVn)hEMN+Pm<)K \ No newline at end of file diff --git a/front/src/App.svelte b/front/src/App.svelte index d2b5785..439ed0c 100644 --- a/front/src/App.svelte +++ b/front/src/App.svelte @@ -1,12 +1,12 @@
- {#if item.data.images} + {#if item.data.images && item.data.images[0]} Item {:else} - Item + Item {/if}
    diff --git a/front/src/lib/cart.ts b/front/src/lib/cart.ts index 0df5253..7e3314d 100644 --- a/front/src/lib/cart.ts +++ b/front/src/lib/cart.ts @@ -3,26 +3,34 @@ import { type Writable, get, writable } from "svelte/store"; import { type CartItem, type Item } from "./types"; import { getItemByUUID, postVerifyCart } from "./test-api"; -function getLocal(): Record { - let localData: Record = - JSON.parse(localStorage.getItem("basket")) || {}; - - postVerifyCart(localData) - .then((data: Record) => { - localData = data; - }) - .catch((error) => { - console.error("Could not load basket:", error); - return >{}; - }); - - return localData; -} - function createCartStore() { - const cart: Writable> = writable(getLocal()); + let loaded = false; + + const cart: Writable> = writable({}); + + async function init() { + let localData: Record = {}; + try { + localData = JSON.parse(localStorage.getItem("basket")) || {}; + } catch { + console.error("Local Cart data fucked"); + } + + try { + const newData: Record = await postVerifyCart(localData); + cart.set(newData); + } catch (error) { + console.error("Could not load basket:", error); + } + + loaded = true; + } async function addToCart(uuid: string, amount: number) { + if (!loaded) { + return + } + if (get(cart)[uuid] !== undefined) { cart.update((cart: Record) => { cart[uuid].amount += amount; @@ -74,6 +82,10 @@ function createCartStore() { } function removeByUUID(uuid: string) { + if (!loaded) { + return + } + cart.update((cart) => { delete cart[uuid]; // skipcq: JS-0320 return cart; @@ -82,6 +94,7 @@ function createCartStore() { return { ...cart, + init, addToCart, getEntries, getUniqueLength, @@ -93,15 +106,11 @@ function createCartStore() { // Create store const Cart = createCartStore(); +export let cartLoaded = Cart.init() // Make sure to update localstorage on any changes Cart.subscribe((value) => { localStorage.setItem("basket", JSON.stringify(value)); }); -// Debug -// Cart.subscribe((value) => { -// console.log(value); -// }); - export default Cart; diff --git a/front/src/lib/test-api.ts b/front/src/lib/test-api.ts index 1f83027..b840970 100644 --- a/front/src/lib/test-api.ts +++ b/front/src/lib/test-api.ts @@ -138,5 +138,6 @@ export async function postVerifyCart( }); }); - return newCartData; + await fakeDelay(1); + return newCartData } diff --git a/front/src/lib/test-data.ts b/front/src/lib/test-data.ts index 59a9ed1..eceb1f7 100644 --- a/front/src/lib/test-data.ts +++ b/front/src/lib/test-data.ts @@ -1,48 +1,59 @@ -import type { Item } from "./types"; -import { Labels } from "./types"; +import { type Item, Labels } from "./types"; const TestData: Item[] = [ { uuid: "soap", name: "Bar of Soap", price: 69.99, + description: ` +Example + `, labels: [Labels.vegan, Labels.spicy], - description: "Example", }, { uuid: "sock", name: "Sock", price: 21, + description: ` +Example + `, labels: [Labels.vegan, Labels.fish, Labels.nut, Labels.spicy], - description: "Example", }, { uuid: "brick", name: "Brick", price: 0, + description: ` +Example + `, labels: [Labels.spicy], - description: "Example", }, { uuid: "toast", name: "Toast", price: 4382749832743, + description: ` +Example + `, labels: [Labels.gluten], - description: "Example", }, { uuid: "water", name: "water", price: 1, + description: ` +Example + `, labels: [Labels.fish], - description: "Example", }, { uuid: "mouldy_bread", name: "half eaten mouldy bread", price: -99, + description: ` +Example + `, labels: [Labels.nut], - description: "Example", }, { uuid: "gwagwa", @@ -55,17 +66,27 @@ const TestData: Item[] = [ uuid: "hogmelon", name: "Hogermellon", price: 1111, - labels: [Labels.fish], - images: ["/item_images/wathog.jpg"], - description: "Example", + description: ` +This is a sample description. Gay Balls. + +Contains the following: +- hog +- melon + `, + labels: [Labels.nut, Labels.gluten, Labels.spicy, Labels.fish], + images: ["/item_images/wathog.jpg","/item_images/sonichog.jpg"], }, { uuid: "bluhog", name: "Blue HOGGGGG", price: 0, + description: ` +This is a sample description. + +Gay Balls + `, labels: [Labels.nut, Labels.gluten, Labels.spicy], images: ["/item_images/sonichog.jpg"], - description: "Example", }, ]; diff --git a/front/src/pages/PageAbout.svelte b/front/src/pages/PageAbout.svelte index 8211c77..1315859 100644 --- a/front/src/pages/PageAbout.svelte +++ b/front/src/pages/PageAbout.svelte @@ -1,10 +1,13 @@

    Our story

    - +

    How it all started

    Lorem ipsum dolor, sit amet consectetur adipisicing elit. At deserunt est quos dicta ipsa! Soluta laudantium dolore temporibus nisi aspernatur expedita vel, unde natus a nulla rerum officiis optio neque.

    @@ -15,7 +18,7 @@
    - +

    The hard times

    Lorem ipsum dolor, sit amet consectetur adipisicing elit. At deserunt est quos dicta ipsa! Soluta laudantium dolore temporibus nisi aspernatur expedita vel, unde natus a nulla rerum officiis optio neque.

    @@ -25,7 +28,7 @@
    - +

    Whats next

    Lorem ipsum dolor, sit amet consectetur adipisicing elit. At deserunt est quos dicta ipsa! Soluta laudantium dolore temporibus nisi aspernatur expedita vel, unde natus a nulla rerum officiis optio neque.

    @@ -33,6 +36,16 @@
    +
    + + +
    +

    Our Chef

    +

    Lorem ipsum dolor, sit amet consectetur adipisicing elit. At deserunt est quos dicta ipsa! Soluta laudantium dolore temporibus nisi aspernatur expedita vel, unde natus a nulla rerum officiis optio neque.

    +

    Lorem ipsum dolor, sit amet consectetur adipisicing elit. At deserunt est quos dicta ipsa! Soluta laudantium dolore temporibus nisi aspernatur expedita vel, unde natus a nulla rerum officiis optio neque.

    +
    +
    + \ No newline at end of file diff --git a/front/src/styles/_navigation_bar.scss b/front/src/styles/_navigation_bar.scss index 64af487..4b31bd3 100644 --- a/front/src/styles/_navigation_bar.scss +++ b/front/src/styles/_navigation_bar.scss @@ -61,6 +61,10 @@ nav { border-radius: $border-radius-circle; background-color: $color-light; color: $color-on-light; + + img { + width: 10px; + } } } @@ -86,7 +90,6 @@ nav { > img { height: calc($sizing-navigation-height - calc(2 * $spacing-small)); - display: block; } } diff --git a/front/src/styles/_reset.scss b/front/src/styles/_reset.scss index c5c09b1..448f0df 100644 --- a/front/src/styles/_reset.scss +++ b/front/src/styles/_reset.scss @@ -21,7 +21,6 @@ body, body { background-color: darken($color-background, 10%); - //background-color: $color-background; background-image: url("/assets/Noise.png"); color: $color-on-background; }