diff --git a/web/modals/modal.css b/web/modals/modal.css --- a/web/modals/modal.css +++ b/web/modals/modal.css @@ -7,6 +7,14 @@ overflow: hidden; } +div.transparentModalContainer { + display: flex; + border-radius: 8px; + flex-direction: column; + margin: 20px; + overflow: hidden; +} + div.modalContainerSmall { width: 330px; } diff --git a/web/modals/modal.react.js b/web/modals/modal.react.js --- a/web/modals/modal.react.js +++ b/web/modals/modal.react.js @@ -18,6 +18,7 @@ +icon?: Icon, +onClose: () => void, +withCloseButton?: boolean, + +transparent?: boolean, +size?: ModalSize, +modalHeaderCentered?: boolean, }; @@ -34,11 +35,14 @@ onClose, name, icon, + transparent = false, withCloseButton = true, modalHeaderCentered = false, } = props; - const modalContainerClasses = classNames(css.modalContainer, { + const modalContainerClasses = classNames({ + [css.modalContainer]: transparent === false, + [css.modalContainerTransparent]: transparent === true, [css.modalContainerLarge]: size === 'large', [css.modalContainerSmall]: size === 'small', }); diff --git a/web/modals/threads/gallery/thread-settings-media-gallery-item.css b/web/modals/threads/gallery/thread-settings-media-gallery-item.css new file mode 100644 --- /dev/null +++ b/web/modals/threads/gallery/thread-settings-media-gallery-item.css @@ -0,0 +1,28 @@ +.backContainer { + position: absolute; + top: 10%; + left: 15%; +} + +.backButton { + color: white; + font-size: 16px; + font-weight: 500; + position: relative; + margin-bottom: 16px; + cursor: pointer; +} + +.mediaContainer { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 70%; + height: 70%; +} + +.mediaItem { + width: 100%; + height: 100%; +} diff --git a/web/modals/threads/gallery/thread-settings-media-gallery-item.react.js b/web/modals/threads/gallery/thread-settings-media-gallery-item.react.js new file mode 100644 --- /dev/null +++ b/web/modals/threads/gallery/thread-settings-media-gallery-item.react.js @@ -0,0 +1,59 @@ +// @flow + +import * as React from 'react'; + +import type { Media } from 'lib/types/media-types'; + +import css from './thread-settings-media-gallery-item.css'; +import Modal from '../../modal.react.js'; + +type ThreadSettingsMediaGalleryItemModalProps = { + +onClose: () => void, + +media: Media, +}; + +function ThreadSettingsMediaGalleryItemModal( + props: ThreadSettingsMediaGalleryItemModalProps, +): React.Node { + const { onClose, media } = props; + const modalName = ''; + + const mediaSource = React.useMemo(() => media.uri, [media]); + + const renderedMedia = React.useMemo(() => { + if (media.type === 'photo') { + return ; + } + return ( +