Skip to content

Commit d144d4d

Browse files
committed
Cleanup.
1 parent 074e0a3 commit d144d4d

File tree

6 files changed

+175
-165
lines changed

6 files changed

+175
-165
lines changed

demo/main.js

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -44,24 +44,6 @@ const files = [
4444
"https://reqres.in/api/products/3",
4545
];
4646

47-
setTimeout(async () => {
48-
console.log("LOADING AUDIO:");
49-
for (let i = 0; i < files.length; i++) {
50-
let file = files[i];
51-
52-
const response = await fetch(file);
53-
if (response.ok) {
54-
const arrayBuffer = await response.arrayBuffer();
55-
if (!arrayBuffer.byteLength) return;
56-
}
57-
}
58-
59-
60-
const a = await fetch("https://reqres.in/api/products/3");
61-
const j = await a.json();
62-
console.log(j);
63-
}, 5000);
64-
6547
setTimeout(() => {
6648
const sheet1 = new CSSStyleSheet();
6749
sheet1.replaceSync("* { color: red; }");
@@ -74,4 +56,12 @@ setTimeout(() => {
7456
`;
7557
document.body.appendChild(div);*/
7658
document.adoptedStyleSheets = [sheet1];
77-
}, 2000);
59+
}, 2000);
60+
61+
window.addEventListener('error', e => {
62+
console.log(e);
63+
});
64+
65+
setTimeout(() => {
66+
x();
67+
}, 3000);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gleap",
3-
"version": "6.8.15",
3+
"version": "6.9.0",
44
"main": "build/index.js",
55
"scripts": {
66
"start": "webpack serve",

src/Gleap.js

Lines changed: 35 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import AutoConfig from "./AutoConfig";
2121
import { ScrollStopper } from "./ScrollStopper";
2222
import { isLocalNetwork } from "./NetworkUtils";
2323
import { ScreenRecorder } from "./ScreenRecorder";
24+
import GleapConsoleLogManager from "./GleapConsoleLogManager";
25+
import GleapCrashDetector from "./GleapCrashDetector";
2426

2527
if (typeof HTMLCanvasElement !== "undefined" && HTMLCanvasElement.prototype) {
2628
HTMLCanvasElement.prototype.__originalGetContext =
@@ -53,11 +55,9 @@ class Gleap {
5355
screenshot = null;
5456
autostartDrawing = false;
5557
actionLog = [];
56-
logArray = [];
5758
customData = {};
5859
formData = {};
5960
excludeData = {};
60-
logMaxLength = 500;
6161
buttonType = Gleap.FEEDBACK_BUTTON_NONE;
6262
feedbackType = "BUG";
6363
sessionStart = new Date();
@@ -197,7 +197,7 @@ class Gleap {
197197
oldSession.gleapHash = gleapHash;
198198

199199
saveToGleapCache(`session-${sdkKey}`, oldSession);
200-
} catch (exp) {}
200+
} catch (exp) { }
201201
}
202202

203203
const sessionInstance = Session.getInstance();
@@ -209,7 +209,7 @@ class Gleap {
209209
.then(function () {
210210
instance.postInit();
211211
})
212-
.catch(function (err) {});
212+
.catch(function (err) { });
213213
}, 0);
214214
});
215215
sessionInstance.startSession();
@@ -477,7 +477,7 @@ class Gleap {
477477
/**
478478
* Enable Intercom compatibility mode
479479
*/
480-
static enableIntercomCompatibilityMode() {}
480+
static enableIntercomCompatibilityMode() { }
481481

482482
/**
483483
* Show or hide the feedback button
@@ -539,13 +539,13 @@ class Gleap {
539539
* Enables the privacy policy.
540540
* @param {boolean} enabled
541541
*/
542-
static enablePrivacyPolicy(enabled) {}
542+
static enablePrivacyPolicy(enabled) { }
543543

544544
/**
545545
* Sets the privacy policy url.
546546
* @param {string} privacyPolicyUrl
547547
*/
548-
static setPrivacyPolicyUrl(privacyPolicyUrl) {}
548+
static setPrivacyPolicyUrl(privacyPolicyUrl) { }
549549

550550
/**
551551
* Sets the widget info texts.
@@ -833,12 +833,11 @@ class Gleap {
833833
instance.overrideLanguage,
834834
instance.customLogoUrl,
835835
instance.poweredByHidden,
836-
function () {},
836+
function () { },
837837
`${translateText(
838838
"Hi",
839839
instance.overrideLanguage
840-
)} <span id="bb-user-name">${displayUserName}</span> ${
841-
instance.welcomeIcon
840+
)} <span id="bb-user-name">${displayUserName}</span> ${instance.welcomeIcon
842841
}`,
843842
translateText(
844843
instance.widgetInfo.dialogSubtitle,
@@ -913,7 +912,7 @@ class Gleap {
913912
// Deep copy to prevent changes.
914913
try {
915914
feedbackOptions = JSON.parse(JSON.stringify(feedbackOptions));
916-
} catch (e) {}
915+
} catch (e) { }
917916

918917
return feedbackOptions;
919918
}
@@ -970,16 +969,16 @@ class Gleap {
970969

971970
const emailFormItem =
972971
feedbackOptions.collectEmail === true ||
973-
feedbackOptions.collectEmail === undefined
972+
feedbackOptions.collectEmail === undefined
974973
? {
975-
title: "Email",
976-
placeholder: "Your e-mail",
977-
type: "text",
978-
inputtype: "email",
979-
name: "reportedBy",
980-
required: true,
981-
remember: true,
982-
}
974+
title: "Email",
975+
placeholder: "Your e-mail",
976+
type: "text",
977+
inputtype: "email",
978+
name: "reportedBy",
979+
required: true,
980+
remember: true,
981+
}
983982
: null;
984983

985984
// Collect email when user needs to enter it.
@@ -1087,114 +1086,8 @@ class Gleap {
10871086
}
10881087
}
10891088

1090-
startCrashDetection() {
1091-
const self = this;
1092-
window.onerror = function (msg, url, lineNo, columnNo, error) {
1093-
var stackTrace = "";
1094-
if (error !== null && typeof error.stack !== "undefined") {
1095-
stackTrace = error.stack;
1096-
}
1097-
var message = [
1098-
"Message: " + msg,
1099-
"URL: " + url,
1100-
"Line: " + lineNo,
1101-
"Column: " + columnNo,
1102-
"Stack: " + stackTrace,
1103-
];
1104-
self.addLog(message, "ERROR");
1105-
1106-
if (
1107-
self.enabledCrashDetector &&
1108-
!self.appCrashDetected &&
1109-
!self.currentlySendingBug
1110-
) {
1111-
self.appCrashDetected = true;
1112-
if (self.enabledCrashDetectorSilent) {
1113-
return Gleap.sendSilentReport(
1114-
{
1115-
errorMessage: msg,
1116-
url: url,
1117-
lineNo: lineNo,
1118-
columnNo: columnNo,
1119-
stackTrace: stackTrace,
1120-
},
1121-
Gleap.PRIORITY_MEDIUM,
1122-
"CRASH",
1123-
{
1124-
screenshot: true,
1125-
replays: true,
1126-
}
1127-
);
1128-
} else {
1129-
Gleap.startFeedbackFlow("crash");
1130-
}
1131-
}
1132-
1133-
return false;
1134-
};
1135-
}
1136-
1137-
truncateString(str, num) {
1138-
if (str.length > num) {
1139-
return str.slice(0, num) + "...";
1140-
} else {
1141-
return str;
1142-
}
1143-
}
1144-
1145-
addLog(args, priority) {
1146-
if (!args) {
1147-
return;
1148-
}
1149-
1150-
var log = "";
1151-
for (var i = 0; i < args.length; i++) {
1152-
log += args[i] + " ";
1153-
}
1154-
this.logArray.push({
1155-
log: this.truncateString(log, 1000),
1156-
date: new Date(),
1157-
priority,
1158-
});
1159-
1160-
if (this.logArray.length > this.logMaxLength) {
1161-
this.logArray.shift();
1162-
}
1163-
}
1164-
11651089
static disableConsoleLogOverwrite() {
1166-
window.console = this.getInstance().originalConsoleLog;
1167-
}
1168-
1169-
overwriteConsoleLog() {
1170-
const self = this;
1171-
window.console = (function (origConsole) {
1172-
if (!window.console || !origConsole) {
1173-
origConsole = {};
1174-
}
1175-
1176-
self.originalConsoleLog = origConsole;
1177-
1178-
return {
1179-
...origConsole,
1180-
log: function () {
1181-
self.addLog(arguments, "INFO");
1182-
origConsole.log && origConsole.log.apply(origConsole, arguments);
1183-
},
1184-
warn: function () {
1185-
self.addLog(arguments, "WARNING");
1186-
origConsole.warn && origConsole.warn.apply(origConsole, arguments);
1187-
},
1188-
error: function () {
1189-
self.addLog(arguments, "ERROR");
1190-
origConsole.error && origConsole.error.apply(origConsole, arguments);
1191-
},
1192-
info: function (v) {
1193-
self.addLog(arguments, "INFO");
1194-
origConsole.info && origConsole.info.apply(origConsole, arguments);
1195-
},
1196-
};
1197-
})(window.console);
1090+
GleapConsoleLogManager.getInstance().stop();
11981091
}
11991092

12001093
resetLoading(resetProgress) {
@@ -1377,10 +1270,10 @@ class Gleap {
13771270
reportCleanupOnClose() {
13781271
try {
13791272
Gleap.enableReplays(this.replaysEnabled);
1380-
} catch (exp) {}
1273+
} catch (exp) { }
13811274
try {
13821275
this.networkIntercepter.setStopped(false);
1383-
} catch (exp) {}
1276+
} catch (exp) { }
13841277

13851278
this.actionToPerform = undefined;
13861279

@@ -1422,8 +1315,9 @@ class Gleap {
14221315
}
14231316

14241317
init() {
1425-
this.overwriteConsoleLog();
1426-
this.startCrashDetection();
1318+
GleapConsoleLogManager.getInstance().start();
1319+
GleapCrashDetector.getInstance().start();
1320+
14271321
this.registerKeyboardListener();
14281322
this.registerEscListener();
14291323

@@ -1512,18 +1406,16 @@ class Gleap {
15121406
this.buttonType === Gleap.FEEDBACK_BUTTON_CLASSIC_BOTTOM ||
15131407
this.buttonType === Gleap.FEEDBACK_BUTTON_CLASSIC_LEFT
15141408
) {
1515-
elem.innerHTML = `<div class="bb-feedback-button-classic ${
1516-
this.buttonType === Gleap.FEEDBACK_BUTTON_CLASSIC_LEFT
1517-
? "bb-feedback-button-classic--left"
1518-
: ""
1519-
}${
1520-
this.buttonType === Gleap.FEEDBACK_BUTTON_CLASSIC_BOTTOM
1409+
elem.innerHTML = `<div class="bb-feedback-button-classic ${this.buttonType === Gleap.FEEDBACK_BUTTON_CLASSIC_LEFT
1410+
? "bb-feedback-button-classic--left"
1411+
: ""
1412+
}${this.buttonType === Gleap.FEEDBACK_BUTTON_CLASSIC_BOTTOM
15211413
? "bb-feedback-button-classic--bottom"
15221414
: ""
1523-
}">${translateText(
1524-
this.feedbackButtonText,
1525-
this.overrideLanguage
1526-
)}</div>`;
1415+
}">${translateText(
1416+
this.feedbackButtonText,
1417+
this.overrideLanguage
1418+
)}</div>`;
15271419
} else {
15281420
elem.innerHTML = `<div class="bb-feedback-button-icon">${buttonIcon}${loadIcon(
15291421
"arrowdown",
@@ -1570,7 +1462,7 @@ class Gleap {
15701462
// Prevent shoutout from showing again.
15711463
try {
15721464
localStorage.setItem("bb-fto", true);
1573-
} catch (exp) {}
1465+
} catch (exp) { }
15741466

15751467
this.notifyEvent("open");
15761468
}
@@ -1691,7 +1583,7 @@ class Gleap {
16911583
priority: this.severity,
16921584
customData: this.customData,
16931585
metaData: this.getMetaData(),
1694-
consoleLog: this.logArray,
1586+
consoleLog: GleapConsoleLogManager.getInstance().getLogs(),
16951587
networkLogs: this.networkIntercepter.getRequests(),
16961588
customEventLog: StreamedEvent.getInstance().eventArray,
16971589
type: this.feedbackType,

src/GleapClickListener.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import GleapConsoleLogManager from "./GleapConsoleLogManager";
2+
3+
export default class GleapClickListener {
4+
// GleapClickListener singleton
5+
static instance;
6+
static getInstance() {
7+
if (!this.instance) {
8+
this.instance = new GleapClickListener();
9+
}
10+
return this.instance;
11+
}
12+
13+
elementToString(element) {
14+
return "NOT IMPLEMENTED";
15+
}
16+
17+
start() {
18+
document.addEventListener("click", (event) => {
19+
if (!event.target) {
20+
return;
21+
}
22+
23+
GleapConsoleLogManager.getInstance().addLog(
24+
[elementToString(event.target)],
25+
"CLICK"
26+
);
27+
});
28+
}
29+
}

0 commit comments

Comments
 (0)