Fixes: None; Extra: 1) Create Pinia stores for app, user, category, and company management; 2) Add utility functions for error handling and category slug lookups; 3) Include German locale file and robots.txt for improved SEO and accessibility; 4) Add SVG assets and improve general folder structure for better maintainability.
38 lines
No EOL
812 B
Vue
38 lines
No EOL
812 B
Vue
<template>
|
|
<div class="product" v-if="product">
|
|
<ui-title>{{ product?.name }}</ui-title>
|
|
<div class="container">
|
|
<div class="product__wrapper">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import {useProductBySlug} from "~/composables/products";
|
|
import {usePageTitle} from "~/composables/utils";
|
|
|
|
const route = useRoute()
|
|
|
|
const { setPageTitle } = usePageTitle()
|
|
|
|
const slug = route.params.slug as string
|
|
|
|
const { product } = await useProductBySlug(slug)
|
|
setPageTitle(product.value?.name ?? 'Product')
|
|
|
|
watch(
|
|
() => route.params.slug,
|
|
async (newSlug) => {
|
|
if (typeof newSlug === 'string') {
|
|
const { product } = await useProductBySlug(newSlug)
|
|
setPageTitle(product.value?.name ?? 'Product')
|
|
}
|
|
}
|
|
)
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
</style> |