mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-04 03:03:18 -05:00 
			
		
		
		
	Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com> Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { useUserApi } from "~/composables/api";
 | 
						|
import type { UserRatingSummary } from "~/lib/api/types/user";
 | 
						|
 | 
						|
const userRatings = ref<UserRatingSummary[]>([]);
 | 
						|
const loading = ref(false);
 | 
						|
const ready = ref(false);
 | 
						|
 | 
						|
export const useUserSelfRatings = function () {
 | 
						|
  const $auth = useMealieAuth();
 | 
						|
  const api = useUserApi();
 | 
						|
 | 
						|
  async function refreshUserRatings() {
 | 
						|
    if (!$auth.user.value || loading.value) {
 | 
						|
      return;
 | 
						|
    }
 | 
						|
 | 
						|
    loading.value = true;
 | 
						|
    const { data } = await api.users.getSelfRatings();
 | 
						|
    userRatings.value = data?.ratings || [];
 | 
						|
    loading.value = false;
 | 
						|
    ready.value = true;
 | 
						|
  }
 | 
						|
 | 
						|
  async function setRating(slug: string, rating: number | null, isFavorite: boolean | null) {
 | 
						|
    loading.value = true;
 | 
						|
    const userId = $auth.user.value?.id || "";
 | 
						|
    await api.users.setRating(userId, slug, rating, isFavorite);
 | 
						|
    loading.value = false;
 | 
						|
    await refreshUserRatings();
 | 
						|
  }
 | 
						|
 | 
						|
  if (!ready.value) {
 | 
						|
    refreshUserRatings();
 | 
						|
  }
 | 
						|
 | 
						|
  return {
 | 
						|
    userRatings,
 | 
						|
    refreshUserRatings,
 | 
						|
    setRating,
 | 
						|
    ready,
 | 
						|
  };
 | 
						|
};
 |