-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
94 lines (79 loc) · 3.72 KB
/
Copy pathscript.js
File metadata and controls
94 lines (79 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
const conversation = document.querySelector('.conversation');
const messageInput = document.querySelector('.message-input');
let theme = "dark";
document.querySelector('.message-input').addEventListener('keypress', function (e) {
var key = e.which || e.keyCode;
if (key === 13) {
let message = messageInput.value;
console.log(message.trim())
if (message.startsWith('/received ') || message.startsWith('/r ')) {
message = message.replace('/received ', '');
message = message.replace('/r ', '');
sendMessage(message, 'received');
}
else if (message.trim() === '/dark') { darkTheme(); }
else if (message.trim() === '/light') { lightTheme(); }
else { sendMessage(message, 'sent'); }
}
});
const sendMessage = (message, type) => {
if (message.trim() !== '') {
const options = { timeZone: "Europe/Paris", hour12: true, hour: "2-digit", minute: "2-digit" }
const time = new Date().toLocaleTimeString("en-US", options);
const messages = document.getElementsByClassName('message');
let divContainer = document.createElement("div");
let divMessage = document.createElement("div");
let messageNode = document.createTextNode(message);
let a = document.createElement("a");
let aText = document.createTextNode(time);
a.classList.add('message-infos');
divMessage.classList.add('message');
divContainer.classList.add('message-container');
if (type === 'sent') {
divContainer.classList.add('right');
a.classList.add('f-right');
if (messages[messages.length - 1].classList.contains('sent') || messages[messages.length - 1].classList.contains('sent-continuous')) {
divMessage.classList.add('sent-continuous');
messages[messages.length - 1].parentNode.querySelector('a').remove();
} else { divMessage.classList.add('sent'); }
}
else if (type === 'received') {
divContainer.classList.add('left');
a.classList.add('f-left');
aText = document.createTextNode("Someone · " + time);
if (messages[messages.length - 1].classList.contains('received') || messages[messages.length - 1].classList.contains('received-continuous')) {
divMessage.classList.add('received-continuous');
messages[messages.length - 1].parentNode.querySelector('a').remove();
} else { divMessage.classList.add('received'); }
if (theme === "light") { divMessage.classList.add('light-received') }
}
a.appendChild(aText);
divMessage.appendChild(messageNode);
divContainer.appendChild(divMessage);
divContainer.appendChild(a);
conversation.insertBefore(divContainer, messageInput);
messageInput.value = '';
}
}
const lightTheme = () => {
theme = "light";
document.querySelector('body').style.backgroundColor = "white";
document.querySelector('.twitter-logo').classList.add('twitter-logo-light');
document.querySelector('.title').style.color = "black";
const receivedMessages = document.querySelectorAll('.received, .received-continuous');
for (let i = 0; i < receivedMessages.length; i++) {
receivedMessages[i].classList.add('light-received');
}
document.querySelector('.message-input').classList.add('message-input-light');
}
const darkTheme = () => {
theme = "dark";
document.querySelector('body').style.backgroundColor = "#15202B";
document.querySelector('.twitter-logo').classList.remove('twitter-logo-light');
document.querySelector('.title').style.color = "white";
const receivedMessages = document.querySelectorAll('.received, .received-continuous');
for (let i = 0; i < receivedMessages.length; i++) {
receivedMessages[i].classList.remove('light-received');
}
document.querySelector('.message-input').classList.remove('message-input-light');
}