Skip to content

Commit d295d16

Browse files
committed
Updates
1 parent b6a3ae3 commit d295d16

4 files changed

Lines changed: 93 additions & 45 deletions

File tree

src/chat/interface/chatmessagegen.js

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var elements = require("../../gp2/elements.js");
22
var AElement = require("../../gp2/aelement.js");
33
var { isSafeURLOrDomain } = require("../../safehtmlencode.js");
4+
var imageViewer = require("./viewers/image.js");
45

56
function getBracketCodeJSON(
67
inputText = "",
@@ -274,6 +275,7 @@ function getBracketCodeJSON(
274275
objectFit: "contain",
275276
width: IMAGE_EMOJI_SIZE + "px",
276277
height: IMAGE_EMOJI_SIZE + "px",
278+
pointerEvents: "none",
277279
},
278280
src: url,
279281
});
@@ -287,36 +289,44 @@ function getBracketCodeJSON(
287289
if (name == "image" && !exists) {
288290
exists = true;
289291
if (isSafeURLOrDomain(value.trim())) {
290-
elm.children.push({
291-
element: "div",
292-
className: "divButton roundborder",
293-
style: {
294-
padding: "4px 4px",
295-
},
296-
eventListeners: [
297-
{
298-
event: "click",
299-
func: async function () {},
292+
(function (value) {
293+
elm.children.push({
294+
element: "div",
295+
className: "divButton roundborder",
296+
style: {
297+
padding: "4px 4px",
298+
textAlign: "center",
299+
fontSize: "10px",
300300
},
301-
],
302-
children: [
303-
{
304-
element: "img",
305-
src: value.trim(),
306-
style: {
307-
width: "40px",
308-
height: "40px",
301+
eventListeners: [
302+
{
303+
event: "click",
304+
func: async function () {
305+
imageViewer.showImage(value);
306+
},
309307
},
310-
},
311-
{
312-
element: "br",
313-
},
314-
{
315-
element: "b",
316-
textContent: "Image",
317-
},
318-
],
319-
});
308+
],
309+
children: [
310+
{
311+
element: "img",
312+
src: value.trim(),
313+
style: {
314+
width: "40px",
315+
height: "40px",
316+
objectFit: "contain",
317+
pointerEvents: "none",
318+
},
319+
},
320+
{
321+
element: "br",
322+
},
323+
{
324+
element: "b",
325+
textContent: "Image",
326+
},
327+
],
328+
});
329+
})(value);
320330
}
321331
elm.children.push({
322332
element: "span",

src/chat/interface/viewers/image.js

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,34 @@ class ImageViewerDialog {
3232
element: "div",
3333
className: "whiteBox centerMiddle popupDialogAnimation",
3434
style: {
35-
overflowY: "auto",
36-
maxHeight: "calc(100vh - 100px)",
37-
maxWidth: "calc(100vw - 300px)",
38-
minWidth: "360px",
39-
minHeight: "360px",
35+
maxHeight: "calc(100svh - 100px)",
36+
maxWidth: "calc(100svw - 300px)",
37+
minWidth: "50px",
38+
minHeight: "50px",
4039
},
4140
children: [
4241
{
4342
element: "div",
4443
style: {
4544
display: "flex",
4645
flexDirection: "column",
46+
width: "100%",
47+
height: "100%",
4748
},
4849
children: [
4950
{
5051
element: "div",
5152
style: {
5253
display: "block",
54+
width: "100%",
5355
},
5456
children: [
5557
{
5658
element: "span",
5759
style: {
5860
fontSize: "30px",
5961
fontWeight: "bold",
62+
textAlign: "center",
6063
},
6164
textContent: "Attached image",
6265
},
@@ -66,36 +69,59 @@ class ImageViewerDialog {
6669
{
6770
element: "div",
6871
style: {
69-
margin: "8px 0",
7072
padding: "8px",
71-
backgroundColor: "#fffae6",
72-
border: "1px solid #f0e68c",
7373
borderRadius: "6px",
74-
fontSize: "14px",
75-
color: "#665500",
74+
background: "black",
7675
flexGrow: "1",
76+
flexShrink: "0",
77+
overflow: "auto",
78+
maxHeight: "calc(100svh - 250px)",
79+
minHeight: "300px",
80+
justifyContent: "center",
7781
},
78-
children: [],
82+
children: [
83+
{
84+
element: "img",
85+
src: "",
86+
style: {
87+
pointerEvents: "none",
88+
objectFit: "contain",
89+
minWidth: "300px",
90+
minHeight: "300px",
91+
position: "relative",
92+
},
93+
GPWhenCreated: function (elm) {
94+
_this.imageElement = elm;
95+
},
96+
},
97+
],
7998
},
8099

81100
{
82101
element: "div",
83102
style: {
84103
display: "flex",
104+
alignItems: "center",
85105
},
86106
children: [
87107
{
88108
element: "div",
89109
className: "divButton roundborder",
90110
textContent: "Download",
91111
style: {
92-
flexGrow: "1",
112+
margin: "2px",
93113
},
94114
eventListeners: [
95115
{
96116
event: "click",
97117
func: function () {
98-
_this.dialogElement.hidden = true;
118+
var a = document.createElement("a");
119+
a.href = _this.imageElement.src;
120+
a.download = _this.imageElement.src
121+
.slice("/")
122+
.pop();
123+
a.click();
124+
a.remove();
99125
},
100126
},
101127
],
@@ -105,7 +131,7 @@ class ImageViewerDialog {
105131
className: "divButton roundborder",
106132
textContent: "Close",
107133
style: {
108-
flexGrow: "1",
134+
margin: "2px",
109135
},
110136
eventListeners: [
111137
{
@@ -126,8 +152,9 @@ class ImageViewerDialog {
126152
},
127153
])[0];
128154
}
129-
showImage() {
130-
dialogElement.hidden = true;
155+
showImage(src) {
156+
this.imageElement.src = src;
157+
this.dialogElement.hidden = false;
131158
}
132159
}
133160

src/pages/navigate-loader.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var loader = require("./loadingscreen.js");
22

33
var isLoading = true;
44
var loadingScreen = loader.doLoadingScreen();
5+
document.body.append(loadingScreen);
56

67
document.addEventListener("DOMContentLoaded", () => {
78
window.addEventListener("load", () => {
@@ -15,6 +16,9 @@ document.addEventListener("DOMContentLoaded", () => {
1516
navigation.addEventListener("navigate", (event) => {
1617
var destinationUrl = event.destination.url;
1718
var navigationType = event.navigationType;
19+
if (event.downloadRequest) {
20+
return; // Don't show loading screen for downloads
21+
}
1822

1923
if (!isLoading) {
2024
isLoading = true;
@@ -35,3 +39,10 @@ navigation.addEventListener("navigateerror", (event) => {
3539
loadingScreen.remove();
3640
}
3741
});
42+
43+
window.addEventListener("pageshow", (event) => {
44+
if (event.persisted && isLoading) {
45+
isLoading = false;
46+
loadingScreen.remove();
47+
}
48+
});

wpstatic/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"timestamp":"1762370103028"}
1+
{"timestamp":"1762371966829"}

0 commit comments

Comments
 (0)