mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-03 18:53:17 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type { Composer } from "vue-i18n";
 | 
						|
import { useReadOnlyStore, useStore } from "../partials/use-store-factory";
 | 
						|
import type { ReadCookBook, UpdateCookBook } from "~/lib/api/types/cookbook";
 | 
						|
import { usePublicExploreApi, useUserApi } from "~/composables/api";
 | 
						|
 | 
						|
const cookbooks: Ref<ReadCookBook[]> = ref([]);
 | 
						|
const loading = ref(false);
 | 
						|
const publicLoading = ref(false);
 | 
						|
 | 
						|
export const useCookbookStore = function (i18n?: Composer) {
 | 
						|
  const api = useUserApi(i18n);
 | 
						|
  const store = useStore<ReadCookBook>(cookbooks, loading, api.cookbooks);
 | 
						|
 | 
						|
  const updateAll = async function (updateData: UpdateCookBook[]) {
 | 
						|
    loading.value = true;
 | 
						|
    updateData.forEach((cookbook, index) => {
 | 
						|
      cookbook.position = index;
 | 
						|
    });
 | 
						|
    const { data } = await api.cookbooks.updateAll(updateData);
 | 
						|
    loading.value = false;
 | 
						|
    return data;
 | 
						|
  };
 | 
						|
  return { ...store, updateAll };
 | 
						|
};
 | 
						|
 | 
						|
export const usePublicCookbookStore = function (groupSlug: string, i18n?: Composer) {
 | 
						|
  const api = usePublicExploreApi(groupSlug, i18n).explore;
 | 
						|
  return useReadOnlyStore<ReadCookBook>(cookbooks, publicLoading, api.cookbooks);
 | 
						|
};
 |