diff --git a/resources/js/helpers/media.ts b/resources/js/helpers/media.ts new file mode 100644 index 0000000..77bd966 --- /dev/null +++ b/resources/js/helpers/media.ts @@ -0,0 +1,25 @@ +import { Media } from "./api.types"; + +export const mediaGetVariantUrl = ( + media: Media, + variant = "scaled" +): string => { + if (!media) { + return ""; + } + + // If the variant is 'original', return the media url + if (variant === "original") { + return media.url; + } + + // If the variant key exists in media.variants, return the corresponding variant URL + if (media.variants && media.variants[variant]) { + return media.url.replace(media.name, media.variants[variant]); + } + + // If the variant key does not exist, return the 'scaled' variant + return media.variants && media.variants["scaled"] + ? media.url.replace(media.name, media.variants["scaled"]) + : media.url; +};