Fix collapsed corners for link previews and image attachments
This commit is contained in:
parent
65dc9d6afb
commit
9d3498d938
9 changed files with 260 additions and 181 deletions
|
@ -13,6 +13,13 @@ import {
|
|||
defaultBlurHash,
|
||||
} from '../../types/Attachment';
|
||||
|
||||
export enum CurveType {
|
||||
None = 0,
|
||||
Tiny = 4,
|
||||
Small = 10,
|
||||
Normal = 18,
|
||||
}
|
||||
|
||||
export type Props = {
|
||||
alt: string;
|
||||
attachment: AttachmentType;
|
||||
|
@ -32,16 +39,13 @@ export type Props = {
|
|||
noBackground?: boolean;
|
||||
bottomOverlay?: boolean;
|
||||
closeButton?: boolean;
|
||||
curveBottomLeft?: boolean;
|
||||
curveBottomRight?: boolean;
|
||||
curveTopLeft?: boolean;
|
||||
curveTopRight?: boolean;
|
||||
|
||||
smallCurveTopLeft?: boolean;
|
||||
curveBottomLeft?: CurveType;
|
||||
curveBottomRight?: CurveType;
|
||||
curveTopLeft?: CurveType;
|
||||
curveTopRight?: CurveType;
|
||||
|
||||
darkOverlay?: boolean;
|
||||
playIconOverlay?: boolean;
|
||||
softCorners?: boolean;
|
||||
blurHash?: string;
|
||||
|
||||
i18n: LocalizerType;
|
||||
|
@ -158,8 +162,6 @@ export class Image extends React.Component<Props> {
|
|||
onError,
|
||||
overlayText,
|
||||
playIconOverlay,
|
||||
smallCurveTopLeft,
|
||||
softCorners,
|
||||
tabIndex,
|
||||
theme,
|
||||
url,
|
||||
|
@ -176,25 +178,25 @@ export class Image extends React.Component<Props> {
|
|||
|
||||
const resolvedBlurHash = blurHash || defaultBlurHash(theme);
|
||||
|
||||
const overlayClassName = classNames('module-image__border-overlay', {
|
||||
'module-image__border-overlay--with-border': !noBorder,
|
||||
'module-image__border-overlay--with-click-handler': canClick,
|
||||
'module-image--curved-top-left': curveTopLeft,
|
||||
'module-image--curved-top-right': curveTopRight,
|
||||
'module-image--curved-bottom-left': curveBottomLeft,
|
||||
'module-image--curved-bottom-right': curveBottomRight,
|
||||
'module-image--small-curved-top-left': smallCurveTopLeft,
|
||||
'module-image--soft-corners': softCorners,
|
||||
'module-image__border-overlay--dark': darkOverlay,
|
||||
'module-image--not-downloaded': imgNotDownloaded,
|
||||
});
|
||||
const curveStyles = {
|
||||
borderTopLeftRadius: curveTopLeft || CurveType.None,
|
||||
borderTopRightRadius: curveTopRight || CurveType.None,
|
||||
borderBottomLeftRadius: curveBottomLeft || CurveType.None,
|
||||
borderBottomRightRadius: curveBottomRight || CurveType.None,
|
||||
};
|
||||
|
||||
const overlay = canClick ? (
|
||||
// Not sure what this button does.
|
||||
// eslint-disable-next-line jsx-a11y/control-has-associated-label
|
||||
<button
|
||||
type="button"
|
||||
className={overlayClassName}
|
||||
className={classNames('module-image__border-overlay', {
|
||||
'module-image__border-overlay--with-border': !noBorder,
|
||||
'module-image__border-overlay--with-click-handler': canClick,
|
||||
'module-image__border-overlay--dark': darkOverlay,
|
||||
'module-image--not-downloaded': imgNotDownloaded,
|
||||
})}
|
||||
style={curveStyles}
|
||||
onClick={this.handleClick}
|
||||
onKeyDown={this.handleKeyDown}
|
||||
tabIndex={tabIndex}
|
||||
|
@ -210,15 +212,13 @@ export class Image extends React.Component<Props> {
|
|||
'module-image',
|
||||
className,
|
||||
!noBackground ? 'module-image--with-background' : null,
|
||||
curveBottomLeft ? 'module-image--curved-bottom-left' : null,
|
||||
curveBottomRight ? 'module-image--curved-bottom-right' : null,
|
||||
curveTopLeft ? 'module-image--curved-top-left' : null,
|
||||
curveTopRight ? 'module-image--curved-top-right' : null,
|
||||
smallCurveTopLeft ? 'module-image--small-curved-top-left' : null,
|
||||
softCorners ? 'module-image--soft-corners' : null,
|
||||
cropWidth || cropHeight ? 'module-image--cropped' : null
|
||||
)}
|
||||
style={{ width: width - cropWidth, height: height - cropHeight }}
|
||||
style={{
|
||||
width: width - cropWidth,
|
||||
height: height - cropHeight,
|
||||
...curveStyles,
|
||||
}}
|
||||
>
|
||||
{pending ? (
|
||||
this.renderPending()
|
||||
|
@ -248,11 +248,11 @@ export class Image extends React.Component<Props> {
|
|||
) : null}
|
||||
{bottomOverlay ? (
|
||||
<div
|
||||
className={classNames(
|
||||
'module-image__bottom-overlay',
|
||||
curveBottomLeft ? 'module-image--curved-bottom-left' : null,
|
||||
curveBottomRight ? 'module-image--curved-bottom-right' : null
|
||||
)}
|
||||
className="module-image__bottom-overlay"
|
||||
style={{
|
||||
borderBottomLeftRadius: curveBottomLeft || CurveType.None,
|
||||
borderBottomRightRadius: curveBottomRight || CurveType.None,
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
{!pending && !imgNotDownloaded && playIconOverlay ? (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue