From 9067e67adc8804ec2a955d18e4826ca78cd8da21 Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Thu, 29 Dec 2022 23:52:12 +0100 Subject: [PATCH] Warehouse gets image upload, edit images and all properties of product --- src/lib/components/ImageUpload.svelte | 174 ++++++++++++++++++ src/lib/interfaces/IProduct.ts | 1 + src/routes/warehouse/+page.svelte | 12 +- .../warehouse/WarehouseProductList.svelte | 19 +- src/routes/warehouse/[id]/+page.server.ts | 20 +- src/routes/warehouse/[id]/+page.svelte | 102 +++++++--- .../warehouse/[id]/DetailsSection.svelte | 148 +++++++++++++-- .../warehouse/[id]/PricingSection.svelte | 128 +++++-------- .../warehouse/[id]/edit/+page.server.ts | 9 +- src/routes/warehouse/[id]/edit/+page.svelte | 8 +- 10 files changed, 454 insertions(+), 167 deletions(-) create mode 100644 src/lib/components/ImageUpload.svelte diff --git a/src/lib/components/ImageUpload.svelte b/src/lib/components/ImageUpload.svelte new file mode 100644 index 0000000..a315a70 --- /dev/null +++ b/src/lib/components/ImageUpload.svelte @@ -0,0 +1,174 @@ + + +
+ {#if !dragOver} +

Click or drag images here to upload

+ {:else} +

Drop image(s) to add to uploads

+ {/if} +
+ + +{#if hasFiles} + Files found to upload: + +
+ {#each fileInput.files || [] as file} + + {/each} +
+ +
+
+{/if} + + diff --git a/src/lib/interfaces/IProduct.ts b/src/lib/interfaces/IProduct.ts index 2b91703..1f3481b 100644 --- a/src/lib/interfaces/IProduct.ts +++ b/src/lib/interfaces/IProduct.ts @@ -4,6 +4,7 @@ export interface IProduct { subtext?: string; description?: string; images?: IImage[]; + image?: string; primary_color?: string; variation_count?: string; diff --git a/src/routes/warehouse/+page.svelte b/src/routes/warehouse/+page.svelte index f000eb3..74d9231 100644 --- a/src/routes/warehouse/+page.svelte +++ b/src/routes/warehouse/+page.svelte @@ -2,6 +2,8 @@ import { goto } from '$app/navigation'; import ProductList from './WarehouseProductList.svelte'; import Button from '$lib/components/Button.svelte'; + import PageMeta from '$lib/components/PageMeta.svelte'; + import { buildApiUrl } from '$lib/utils/apiUrl'; import type { IProduct } from '$lib/interfaces/IProduct'; import type { PageData } from './$types'; @@ -9,22 +11,18 @@ const products = data.products as Array; async function createProduct() { - let url = '/api/product'; - if (window.location.href.includes('localhost')) { - url = 'http://localhost:30010'.concat(url); - } - + const url = buildApiUrl('/api/v1/product'); fetch(url, { method: 'POST' }) .then((resp) => resp.json()) .then((response) => { - console.log('response::', response); const { product } = response; - goto(`/warehouse/${product.product_no} `); + goto(`/warehouse/${product?.product_no} `); }); } console.log('warehouse:', products); +

Warehouse

diff --git a/src/routes/warehouse/WarehouseProductList.svelte b/src/routes/warehouse/WarehouseProductList.svelte index 76f1c01..d4f7ae7 100644 --- a/src/routes/warehouse/WarehouseProductList.svelte +++ b/src/routes/warehouse/WarehouseProductList.svelte @@ -51,7 +51,6 @@