diff --git a/src/components/WishlistHeader.vue b/src/components/WishlistHeader.vue index a4d90e6..d8e1aa4 100644 --- a/src/components/WishlistHeader.vue +++ b/src/components/WishlistHeader.vue @@ -61,19 +61,22 @@ diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 0000000..86c3b17 --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,10 @@ +export { default as BaseButton } from './BaseButton.vue' +export { default as Header } from './Header.vue' +export { default as ImagePreview } from './ImagePreview.vue' +export { default as ImageTile } from './ImageTile.vue' +export { default as InputCheckbox } from './InputCheckbox.vue' +export { default as InputText } from './InputText.vue' +export { default as InputTextArea } from './InputTextArea.vue' +export { default as Modal } from './Modal.vue' +export { default as WishlistHeader } from './WishlistHeader.vue' +export { default as WishlistItem } from './WishlistItem.vue' diff --git a/src/composables/useWishlistStore.ts b/src/composables/useWishlistStore.ts index ecf3250..d3800f1 100644 --- a/src/composables/useWishlistStore.ts +++ b/src/composables/useWishlistStore.ts @@ -1,7 +1,9 @@ -import { ref } from 'vue' +import { computed, ref } from 'vue' import useAxios, { CustomAxiosError } from '@/composables/useAxios' import { Wishlist, WishlistItem } from '@/types' +import { useEditMode } from './useEditMode' const { client } = useAxios() +const { isActive: editModeIsActive } = useEditMode() //@ts-expect-error ... const state = ref({}) @@ -43,6 +45,15 @@ const itemBought = async (item: WishlistItem): Promise => { item.bought = true } +const filteredItems = computed(() => { + if (!state.value || !state.value.items) { + return [] + } else if (editModeIsActive.value) { + return state.value.items + } + return state.value.items.filter((item: WishlistItem) => item.bought === false) +}) + export const useWishlistStore = () => { return { state, @@ -50,5 +61,6 @@ export const useWishlistStore = () => { fetch, update, itemBought, + filteredItems, } } diff --git a/src/views/DetailView.vue b/src/views/DetailView.vue index fff6cc4..8b27000 100644 --- a/src/views/DetailView.vue +++ b/src/views/DetailView.vue @@ -1,41 +1,19 @@