+
π² ζ₯ηηη»εεΊηθθ°±ε§οΌ
@@ -184,63 +186,3 @@ const clickTool = (item: StuffItem) => {
-
-
diff --git a/src/components/Switch.vue b/src/components/Switch.vue
new file mode 100644
index 0000000..27115d3
--- /dev/null
+++ b/src/components/Switch.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+ ε―εηζζθ
+
+
+
+ δΈθ΅·εδΈιθ
+
+
+
+
+
diff --git a/src/components/DishTag.vue b/src/components/tags/DishTag.vue
similarity index 100%
rename from src/components/DishTag.vue
rename to src/components/tags/DishTag.vue
diff --git a/src/components/MeatTag.vue b/src/components/tags/MeatTag.vue
similarity index 100%
rename from src/components/MeatTag.vue
rename to src/components/tags/MeatTag.vue
diff --git a/src/components/StapleTag.vue b/src/components/tags/StapleTag.vue
similarity index 100%
rename from src/components/StapleTag.vue
rename to src/components/tags/StapleTag.vue
diff --git a/src/components/ToolTag.vue b/src/components/tags/ToolTag.vue
similarity index 100%
rename from src/components/ToolTag.vue
rename to src/components/tags/ToolTag.vue
diff --git a/src/components/VegetableTag.vue b/src/components/tags/VegetableTag.vue
similarity index 100%
rename from src/components/VegetableTag.vue
rename to src/components/tags/VegetableTag.vue
diff --git a/src/composables/helper.ts b/src/composables/helper.ts
new file mode 100644
index 0000000..414dd8b
--- /dev/null
+++ b/src/composables/helper.ts
@@ -0,0 +1,27 @@
+import { useElementBounding, useIntersectionObserver } from '@vueuse/core'
+import type { Ref } from 'vue'
+import { ref } from 'vue'
+
+/**
+ * trigger show invisible element
+ * @param target
+ * @returns
+ */
+export function useInvisibleElement(target: Ref
) {
+ const isVisible = ref(false)
+ const { top } = useElementBounding(target)
+ useIntersectionObserver(target, ([{ isIntersecting }]) => {
+ isVisible.value = isIntersecting
+ })
+
+ const show = () => {
+ // scroll when collapse is not visible
+ if (!isVisible.value)
+ window.scrollTo(0, top.value)
+ }
+
+ return {
+ isVisible,
+ show,
+ }
+}
diff --git a/src/stores/recipe.ts b/src/stores/recipe.ts
index 7105274..de3105b 100644
--- a/src/stores/recipe.ts
+++ b/src/stores/recipe.ts
@@ -1,6 +1,8 @@
import { acceptHMRUpdate, defineStore } from 'pinia'
export const useRecipeStore = defineStore('recipe', () => {
+ const strict = ref(true)
+
const curStuff = ref(new Set())
const curTools = ref(new Set())
@@ -34,6 +36,7 @@ export const useRecipeStore = defineStore('recipe', () => {
}
return {
+ strict,
selectedTools,
selectedStuff,
toggleStuff,