mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-02-25 03:17:23 -08:00
* add groupSlug to most routes * fixed more routing issues * fixed jank and incorrect routes * remove public explore links * remove unused groupSlug and explore routes * nuked explore pages * fixed public toolstore bug * fixed various routes missing group slug * restored public app header menu * fix janky login redirect * 404 recipe API call returns to login * removed unused explore layout * force redirect when using the wrong group slug * fixed dead admin links * removed unused middleware from earlier attempt * 🧹 * improve cookbooks sidebar fixed sidebar link not working fixed sidebar link target hide cookbooks header when there are none * added group slug to user * fix $auth typehints * vastly simplified groupSlug logic * allow logged-in users to view other groups * fixed some edgecases that bypassed isOwnGroup * fixed static home ref * 🧹 * fixed redirect logic * lint warning * removed group slug from group and user pages refactored all components to use route groupSlug or user group slug moved some group pages to recipe pages * fixed some bad types * 🧹 * moved groupSlug routes under /g/groupSlug * move /recipe/ to /r/ * fix backend url generation and metadata injection * moved shopping lists to root/other route fixes * changed shared from /recipes/ to /r/ * fixed 404 redirect not awaiting * removed unused import * fix doc links * fix public recipe setting not affecting public API * fixed backend tests * fix nuxt-generate command --------- Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
73 lines
2.0 KiB
Vue
73 lines
2.0 KiB
Vue
<template>
|
|
<div>
|
|
<RecipeIngredients
|
|
:value="recipe.recipeIngredient"
|
|
:scale="scale"
|
|
:disable-amount="recipe.settings.disableAmount"
|
|
/>
|
|
<div v-if="!isEditMode && recipe.tools && recipe.tools.length > 0">
|
|
<h2 class="mb-2 mt-4">{{ $t('tool.required-tools') }}</h2>
|
|
<v-list-item v-for="(tool, index) in recipe.tools" :key="index" dense>
|
|
<v-checkbox
|
|
v-model="recipe.tools[index].onHand"
|
|
hide-details
|
|
class="pt-0 my-auto py-auto"
|
|
color="secondary"
|
|
@change="updateTool(index)"
|
|
>
|
|
</v-checkbox>
|
|
<v-list-item-content>
|
|
{{ tool.name }}
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import { defineComponent } from "@nuxtjs/composition-api";
|
|
import { useLoggedInState } from "~/composables/use-logged-in-state";
|
|
import { usePageState, usePageUser } from "~/composables/recipe-page/shared-state";
|
|
import { useToolStore } from "~/composables/store";
|
|
import { NoUndefinedField } from "~/lib/api/types/non-generated";
|
|
import { Recipe } from "~/lib/api/types/recipe";
|
|
import RecipeIngredients from "~/components/Domain/Recipe/RecipeIngredients.vue";
|
|
|
|
export default defineComponent({
|
|
components: {
|
|
RecipeIngredients,
|
|
},
|
|
props: {
|
|
recipe: {
|
|
type: Object as () => NoUndefinedField<Recipe>,
|
|
required: true,
|
|
},
|
|
scale: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
},
|
|
setup(props) {
|
|
const { isOwnGroup } = useLoggedInState();
|
|
|
|
const toolStore = isOwnGroup.value ? useToolStore() : null;
|
|
const { user } = usePageUser();
|
|
const { isEditMode } = usePageState(props.recipe.slug);
|
|
|
|
function updateTool(index: number) {
|
|
if (user.id && toolStore) {
|
|
toolStore.actions.updateOne(props.recipe.tools[index]);
|
|
} else {
|
|
console.log("no user, skipping server update");
|
|
}
|
|
}
|
|
|
|
return {
|
|
toolStore,
|
|
isEditMode,
|
|
updateTool,
|
|
};
|
|
},
|
|
});
|
|
</script>
|