diff --git a/docs/ff-designer/getting-started/imgs/fitness-tracking-app.avif b/docs/ff-designer/getting-started/imgs/fitness-tracking-app.avif index 616334ab..27ec349f 100644 Binary files a/docs/ff-designer/getting-started/imgs/fitness-tracking-app.avif and b/docs/ff-designer/getting-started/imgs/fitness-tracking-app.avif differ diff --git a/docs/ff-designer/getting-started/imgs/food-delivery-app.avif b/docs/ff-designer/getting-started/imgs/food-delivery-app.avif index 69a522a7..4ee9f27f 100644 Binary files a/docs/ff-designer/getting-started/imgs/food-delivery-app.avif and b/docs/ff-designer/getting-started/imgs/food-delivery-app.avif differ diff --git a/src/theme/MDXComponents/Img/index.tsx b/src/theme/MDXComponents/Img/index.tsx new file mode 100644 index 00000000..4443cc11 --- /dev/null +++ b/src/theme/MDXComponents/Img/index.tsx @@ -0,0 +1,74 @@ +import React, {useEffect, useState} from 'react'; +import clsx from 'clsx'; +import type {Props} from '@theme/MDXComponents/Img'; + +import styles from './styles.module.css'; + +function transformImgClassName(className?: string): string { + return clsx(className, styles.img); +} + +export default function MDXImg(props: Props): JSX.Element { + const {alt, className, src} = props; + const [isOpen, setIsOpen] = useState(false); + + useEffect(() => { + if (!isOpen) { + return undefined; + } + + const handleKeyDown = (event: KeyboardEvent) => { + if (event.key === 'Escape') { + setIsOpen(false); + } + }; + + document.body.classList.add(styles.fullscreenOpen); + window.addEventListener('keydown', handleKeyDown); + + return () => { + document.body.classList.remove(styles.fullscreenOpen); + window.removeEventListener('keydown', handleKeyDown); + }; + }, [isOpen]); + + return ( + <> + + + {isOpen && ( +