diff --git a/apps/website/src/components/atoms/Image.svelte b/apps/website/src/components/atoms/Image.svelte index 405bda6..bdbd00b 100644 --- a/apps/website/src/components/atoms/Image.svelte +++ b/apps/website/src/components/atoms/Image.svelte @@ -5,82 +5,51 @@ export let id: string = undefined export let sizeKey: string = undefined export let sizes: Sizes = undefined - export let width: number = sizes && sizes.medium && sizes.medium.width - export let height: number = sizes && sizes.medium && sizes.medium.height + export let width: number = sizes?.medium?.width + export let height: number = sizes?.medium?.height export let ratio: number = undefined export let alt: string export let lazy = true export let decoding: 'auto' | 'sync' | 'async' = 'auto' interface Sizes { - small?: { width?: number, height?: number } - medium?: { width?: number, height?: number } - large?: { width?: number, height?: number } + small?: { width?: number; height?: number } + medium?: { width?: number; height?: number } + large?: { width?: number; height?: number } } - let srcSet = { webp: [], jpg: [] } - - - /** - * Define height from origin ratio if not defined - */ - const setHeightFromRatio = (w: number, r: number = ratio) => { - return Math.round(w / r) - } + const setHeightFromRatio = (w: number, r: number = ratio) => Math.round(w / r) if (ratio && !height) { - // Set height from width using ratio height = setHeightFromRatio(width) - - // Add height to all sizes if (sizes) { - Object.entries(sizes).forEach(size => { - const [key, value]: [string, { width?: number, height?: number }] = size + for (const [key, value] of Object.entries(sizes)) { sizes[key].height = setHeightFromRatio(value.width) - }) + } } } - - /** - * Image attributes - */ - $: imgWidth = sizes && sizes.small ? sizes.small.width : width - $: imgHeight = sizes && sizes.small ? sizes.small.height : height - $: imgSrc = id ? getAssetUrlKey(id, `${sizeKey}-small-jpg`) : src ? src : undefined - $: srcSet = { - // WebP - webp: sizes - ? [ - `${getAssetUrlKey(id, `${sizeKey}-small-webp`)} 345w`, - sizes.medium ? `${getAssetUrlKey(id, `${sizeKey}-medium-webp`)} 768w` : null, - sizes.large ? `${getAssetUrlKey(id, `${sizeKey}-large-webp`)} 1280w` : null, - ] - : [getAssetUrlKey(id, `${sizeKey}-webp`)], - // JPG - jpg: sizes - ? [ - `${getAssetUrlKey(id, `${sizeKey}-small-jpg`)} 345w`, - sizes.medium ? `${getAssetUrlKey(id, `${sizeKey}-medium-jpg`)} 768w` : null, - sizes.large ? `${getAssetUrlKey(id, `${sizeKey}-large-jpg`)} 1280w` : null, - ] - : [getAssetUrlKey(id, `${sizeKey}-jpg`)] - } + $: imgWidth = sizes?.small?.width || width + $: imgHeight = sizes?.small?.height || height + $: imgSrc = id ? getAssetUrlKey(id, `${sizeKey}-small`) : src + $: srcSet = sizes + ? [ + `${getAssetUrlKey(id, `${sizeKey}-small`)} 345w`, + sizes.medium && `${getAssetUrlKey(id, `${sizeKey}-medium`)} 768w`, + sizes.large && `${getAssetUrlKey(id, `${sizeKey}-large`)} 1280w`, + ] + : [getAssetUrlKey(id, sizeKey)] - - + \ No newline at end of file diff --git a/apps/website/src/routes/(site)/about/+page.svelte b/apps/website/src/routes/(site)/about/+page.svelte index 6eaa4b8..7c030e4 100644 --- a/apps/website/src/routes/(site)/about/+page.svelte +++ b/apps/website/src/routes/(site)/about/+page.svelte @@ -221,7 +221,7 @@ {about.intro_firstphoto_caption}
in - {about.intro_firstlocation.country.flag.title} + {about.intro_firstlocation.country.flag.title} Naarm Australia (Melbourne) diff --git a/apps/website/src/routes/(site)/feed/products.xml/+server.ts b/apps/website/src/routes/(site)/feed/products.xml/+server.ts index cd0ef34..8212367 100644 --- a/apps/website/src/routes/(site)/feed/products.xml/+server.ts +++ b/apps/website/src/routes/(site)/feed/products.xml/+server.ts @@ -47,7 +47,7 @@ export const GET = async ({ url, setHeaders }) => { slug: siteProduct.location.slug, description: siteProduct.description, price: product.price, - images: siteProduct.photos_product.map(({ directus_files_id: { id } }: any) => getAssetUrlKey(id, `product-large-jpg`)), + images: siteProduct.photos_product.map(({ directus_files_id: { id } }: any) => getAssetUrlKey(id, `product-large`)), gCategory: category.value, gType: category.type, })