diff --git a/bo/bun.lock b/bo/bun.lock
index ea69514..7481556 100644
--- a/bo/bun.lock
+++ b/bo/bun.lock
@@ -1,5 +1,6 @@
{
"lockfileVersion": 1,
+ "configVersion": 0,
"workspaces": {
"": {
"name": "bo",
diff --git a/bo/package.json b/bo/package.json
index 8f33741..b67b68d 100644
--- a/bo/package.json
+++ b/bo/package.json
@@ -13,21 +13,21 @@
"format": "prettier --write --experimental-cli src/"
},
"dependencies": {
- "@nuxt/ui": "^4.5.0",
- "@tailwindcss/vite": "^4.2.0",
+ "@nuxt/ui": "^4.6.0",
+ "@tailwindcss/vite": "^4.2.2",
"chart.js": "^4.5.1",
"pinia": "^3.0.4",
- "tailwindcss": "^4.2.0",
+ "tailwindcss": "^4.2.2",
"vue": "beta",
"vue-chartjs": "^5.3.3",
- "vue-i18n": "11",
- "vue-router": "^5.0.2"
+ "vue-i18n": "^11.3.0",
+ "vue-router": "^5.0.4"
},
"devDependencies": {
"@tsconfig/node24": "^24.0.4",
- "@types/node": "^24.10.13",
- "@vitejs/plugin-vue": "^6.0.4",
- "@vue/eslint-config-typescript": "^14.6.0",
+ "@types/node": "^24.12.0",
+ "@vitejs/plugin-vue": "^6.0.5",
+ "@vue/eslint-config-typescript": "^14.7.0",
"@vue/tsconfig": "^0.8.1",
"jiti": "^2.6.1",
"npm-run-all2": "^8.0.4",
@@ -35,8 +35,8 @@
"prettier": "3.8.1",
"typescript": "~5.9.3",
"vite": "beta",
- "vite-plugin-vue-devtools": "^8.0.6",
- "vue-tsc": "^3.2.4"
+ "vite-plugin-vue-devtools": "^8.1.1",
+ "vue-tsc": "^3.2.6"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
diff --git a/bo/src/components/admin/ProductDetailView.vue b/bo/src/components/admin/ProductDetailView.vue
index 2efe361..18aae93 100644
--- a/bo/src/components/admin/ProductDetailView.vue
+++ b/bo/src/components/admin/ProductDetailView.vue
@@ -3,53 +3,64 @@
Back to products
-
-
Translate from Polish to
-
-
-
-
- Select language
-
-
- {{availableLangs.find(x => x.id === modelValue)?.flag}}
-
- {{availableLangs.find(x => x.id === modelValue)?.name}}
+ class=" gap-4 mb-6 bg-(--second-light) dark:bg-(--main-dark) border border-(--border-light) dark:border-(--border-dark) p-4 rounded-md">
+
+
+
Translate from Polish to
+
+
+
+
+ Select language
-
-
-
-
-
-
- {{ item.flag }}
- {{ item.name }}
-
-
-
+
+ {{availableLangs.find(x => x.id === modelValue)?.flag}}
+
+ {{availableLangs.find(x => x.id === modelValue)?.name}}
+
+
+
+
+
+
+ {{ item.flag }}
+ {{ item.name }}
+
+
+
+
+
+
{
+ fetchForLanguage(toLangId)
+ isShowProductView = true
+ }" color="primary" v-if="isTranslations === false"
+ class="text-white bg-(--accent-blue-light) dark:bg-(--accent-blue-dark) px-12!">
+ Show product
+
+
+ Translate
+
+
+ {
+ toLangId = settingStore.shopDefaultLanguage
+ isTranslations = false
+ }" color="primary" class="text-white bg-(--accent-blue-light) dark:bg-(--accent-blue-dark) px-12!">
+ Cancel
+
+
+ Save
+
+
+
-
-
- Show product
-
-
- Translate
-
-
- {
- toLangId = settingStore.shopDefaultLanguage
- isTranslations = false
- }" color="primary" class="text-white bg-(--accent-blue-light) dark:bg-(--accent-blue-dark) px-12!">
- Cancel
-
-
+
- Save
+ Back
@@ -94,7 +105,6 @@
-
-
-
-
@@ -189,7 +196,6 @@ function backFromProduct() {
}
}
-
const route = useRoute()
const settingStore = useSettingsStore()
const productStore = useProductStore()
@@ -210,6 +216,8 @@ const descriptionRef = ref(null)
const descriptionEdit = useEditable(descriptionRef)
const originalDescription = ref('')
+const isShowProductView = ref(false)
+
const translateToSelectedLanguage = async () => {
if (toLangId.value && productID.value) {
translating.value = true
@@ -230,7 +238,6 @@ const fetchForLanguage = async (langId: number) => {
}
}
-
onMounted(async () => {
const id = route.params.product_id
if (id) {
@@ -239,7 +246,6 @@ onMounted(async () => {
}
})
-
// text edit
const enableEdit = () => {
if (usageRef.value) {
@@ -293,257 +299,4 @@ const cancelDescriptionEdit = () => {
}
descriptionEdit.disableEdit()
}
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file