Skip to content

Commit

Permalink
Merge pull request #43 from umgefahren/reach-search
Browse files Browse the repository at this point in the history
Add some navigation
  • Loading branch information
Zollerboy1 authored Oct 15, 2022
2 parents 832193f + 6c1664b commit 006bc52
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 39 deletions.
2 changes: 1 addition & 1 deletion components/ingredientSelectItem.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<template>
<div
@click="toggle"
class="card md:w-56 w-32 md:h-56 h-44 bg-primary shadow-xl m-4 text-white hover:scale-110 ease-in duration-[50ms]"
class="card md:w-56 w-32 md:h-56 h-44 bg-primary shadow-xl m-4 text-white hover:scale-110 ease-in duration-[50ms] cursor-pointer"
:class="{ 'bg-secondary': selected }"
>
<div class="place-content-center items-center card-body">
Expand Down
20 changes: 19 additions & 1 deletion pages/cocktail/[slug].vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
<template>
<Cocktail :cocktail="cocktail" />
<div>
<div class="absolute top-0 navbar mb-8 px-8 py-4 z-50">
<button @click="back" class="btn btn-ghost">
<font-awesome-icon icon="fa-solid fa-arrow-left" />
</button>
</div>
<Cocktail :cocktail="cocktail" />
</div>
</template>

<script>
export default {
methods: {
back(event) {
const router = useRouter()
router.back()
}
}
}
</script>

<script setup>
import Cocktail from '~~/components/cocktail.vue'
Expand Down
43 changes: 14 additions & 29 deletions pages/index.vue
Original file line number Diff line number Diff line change
@@ -1,41 +1,26 @@
<template>
<div class="mb-5">
<div class="sticky top-0 navbar bg-base-100 mb-8 border-b-[0.5px] px-8 z-50">
<div class="flex-1">
<a href="#" class="btn btn-ghost normal-case text-white mt-5 text-4xl">Cocktail Coach</a>
<div class="sticky top-0 navbar bg-base-100 mb-12 border-b-[0.5px] px-8 py-4 z-50">
<div class="flex-grow">
<a href="#" class="btn btn-ghost normal-case text-white text-4xl">Cocktail Coach</a>
</div>
<div class="flex-none">
<div class="flex-none gap-2">
<NuxtLink to="/ingredients" class="btn btn-ghost normal-case">
My Ingredients
</NuxtLink>
<div class="form-control">
<input type="text" placeholder="Search Cocktail" class="input input-bordered text-white" @focus="search">
</div>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8 md:gap-10 lg:gap-12 mx-8">
<a :href="`/cocktail/${recommendations.month.slug}`" class="card w-full shadow-xl group transition-[background-size] bg-center bg-[length:100%_auto] hover:bg-[length:105%_auto]" :style="{
'background-image': 'url(' + recommendations.month.drinkThumb + ')'
}">
<div class="absolute w-full h-full bg-black transition-[background-opacity] bg-opacity-50 group-hover:bg-opacity-70 z-10"></div>
<div class="card-body z-20">
<h2 class="card-title text-white">Cocktail of the Month</h2>
<p>{{ recommendations.month.name }}</p>
</div>
</a>
<a :href="`/cocktail/${recommendations.week.slug}`" class="card w-full shadow-xl group transition-[background-size] bg-center bg-[length:100%_auto] hover:bg-[length:105%_auto]" :style="{
'background-image': 'url(' + recommendations.week.drinkThumb + ')'
}">
<a :href="`/cocktail/${recommendation.slug}`" class="card w-full shadow-xl group transition-[background-size] bg-center bg-[length:100%_auto] hover:bg-[length:105%_auto]" :style="{
'background-image': 'url(' + recommendation.drinkThumb + ')'
}" v-for="(recommendation, key) in {'Month': recommendations.month, 'Week': recommendations.week, 'Day': recommendations.day}">
<div class="absolute w-full h-full bg-black transition-[background-opacity] bg-opacity-50 group-hover:bg-opacity-70 z-10"></div>
<div class="card-body z-20">
<h2 class="card-title text-white">Cocktail of the Week</h2>
<p>{{ recommendations.week.name }}</p>
</div>
</a>
<a :href="`/cocktail/${recommendations.day.slug}`" class="card w-full shadow-xl group transition-[background-size] bg-center bg-[length:100%_auto] hover:bg-[length:105%_auto]" :style="{
'background-image': 'url(' + recommendations.day.drinkThumb + ')'
}">
<div class="absolute w-full h-full bg-black transition-[background-opacity] bg-opacity-50 group-hover:bg-opacity-70 z-10"></div>
<div class="card-body z-20">
<h2 class="card-title text-white">Cocktail of the Day</h2>
<p>{{ recommendations.day.name }}</p>
<div class="card-body z-20 py-10">
<h2 class="card-title text-white">Cocktail of the {{ key }}</h2>
<p>{{ recommendation.name }}</p>
</div>
</a>
<a href="/cocktail/random" class="card w-full shadow-xl group transition-[background-size] bg-center bg-[length:100%_auto] hover:bg-[length:105%_auto]" :style="{
Expand All @@ -58,7 +43,7 @@ export default {
search(event) {
console.log('Foo')
const router = useRouter();
//router.push('/search')
router.push('/search')
}
}
}
Expand Down
35 changes: 33 additions & 2 deletions pages/ingredients.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
<template>
<div class="sticky top-0 navbar bg-base-100 mb-8 border-b-[0.5px] px-8 py-4 z-50">
<div class="flex-grow">
<button @click="back" class="btn btn-ghost">
<font-awesome-icon icon="fa-solid fa-arrow-left" />
</button>
<h1 class="text-2xl ml-2">
Ingredients
</h1>
</div>
<div class="form-control">
<input type="text" placeholder="Search Cocktail" class="input input-bordered text-white" @focus="search">
</div>
</div>
<div class="container mx-auto px-4">
<h1 class="text-center text-5xl font-bold my-8">Ingredients</h1>
<p class="text-center text-2xl">
<h2 class="text-center mb-2 text-2xl">
Select the ingredients you have available
</h2>
<p class="text-center">
They will be persisted in your local browser storage
</p>
<div class="container mx-auto max-w-6xl">
<ais-instant-search
Expand Down Expand Up @@ -53,6 +68,22 @@
</div>
</template>

