Spaces:
Configuration error
Configuration error
| 'use client' | |
| import { Box, BoxProps } from '@chakra-ui/react'; | |
| import NextImage, { ImageProps } from 'next/legacy/image'; | |
| import { ComponentProps } from 'react'; | |
| type ChakraNextImageProps = Partial<ImageProps> & | |
| Partial<BoxProps> & { | |
| nextProps?: Partial<ComponentProps<typeof NextImage>>; | |
| }; | |
| function parseAssetPrefix(image: string) { | |
| const alreadyHasHttp = image.match('http'); | |
| if (alreadyHasHttp) return image; | |
| const prefix = process.env.NEXT_PUBLIC_BASE_PATH || ''; | |
| const alreadyHasPrefix = image.match(prefix); | |
| const finalUrl = alreadyHasPrefix ? image : `${prefix}${image}`; | |
| return finalUrl; | |
| } | |
| export function Image(props: ChakraNextImageProps) { | |
| const { src, alt, nextProps = {}, ...rest } = props; | |
| const imageUrl = | |
| typeof src === 'string' ? src : ((src as any)?.src as string); | |
| return ( | |
| <Box overflow={'hidden'} position="relative" {...rest}> | |
| <NextImage | |
| layout="fill" | |
| objectFit="fill" | |
| src={parseAssetPrefix(imageUrl)} | |
| alt={alt} | |
| {...nextProps} | |
| /> | |
| </Box> | |
| ); | |
| } | |