From dbb2575209258650e9a660a18e88ef3f359d0209 Mon Sep 17 00:00:00 2001 From: nurRiyad Date: Sat, 5 Aug 2023 16:30:19 +0600 Subject: [PATCH] Add search options for blog list page Signed-off-by: nurRiyad --- package.json | 1 + pages/blogs/index.vue | 24 ++++++++++++++++++++++-- tailwind.config.js | 2 +- yarn.lock | 12 ++++++++++++ 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index f00b4ea..6b3d855 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@nuxtjs/fontaine": "^0.2.5", "@nuxtjs/robots": "^3.0.0", "@nuxtjs/tailwindcss": "^6.6.7", + "@tailwindcss/forms": "^0.5.4", "@tailwindcss/typography": "^0.5.9", "eslint": "^8.39.0", "nuxt": "^3.6.5", diff --git a/pages/blogs/index.vue b/pages/blogs/index.vue index 37b1260..678581e 100644 --- a/pages/blogs/index.vue +++ b/pages/blogs/index.vue @@ -3,6 +3,7 @@ const { data } = await useAsyncData('home', () => queryContent('/blogs').sort({ const elementPerPgae = ref(4) const pageNumber = ref(1) +const searchTest = ref('') const formatedData = computed(() => { return data.value?.map((articles) => { @@ -20,8 +21,17 @@ const formatedData = computed(() => { }) || [] }) +const searchData = computed(() => { + return formatedData.value.filter((data) => { + const lowerTitle = data.title.toLocaleLowerCase() + if (lowerTitle.search(searchTest.value) !== -1) + return true + else return false + }) || [] +}) + const paginatedData = computed(() => { - return formatedData.value.filter((data, idx) => { + return searchData.value.filter((data, idx) => { const startInd = ((pageNumber.value - 1) * elementPerPgae.value) const endInd = (pageNumber.value * elementPerPgae.value) - 1 @@ -37,7 +47,7 @@ function onPreviousPageClick() { } const totalPage = computed(() => { - const ttlContent = formatedData.value.length || 0 + const ttlContent = searchData.value.length || 0 const totalPage = Math.ceil(ttlContent / elementPerPgae.value) return totalPage }) @@ -62,6 +72,16 @@ useHead({