Skip to content

Commit bc4258d

Browse files
committed
Merge branch 'release/3.6.0'
2 parents 939bb36 + 76728c8 commit bc4258d

File tree

7 files changed

+67
-29
lines changed

7 files changed

+67
-29
lines changed

dist/gist.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/managers/gist-properties-manager.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export function resolveMessageProperies(message) {
1+
export function resolveMessageProperties(message) {
22
var elementId = "";
33
var routeRule = "";
44
var position = "";
@@ -8,6 +8,9 @@ export function resolveMessageProperies(message) {
88
var shouldScale = false;
99
var campaignId = null;
1010
var persistent = false;
11+
var overlayColor = "#00000033";
12+
var messageWidth = 414;
13+
var hasCustomWidth = false;
1114

1215
if (message.properties && message.properties.gist) {
1316
if (message.properties.gist.campaignId) {
@@ -28,6 +31,13 @@ export function resolveMessageProperies(message) {
2831
if (message.properties.gist.scale) {
2932
shouldScale = message.properties.gist.scale;
3033
}
34+
if (message.properties.gist.overlayColor) {
35+
overlayColor = message.properties.gist.overlayColor;
36+
}
37+
if (message.properties.gist.messageWidth && message.properties.gist.messageWidth > 0) {
38+
messageWidth = message.properties.gist.messageWidth;
39+
hasCustomWidth = true;
40+
}
3141
if (message.properties.gist.persistent)
3242
{
3343
persistent = true
@@ -42,6 +52,9 @@ export function resolveMessageProperies(message) {
4252
hasPosition: hasPosition,
4353
shouldScale: shouldScale,
4454
campaignId: campaignId,
45-
persistent: persistent
55+
messageWidth: messageWidth,
56+
overlayColor: overlayColor,
57+
persistent: persistent,
58+
hasCustomWidth: hasCustomWidth
4659
}
4760
}

src/managers/message-component-manager.js

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { log } from "../utilities/log";
22
import { v4 as uuidv4 } from 'uuid';
33
import { embedMessage } from "./message-manager";
4+
import { resolveMessageProperties } from "./gist-properties-manager";
45
const delay = ms => new Promise(res => setTimeout(res, ms));
56

67
export function isElementLoaded(elementId) {
@@ -23,13 +24,13 @@ export async function preloadRenderer() {
2324
embedMessage({messageId: ""}, preloadFrameId);
2425
}
2526

26-
export function loadEmbedComponent(elementId, url) {
27+
export function loadEmbedComponent(elementId, url, message) {
2728
var element = safelyFetchElement(elementId);
2829
if (element) {
2930
if (!elementHasHeight(elementId)) {
3031
element.style.height = "0px";
3132
}
32-
element.innerHTML = embed(url);
33+
element.innerHTML = embed(url, message);
3334
} else {
3435
log(`Message could not be embedded, elementId ${elementId} not found.`);
3536
}
@@ -78,8 +79,8 @@ export function resizeComponent(elementId, size, shouldScale) {
7879
}
7980
}
8081

81-
export function loadOverlayComponent(url, instanceId) {
82-
document.body.insertAdjacentHTML('beforeend', component(url, instanceId));
82+
export function loadOverlayComponent(url, message) {
83+
document.body.insertAdjacentHTML('beforeend', component(url, message));
8384
}
8485

8586
export function showOverlayComponent(message) {
@@ -115,20 +116,43 @@ export function removeOverlayComponent() {
115116
}
116117

117118
function showMessage() {
118-
var message = document.querySelector("#gist-message");
119-
if (message) message.classList.add("visible");
119+
var messageElement = document.querySelector("#gist-message");
120+
if (messageElement) messageElement.classList.add("visible");
120121
}
121122

122-
function embed(url) {
123+
function embed(url, message) {
124+
const wideOverlayPositions = ["x-gist-bottom", "x-gist-bottom", "x-gist-floating-top", "x-gist-floating-bottom"];
125+
var messageProperties = resolveMessageProperties(message);
126+
var maxWidthBreakpoint = 800;
127+
if (messageProperties.messageWidth > maxWidthBreakpoint) {
128+
maxWidthBreakpoint = messageProperties.messageWidth;
129+
}
130+
131+
var messageWidth = messageProperties.messageWidth + "px";
132+
if (wideOverlayPositions.includes(messageProperties.elementId) && !messageProperties.hasCustomWidth) {
133+
messageWidth = "100%";
134+
}
135+
123136
var template = require("html-loader!../templates/embed.html");
137+
template = template.replace("'${topBottomMessageWidth}'", messageWidth);
138+
template = template.replace("'${cornersMessageWidth}'", messageWidth);
139+
template = template.replace("'${maxWidth}'", maxWidthBreakpoint + "px");
124140
template = template.replace("${url}", url);
125141
return template;
126142
}
127143

128-
function component(url, instanceId) {
144+
function component(url, message) {
145+
var messageProperties = resolveMessageProperties(message);
146+
var maxWidthBreakpoint = 600;
147+
if (messageProperties.messageWidth > maxWidthBreakpoint) {
148+
maxWidthBreakpoint = messageProperties.messageWidth;
149+
}
129150
var template = require("html-loader!../templates/message.html");
151+
template = template.replace("'${messageWidth}'", messageProperties.messageWidth + "px");
152+
template = template.replace("'${maxWidth}'", maxWidthBreakpoint + "px");
153+
template = template.replace("'${overlayColor}'", messageProperties.overlayColor);
130154
template = template.replace("${url}", url);
131-
template = template.replace("${instanceId}", instanceId);
155+
template = template.replace("${instanceId}", message.instanceId);
132156
return template;
133157
}
134158

src/managers/message-manager.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
elementHasHeight,
1616
isElementLoaded
1717
} from "./message-component-manager";
18-
import { resolveMessageProperies } from "./gist-properties-manager";
18+
import { resolveMessageProperties } from "./gist-properties-manager";
1919
import { positions, addPageElement } from "./page-component-manager";
2020
import { checkMessageQueue } from "./queue-manager";
2121

@@ -27,7 +27,7 @@ export async function showMessage(message) {
2727
log(`Message ${Gist.overlayInstanceId} already showing.`);
2828
return null;
2929
} else {
30-
var properties = resolveMessageProperies(message)
30+
var properties = resolveMessageProperties(message)
3131
message.instanceId = uuidv4();
3232
message.overlay = true;
3333
message.firstLoad = true;
@@ -78,7 +78,7 @@ export async function hideMessage(message) {
7878
}
7979

8080
export async function removePersistentMessage(message) {
81-
var messageProperties = resolveMessageProperies(message);
81+
var messageProperties = resolveMessageProperties(message);
8282
if (message) {
8383
if (messageProperties.persistent) {
8484
log(`Persistent message dismissed, logging view`);
@@ -130,9 +130,9 @@ function loadMessageComponent(message, elementId = null) {
130130

131131
if (elementId) {
132132
if (positions.includes(elementId)) { addPageElement(elementId); }
133-
loadEmbedComponent(elementId, url);
133+
loadEmbedComponent(elementId, url, message);
134134
} else {
135-
loadOverlayComponent(url, message.instanceId);
135+
loadOverlayComponent(url, message);
136136
}
137137

138138
return message;
@@ -185,7 +185,7 @@ async function handleGistEvents(e) {
185185
var currentInstanceId = e.data.gist.instanceId;
186186
var currentMessage = fetchMessageByInstanceId(currentInstanceId);
187187
if (!currentMessage) { return; }
188-
var messageProperties = resolveMessageProperies(currentMessage);
188+
var messageProperties = resolveMessageProperties(currentMessage);
189189
switch (e.data.gist.method) {
190190
case "routeLoaded": {
191191
var timeElapsed = (new Date().getTime() - currentMessage.renderStartTime) * 0.001;

src/managers/queue-manager.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { log } from "../utilities/log";
33
import { getUserToken } from "./user-manager";
44
import { getUserQueue } from "../services/queue-service";
55
import { showMessage, embedMessage, hasMessageBeenShownBefore } from "./message-manager";
6-
import { resolveMessageProperies } from "./gist-properties-manager";
6+
import { resolveMessageProperties } from "./gist-properties-manager";
77
import { preloadRenderer } from "./message-component-manager";
88
import { setKeyWithExpiryToLocalStore, getKeyFromLocalStore } from '../utilities/local-storage';
99

@@ -54,7 +54,7 @@ async function handleMessage(message) {
5454
return;
5555
}
5656

57-
var messageProperties = resolveMessageProperies(message);
57+
var messageProperties = resolveMessageProperties(message);
5858
if (messageProperties.hasRouteRule) {
5959
var currentUrl = Gist.currentRoute
6060
if (currentUrl == null) {

src/templates/embed.html

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010
bottom: 0px;
1111
z-index: 1000000;
1212
}
13-
#x-gist-bottom, #x-gist-bottom, #x-gist-floating-top, #x-gist-floating-bottom {
14-
width: 100%;
13+
#x-gist-bottom, #x-gist-top, #x-gist-floating-top, #x-gist-floating-bottom {
14+
left: 50%;
15+
transform: translate(-50%, 0%);
16+
width: '${topBottomMessageWidth}';
1517
}
1618
#x-gist-floating-top-left, #x-gist-floating-top-right, #x-gist-floating-bottom-left, #x-gist-floating-bottom-right {
17-
width: 40%;
18-
max-width: 414px;
19+
width: '${cornersMessageWidth}';
1920
}
2021
#x-gist-floating-top-right, #x-gist-floating-bottom-right {
2122
right: 0px;
@@ -35,8 +36,8 @@
3536
width: 100%;
3637
border: none;
3738
}
38-
@media (max-width: 800px) {
39-
#x-gist-floating-top-left, #x-gist-floating-top-right, #x-gist-floating-bottom-left, #x-gist-floating-bottom-right {
39+
@media (max-width: '${maxWidth}') {
40+
#x-gist-bottom, #x-gist-bottom, #x-gist-floating-top, #x-gist-floating-bottom, #x-gist-floating-top-left, #x-gist-floating-top-right, #x-gist-floating-bottom-left, #x-gist-floating-bottom-right {
4041
width: 100%;
4142
}
4243
}

src/templates/message.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
top: 0;
88
width: 100%;
99
height: 100%;
10-
background-color: rgba(0, 0, 0, .2);
10+
background-color: '${overlayColor}';
1111
visibility: hidden;
1212
}
1313
#gist-overlay.background.visible {
@@ -17,7 +17,7 @@
1717
display: block;
1818
}
1919
#gist-message {
20-
width: 414px;
20+
width: '${messageWidth}';
2121
position: absolute;
2222
border: none;
2323
opacity: 0;
@@ -39,7 +39,7 @@
3939
#gist-message.top {
4040
top: 0;
4141
}
42-
@media (max-width: 600px) {
42+
@media (max-width: '${maxWidth}') {
4343
#gist-message {
4444
width: 100%;
4545
}

0 commit comments

Comments
 (0)