From 1b053975593ac3d523f2ddc41010b277a5d9f391 Mon Sep 17 00:00:00 2001 From: Benny Samir Hierl Date: Tue, 15 Feb 2022 21:11:13 +0100 Subject: [PATCH] component refactored Signed-off-by: Benny Samir Hierl --- src/components/WishlistHeader.vue | 42 +++++++++++++++++++---------- src/components/index.ts | 10 +++++++ src/composables/useWishlistStore.ts | 14 +++++++++- src/views/DetailView.vue | 42 ++++------------------------- 4 files changed, 56 insertions(+), 52 deletions(-) create mode 100644 src/components/index.ts 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 @@