Skip to content

Commit 5667b9c

Browse files
committed
Fix copy rich text instead of html
1 parent eef232d commit 5667b9c

1 file changed

Lines changed: 22 additions & 13 deletions

File tree

Assets/WebGLTemplates/Develop/debug-console.js

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ function initialzeDebugConsole() {
1717
debugConsole.appendChild(consoleInput);
1818

1919
consoleInput.onkeydown = function(e) {
20-
var key = e.keyCode || e.which;
21-
//On Enter
22-
if (key == 13) {
20+
if ( ['Enter', 'NumpadEnter'].includes(e.key)) {
2321
console.log(`Evaluating ${consoleInput.value}`);
2422
eval(consoleInput.value);
2523
}
@@ -29,13 +27,20 @@ function initialzeDebugConsole() {
2927
}
3028

3129
function setupConsoleLogPipe() {
32-
// Store actual console log functions, since they will be overwritten with new logic
30+
// Store actual console log functions
3331
let defaultConsoleLog = console.log;
3432
let defaultConsoleInfo = console.info;
3533
let defaultConsoleDebug = console.debug;
3634
let defaultConsoleWarn = console.warn;
3735
let defaultConsoleError = console.error;
3836

37+
// Overwrite log functions to parse and pipe to debug html console
38+
console.log = (message) => { parseMessageAndLog(message, 'log', defaultConsoleLog); };
39+
console.info = (message) => { parseMessageAndLog(message, 'info', defaultConsoleInfo); };
40+
console.debug = (message) => { parseMessageAndLog(message, 'debug', defaultConsoleDebug); };
41+
console.warn = (message) => { parseMessageAndLog(message, 'warn', defaultConsoleWarn); };
42+
console.error = (message) => { parseMessageAndLog(message, 'error', defaultConsoleError); };
43+
3944

4045
parseMessageAndLog = (message, logLevel, consoleLogFunction) => {
4146
let index = 0;
@@ -80,18 +85,12 @@ function setupConsoleLogPipe() {
8085
index = closingTag + "</color>".length;
8186
}
8287

83-
divLog(divMessage, logLevel);
88+
htmlLog(divMessage, logLevel);
8489
consoleLogFunction(consoleMessage, ...consoleArgs);
8590
};
86-
87-
console.log = (message) => { parseMessageAndLog(message, 'log', defaultConsoleLog); };
88-
console.info = (message) => { parseMessageAndLog(message, 'info', defaultConsoleInfo); };
89-
console.debug = (message) => { parseMessageAndLog(message, 'debug', defaultConsoleDebug); };
90-
console.warn = (message) => { parseMessageAndLog(message, 'warn', defaultConsoleWarn); };
91-
console.error = (message) => { parseMessageAndLog(message, 'error', defaultConsoleError); };
9291
}
9392

94-
function divLog(message, className) {
93+
function htmlLog(message, className) {
9594
var entry = document.createElement('div');
9695
entry.classList.add('entry', className);
9796
consoleDiv.appendChild(entry);
@@ -110,9 +109,19 @@ function divLog(message, className) {
110109
var copyIcon = document.createElement('div');
111110
copyIcon.classList.add('icon', 'gg-copy');
112111
copyButton.appendChild(copyIcon);
112+
113113
copyButton.addEventListener('click', function () {
114-
navigator.clipboard.writeText(message);
114+
function customCopyCommand(e) {
115+
// copy innerHTML as rich text
116+
e.clipboardData.setData("text/html", message);
117+
e.clipboardData.setData("text/plain", message);
118+
e.preventDefault();
119+
}
120+
document.addEventListener("copy", customCopyCommand);
121+
document.execCommand("copy");
122+
document.removeEventListener("copy", customCopyCommand);
115123

124+
// Show copy feedback to the user
116125
copyButton.classList.add('active');
117126
setTimeout(function () {
118127
copyButton.classList.remove('active');

0 commit comments

Comments
 (0)