Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit f85e178

Browse files
authored
Fix centering issue with sticker placeholder (#8404)
1 parent e373531 commit f85e178

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

res/css/views/messages/_MStickerBody.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,10 @@ limitations under the License.
3333
align-items: center;
3434
justify-content: center;
3535
}
36+
37+
.mx_MStickerBody_placeholder {
38+
// centering
39+
position: absolute;
40+
left: calc(50% - 40px);
41+
top: calc(50% - 40px);
42+
}

src/components/views/messages/MImageBody.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export default class MImageBody extends React.Component<IBodyProps, IState> {
138138
}
139139
};
140140

141-
private onImageEnter = (e: React.MouseEvent<HTMLImageElement>): void => {
141+
protected onImageEnter = (e: React.MouseEvent<HTMLImageElement>): void => {
142142
this.setState({ hover: true });
143143

144144
if (!this.state.showImage || !this.state.isAnimated || SettingsStore.getValue("autoplayGifs")) {
@@ -148,7 +148,7 @@ export default class MImageBody extends React.Component<IBodyProps, IState> {
148148
imgElement.src = this.state.contentUrl;
149149
};
150150

151-
private onImageLeave = (e: React.MouseEvent<HTMLImageElement>): void => {
151+
protected onImageLeave = (e: React.MouseEvent<HTMLImageElement>): void => {
152152
this.setState({ hover: false });
153153

154154
if (!this.state.showImage || !this.state.isAnimated || SettingsStore.getValue("autoplayGifs")) {

src/components/views/messages/MStickerBody.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,19 @@ export default class MStickerBody extends MImageBody {
3939
return <div className="mx_MStickerBody_wrapper" onClick={onClick}> { children } </div>;
4040
}
4141

42-
// Placeholder to show in place of the sticker image if
43-
// img onLoad hasn't fired yet.
42+
// Placeholder to show in place of the sticker image if img onLoad hasn't fired yet.
4443
protected getPlaceholder(width: number, height: number): JSX.Element {
4544
if (this.props.mxEvent.getContent().info?.[BLURHASH_FIELD]) return super.getPlaceholder(width, height);
46-
return <img src={require("../../../../res/img/icons-show-stickers.svg").default} width="75" height="75" />;
45+
return (
46+
<img
47+
className="mx_MStickerBody_placeholder"
48+
src={require("../../../../res/img/icons-show-stickers.svg").default}
49+
width="80"
50+
height="80"
51+
onMouseEnter={this.onImageEnter}
52+
onMouseLeave={this.onImageLeave}
53+
/>
54+
);
4755
}
4856

4957
// Tooltip to show on mouse over

0 commit comments

Comments
 (0)