mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-27 16:24:31 -04:00 
			
		
		
		
	fix: Make sure recipe state is updated correctly (#2566)
This commit is contained in:
		| @@ -51,13 +51,20 @@ interface PageState { | |||||||
|   toggleCookMode: () => void; |   toggleCookMode: () => void; | ||||||
| } | } | ||||||
|  |  | ||||||
| const memo: Record<string, PageState> = {}; | type PageRefs = ReturnType<typeof pageRefs>; | ||||||
|  |  | ||||||
| function pageStateConstructor(slug: string): PageState { | const memo: Record<string, PageRefs> = {}; | ||||||
|   const slugRef = ref(slug); |  | ||||||
|   const pageModeRef = ref(PageMode.VIEW); |  | ||||||
|   const editModeRef = ref(EditorMode.FORM); |  | ||||||
|  |  | ||||||
|  | function pageRefs(slug: string) { | ||||||
|  |   return { | ||||||
|  |     slugRef: ref(slug), | ||||||
|  |     pageModeRef: ref(PageMode.VIEW), | ||||||
|  |     editModeRef: ref(EditorMode.FORM), | ||||||
|  |     imageKey: ref(1), | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function pageState({ slugRef, pageModeRef, editModeRef, imageKey }: PageRefs): PageState { | ||||||
|   const toggleEditMode = () => { |   const toggleEditMode = () => { | ||||||
|     if (editModeRef.value === EditorMode.FORM) { |     if (editModeRef.value === EditorMode.FORM) { | ||||||
|       editModeRef.value = EditorMode.JSON; |       editModeRef.value = EditorMode.JSON; | ||||||
| @@ -92,7 +99,7 @@ function pageStateConstructor(slug: string): PageState { | |||||||
|     slug: slugRef, |     slug: slugRef, | ||||||
|     pageMode: computed(() => pageModeRef.value), |     pageMode: computed(() => pageModeRef.value), | ||||||
|     editMode: computed(() => editModeRef.value), |     editMode: computed(() => editModeRef.value), | ||||||
|     imageKey: ref(1), |     imageKey, | ||||||
|  |  | ||||||
|     toggleEditMode, |     toggleEditMode, | ||||||
|     setMode, |     setMode, | ||||||
| @@ -120,10 +127,10 @@ function pageStateConstructor(slug: string): PageState { | |||||||
|  */ |  */ | ||||||
| export function usePageState(slug: string): PageState { | export function usePageState(slug: string): PageState { | ||||||
|   if (!memo[slug]) { |   if (!memo[slug]) { | ||||||
|     memo[slug] = pageStateConstructor(slug); |     memo[slug] = pageRefs(slug); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   return memo[slug]; |   return pageState(memo[slug]); | ||||||
| } | } | ||||||
|  |  | ||||||
| export function clearPageState(slug: string) { | export function clearPageState(slug: string) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user