mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-31 10:13:32 -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;
 | |
| }
 |