mealie/frontend/composables/use-recipe-context.ts
2021-08-02 22:15:11 -08:00

38 lines
958 B
TypeScript

import { useAsync, ref } from "@nuxtjs/composition-api";
import { useApiSingleton } from "~/composables/use-api";
import { Recipe } from "~/types/api-types/recipe";
export const useRecipeContext = function () {
const api = useApiSingleton();
const loading = ref(false)
function getBySlug(slug: string) {
loading.value = true
const recipe = useAsync(async () => {
const { data } = await api.recipes.getOne(slug);
return data;
}, slug);
loading.value = false
return recipe;
}
async function deleteRecipe(slug: string) {
loading.value = true
const { data } = await api.recipes.deleteOne(slug);
loading.value = false
return data;
}
async function updateRecipe(slug: string, recipe: Recipe) {
loading.value = true
const { data } = await api.recipes.updateOne(slug, recipe);
loading.value = false
return data;
}
return {loading, getBySlug, deleteRecipe, updateRecipe}
};