fix: Search layout fixes (#7459)

This commit is contained in:
Michael Genson
2026-04-13 10:56:19 -05:00
committed by GitHub
parent daa0b9728b
commit 4e5a2f9fb5
3 changed files with 51 additions and 55 deletions

View File

@@ -2,7 +2,7 @@
## Project Overview ## Project Overview
Mealie is a self-hosted recipe manager, meal planner, and shopping list application with a FastAPI backend (Python 3.12) and Nuxt 3 frontend (Vue 3 + TypeScript). It uses SQLAlchemy ORM with support for SQLite and PostgreSQL databases. Mealie is a self-hosted recipe manager, meal planner, and shopping list application with a FastAPI backend (Python 3.12) and Nuxt 4 frontend (Vue 3 + TypeScript). It uses SQLAlchemy ORM with support for SQLite and PostgreSQL databases.
**Development vs Production:** **Development vs Production:**
- **Development:** Frontend (port 3000) and backend (port 9000) run as separate processes - **Development:** Frontend (port 3000) and backend (port 9000) run as separate processes
@@ -51,7 +51,7 @@ Mealie is a self-hosted recipe manager, meal planner, and shopping list applicat
- Use `useAuthBackend()` for authentication state, `useMealieAuth()` for user management - Use `useAuthBackend()` for authentication state, `useMealieAuth()` for user management
**State Management:** **State Management:**
- Nuxt 3 composables for state (no Vuex) - Nuxt 4 composables for state (no Vuex)
- Auth state via `use-mealie-auth.ts` composable - Auth state via `use-mealie-auth.ts` composable
- Prefer composables over global state stores - Prefer composables over global state stores

View File

@@ -7,12 +7,13 @@
content-class="top-dialog" content-class="top-dialog"
:scrollable="false" :scrollable="false"
> >
<v-app-bar <v-card
sticky
dark
color="primary-lighten-1 top-0 position-relative left-0"
:rounded="!$vuetify.display.xs" :rounded="!$vuetify.display.xs"
style="width: 100%;" :loading="loading"
>
<v-toolbar
dark
color="primary-lighten-1"
> >
<v-text-field <v-text-field
id="arrow-search" id="arrow-search"
@@ -41,19 +42,15 @@
{{ $globals.icons.close }} {{ $globals.icons.close }}
</v-icon> </v-icon>
</v-btn> </v-btn>
</v-app-bar> </v-toolbar>
<v-card
class="position-relative mt-1 pa-1 scroll"
max-height="700px"
relative
:loading="loading"
>
<v-card-actions> <v-card-actions>
<div class="mr-auto"> <div class="mr-auto">
{{ $t("search.results") }} {{ $t("search.results") }}
</div> </div>
</v-card-actions> </v-card-actions>
<div class="scroll pa-1" style="max-height: 700px;">
<RecipeCardMobile <RecipeCardMobile
v-for="(recipe, index) in search.data.value" v-for="(recipe, index) in search.data.value"
:key="index" :key="index"
@@ -67,6 +64,7 @@
:recipe-id="recipe.id ?? ''" :recipe-id="recipe.id ?? ''"
v-bind="$attrs.selected ? { selected: () => handleSelect(recipe) } : {}" v-bind="$attrs.selected ? { selected: () => handleSelect(recipe) } : {}"
/> />
</div>
</v-card> </v-card>
</v-dialog> </v-dialog>
</div> </div>

View File

@@ -79,7 +79,6 @@
<v-virtual-scroll <v-virtual-scroll
:items="filtered" :items="filtered"
height="300" height="300"
item-height="51"
> >
<template #default="{ item }"> <template #default="{ item }">
<v-list-item <v-list-item
@@ -108,7 +107,6 @@
<v-virtual-scroll <v-virtual-scroll
:items="filtered" :items="filtered"
height="300" height="300"
item-height="51"
> >
<template #default="{ item }"> <template #default="{ item }">
<v-list-item <v-list-item