feat: Support User-Level Default Activities (#5125)

This commit is contained in:
miah
2025-10-15 21:30:08 -05:00
committed by GitHub
parent 64d481b4fc
commit 7e168eb75b
7 changed files with 157 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
import { useLocalStorage, useSessionStorage } from "@vueuse/core";
import { ActivityKey } from "~/lib/api/types/activity";
import type { RegisteredParser, TimelineEventType } from "~/lib/api/types/recipe";
import type { QueryFilterJSON } from "~/lib/api/types/response";
@@ -65,6 +66,10 @@ export interface UserRecipeCreatePreferences {
parseRecipe: boolean;
}
export interface UserActivityPreferences {
defaultActivity: ActivityKey;
}
export function useUserMealPlanPreferences(): Ref<UserMealPlanPreferences> {
const fromStorage = useLocalStorage(
"meal-planner-preferences",
@@ -115,6 +120,20 @@ export function useUserSortPreferences(): Ref<UserRecipePreferences> {
return fromStorage;
}
export function useUserActivityPreferences(): Ref<UserActivityPreferences> {
const fromStorage = useLocalStorage(
"activity-preferences",
{
defaultActivity: ActivityKey.RECIPES,
},
{ mergeDefaults: true },
// we cast to a Ref because by default it will return an optional type ref
// but since we pass defaults we know all properties are set.
) as Ref<UserActivityPreferences>;
return fromStorage;
}
export function useUserSearchQuerySession(): Ref<UserSearchQuery> {
const fromStorage = useSessionStorage(
"search-query",