mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-30 01:34:39 -04:00 
			
		
		
		
	* refactored recipe image paths/service * added routes for updating/fetching timeline images * make generate * added event image upload and rendering * switched update to patch to preserve timestamp * added tests * tweaked order of requests * always reload events when opening the timeline * re-arranged elements to make them look nicer * delete files when timeline event is deleted
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { useContext } from "@nuxtjs/composition-api";
 | |
| import { detectServerBaseUrl } from "../use-utils";
 | |
| 
 | |
| function UnknownToString(ukn: string | unknown) {
 | |
|   return typeof ukn === "string" ? ukn : "";
 | |
| }
 | |
| 
 | |
| export const useStaticRoutes = () => {
 | |
|   const { $config, req } = useContext();
 | |
|   const serverBase = detectServerBaseUrl(req);
 | |
| 
 | |
|   const prefix = `${$config.SUB_PATH as string}/api`.replace("//", "/");
 | |
| 
 | |
|   const fullBase = serverBase + prefix;
 | |
| 
 | |
|   // Methods to Generate reference urls for assets/images *
 | |
|   function recipeImage(recipeId: string, version: string | unknown = "", key: string | number = 1) {
 | |
|     return `${fullBase}/media/recipes/${recipeId}/images/original.webp?rnd=${key}&version=${UnknownToString(version)}`;
 | |
|   }
 | |
| 
 | |
|   function recipeSmallImage(recipeId: string, version: string | unknown = "", key: string | number = 1) {
 | |
|     return `${fullBase}/media/recipes/${recipeId}/images/min-original.webp?rnd=${key}&version=${UnknownToString(
 | |
|       version
 | |
|     )}`;
 | |
|   }
 | |
| 
 | |
|   function recipeTinyImage(recipeId: string, version: string | unknown = "", key: string | number = 1) {
 | |
|     return `${fullBase}/media/recipes/${recipeId}/images/tiny-original.webp?rnd=${key}&version=${UnknownToString(
 | |
|       version
 | |
|     )}`;
 | |
|   }
 | |
| 
 | |
|   function recipeTimelineEventImage(recipeId: string, timelineEventId: string) {
 | |
|     return `${fullBase}/media/recipes/${recipeId}/images/timeline/${timelineEventId}/original.webp`;
 | |
|   }
 | |
| 
 | |
|   function recipeTimelineEventSmallImage(recipeId: string, timelineEventId: string) {
 | |
|     return `${fullBase}/media/recipes/${recipeId}/images/timeline/${timelineEventId}/min-original.webp`;
 | |
|   }
 | |
| 
 | |
|   function recipeTimelineEventTinyImage(recipeId: string, timelineEventId: string) {
 | |
|     return `${fullBase}/media/recipes/${recipeId}/images/timeline/${timelineEventId}/tiny-original.webp`;
 | |
|   }
 | |
| 
 | |
|   function recipeAssetPath(recipeId: string, assetName: string) {
 | |
|     return `${fullBase}/media/recipes/${recipeId}/assets/${assetName}`;
 | |
|   }
 | |
| 
 | |
|   return {
 | |
|     recipeImage,
 | |
|     recipeSmallImage,
 | |
|     recipeTinyImage,
 | |
|     recipeTimelineEventImage,
 | |
|     recipeTimelineEventSmallImage,
 | |
|     recipeTimelineEventTinyImage,
 | |
|     recipeAssetPath,
 | |
|   };
 | |
| };
 |