commit: fa5c867e0ec426fc01653e9022ba29783b2a826f
parent: 641abe2db7ac482dceffc8307af411e01c540951
Author: Yuto Tokunaga <yuntan.sub1@gmail.com>
Date: Mon, 12 Mar 2018 11:52:05 +0900
Avoid using JS to set height in MediaModal (#6750)
avoid using JS to set height of ReactSwipeableViews component
reduce max-height of <img/> to 80% to avoid the screen covered by image
Diffstat:
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.js
@@ -130,6 +130,15 @@ export default class MediaModal extends ImmutablePureComponent {
return null;
}).toArray();
+ // you can't use 100vh, because the viewport height is taller
+ // than the visible part of the document in some mobile
+ // browsers when it's address bar is visible.
+ // https://developers.google.com/web/updates/2016/12/url-bar-resizing
+ const swipeableViewsStyle = {
+ width: '100%',
+ height: '100%',
+ };
+
const containerStyle = {
alignItems: 'center', // center vertically
};
@@ -145,23 +154,15 @@ export default class MediaModal extends ImmutablePureComponent {
role='presentation'
onClick={onClose}
>
- <div className='media-modal__content'>
- <ReactSwipeableViews
- style={{
- // you can't use 100vh, because the viewport height is taller
- // than the visible part of the document in some mobile
- // browsers when it's address bar is visible.
- // https://developers.google.com/web/updates/2016/12/url-bar-resizing
- height: `${document.body.clientHeight}px`,
- }}
- containerStyle={containerStyle}
- onChangeIndex={this.handleSwipe}
- onSwitching={this.handleSwitching}
- index={index}
- >
- {content}
- </ReactSwipeableViews>
- </div>
+ <ReactSwipeableViews
+ style={swipeableViewsStyle}
+ containerStyle={containerStyle}
+ onChangeIndex={this.handleSwipe}
+ onSwitching={this.handleSwitching}
+ index={index}
+ >
+ {content}
+ </ReactSwipeableViews>
</div>
<div className={navigationClassName}>
<IconButton className='media-modal__close' title={intl.formatMessage(messages.close)} icon='times' onClick={onClose} size={40} />
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
@@ -3422,8 +3422,12 @@ a.status-card {
img,
canvas,
video {
- max-width: 100vw;
- max-height: 100vh;
+ max-width: 100%;
+ /*
+ put margins on top and bottom of image to avoid the screen coverd by
+ image.
+ */
+ max-height: 80%;
width: auto;
height: auto;
margin: auto;
@@ -3435,11 +3439,6 @@ a.status-card {
background: url('../images/void.png') repeat;
object-fit: contain;
}
-
- .react-swipeable-view-container {
- width: 100vw;
- height: 100%;
- }
}
.media-modal__closer {