<script>
export default {
methods: {
back(event) {
const router = useRouter()
router.back()
},
search(event) {
console.log('Foo')
const router = useRouter();
router.push('/search')
}
}
}
</script>

<script setup>
import {
AisInstantSearch,
Expand Down
42 changes: 36 additions & 6 deletions pages/search.vue
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
<template>
<ais-instant-search :search-client="client" index-name="drinks" class="w-full">
<ais-instant-search :search-client="client" :search-function="searchFunction" index-name="drinks" class="w-full">
<ais-configure :hits-per-page.camel="10" :distinct="true" :analytics="false" :enable-personalization.camel="true" />
<div class="sticky top-0 px-5 py-2 mb-2 bg-base-100 z-50">
<div class="sticky top-0 px-5 py-2 bg-base-100 z-50 border-b-[0.5px]">
<div class="navbar">
<div>
<button @click="back" class="btn btn-ghost">
<font-awesome-icon icon="fa-solid fa-arrow-left" />
</button>
</div>
<div class="dropdown">
<label tabindex="0" class="btn btn-ghost">
<font-awesome-icon icon="fa-solid fa-bars" />
</label>
<div tabindex="0" class="mt-3 p-2 menu menu-compact dropdown-content bg-base-100 rounded-box w-52">
<ais-clear-refinements/>
<ais-refinement-list operator="and" show-more :limit="5" :show-more-limit="15" attribute="ingredients" :class-names="{
<ais-clear-refinements
operator="or" show-more :limit="5" :show-more-limit="15" attribute="ingredients" :class-names="{
'ais-RefinementList-labelText': 'text-white mx-2'
}"/>
}" />
</div>
</div>
<ais-search-box class="flex-grow">
<template v-slot="{ currentRefinement, isSearchStalled, refine }">
<div class="form-control w-full">
<input type="text" :value="currentRefinement" @input="refine($event.currentTarget.value)" placeholder="Search" class="input input-bordered text-white" />
<input type="text" :value="currentRefinement" @input="refine($event.currentTarget.value)" placeholder="Search" class="input input-bordered text-white" autofocus />
</div>
</template>
</ais-search-box>
Expand Down Expand Up @@ -59,6 +64,26 @@
</ais-instant-search>
</template>

<script>
export default {
data() {
return {
searchFunction(helper) {
console.log('Foo')
helper.search()
},
}
},
methods: {
back(event) {
const router = useRouter()
router.back()
}
}
}
</script>

<script setup>
import {
AisInstantSearch,
Expand All @@ -71,7 +96,12 @@ import {
AisVoiceSearch,
AisConfigure
} from 'vue-instantsearch/vue3/es'
import { useStore } from '~/stores/state'
import ListCocktail from '~~/components/list-cocktail.vue'
const client = useMeilisearchClient()
const store = useStore()
const selected = computed(() => store.selectedIngredients)
</script>

0 comments on commit 006bc52

Please sign in to comment.