mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-05-24 01:12:54 -04:00
* added backend for shopping list label config * updated codegen * refactored shopping list ops to service removed unique contraint removed label settings from main route/schema added new route for label settings * codegen * made sure label settings output in position order * implemented submenu for label order drag and drop * removed redundant label and tweaked formatting * added view by label to user preferences * made items draggable within each label section * moved reorder labels to its own button * made dialog scrollable * fixed broken model * refactored labels to use a service moved shopping list label logic to service modified label seeder to use service * added tests * fix for first label missing the tag icon * fixed wrong mapped type * added statement to create existing relationships * fix restore test, maybe
78 lines
2.0 KiB
TypeScript
78 lines
2.0 KiB
TypeScript
import { Ref, useContext } from "@nuxtjs/composition-api";
|
|
import { useLocalStorage } from "@vueuse/core";
|
|
|
|
export interface UserPrintPreferences {
|
|
imagePosition: string;
|
|
showDescription: boolean;
|
|
showNotes: boolean;
|
|
}
|
|
|
|
export enum ImagePosition {
|
|
hidden = "hidden",
|
|
left = "left",
|
|
right = "right",
|
|
}
|
|
|
|
export interface UserRecipePreferences {
|
|
orderBy: string;
|
|
orderDirection: string;
|
|
filterNull: boolean;
|
|
sortIcon: string;
|
|
useMobileCards: boolean;
|
|
}
|
|
|
|
export interface UserShoppingListPreferences {
|
|
viewByLabel: boolean;
|
|
}
|
|
|
|
export function useUserPrintPreferences(): Ref<UserPrintPreferences> {
|
|
const fromStorage = useLocalStorage(
|
|
"recipe-print-preferences",
|
|
{
|
|
imagePosition: "left",
|
|
showDescription: true,
|
|
showNotes: true,
|
|
},
|
|
{ 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 unknown as Ref<UserPrintPreferences>;
|
|
|
|
return fromStorage;
|
|
}
|
|
|
|
export function useUserSortPreferences(): Ref<UserRecipePreferences> {
|
|
const { $globals } = useContext();
|
|
|
|
const fromStorage = useLocalStorage(
|
|
"recipe-section-preferences",
|
|
{
|
|
orderBy: "name",
|
|
orderDirection: "asc",
|
|
filterNull: false,
|
|
sortIcon: $globals.icons.sortAlphabeticalAscending,
|
|
useMobileCards: false,
|
|
},
|
|
{ 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 unknown as Ref<UserRecipePreferences>;
|
|
|
|
return fromStorage;
|
|
}
|
|
|
|
|
|
export function useShoppingListPreferences(): Ref<UserShoppingListPreferences> {
|
|
const fromStorage = useLocalStorage(
|
|
"shopping-list-preferences",
|
|
{
|
|
viewByLabel: false,
|
|
},
|
|
{ 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 unknown as Ref<UserShoppingListPreferences>;
|
|
|
|
return fromStorage;
|
|
}
|