feat: identicon
This commit is contained in:
parent
ce96f7f650
commit
0791d57afd
|
@ -9,9 +9,10 @@
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime-corejs2": "^7.3.1",
|
"@babel/runtime-corejs2": "^7.3.1",
|
||||||
|
"identicon.js": "^2.3.3",
|
||||||
"murmur-client": "^0.3.8",
|
"murmur-client": "^0.3.8",
|
||||||
"null-loader": "^0.1.1",
|
"null-loader": "^0.1.1",
|
||||||
"status-js-api": "^1.2.9",
|
"status-js-api": "^1.2.11",
|
||||||
"webpack": "^4.29.0",
|
"webpack": "^4.29.0",
|
||||||
"webpack-merge": "^4.2.1",
|
"webpack-merge": "^4.2.1",
|
||||||
"webpack-node-externals": "^1.7.2"
|
"webpack-node-externals": "^1.7.2"
|
||||||
|
|
13
src/index.js
13
src/index.js
|
@ -1,5 +1,6 @@
|
||||||
import StatusJS from 'status-js-api';
|
import StatusJS from 'status-js-api';
|
||||||
import Murmur from 'murmur-client';
|
import Murmur from 'murmur-client';
|
||||||
|
import Identicon from 'identicon.js';
|
||||||
|
|
||||||
window.StatusWidget = function (channelName, chatWidget) {
|
window.StatusWidget = function (channelName, chatWidget) {
|
||||||
if (!channelName) { throw new Error("no channelName provider"); }
|
if (!channelName) { throw new Error("no channelName provider"); }
|
||||||
|
@ -45,11 +46,21 @@ window.StatusWidget = function (channelName, chatWidget) {
|
||||||
const msg = JSON.parse(data.payload)[1][0];
|
const msg = JSON.parse(data.payload)[1][0];
|
||||||
|
|
||||||
const message = { username: data.username, message: msg, pubkey: data.data.sig, data };
|
const message = { username: data.username, message: msg, pubkey: data.data.sig, data };
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
background: [255, 255, 255, 255],
|
||||||
|
margin: 0.24,
|
||||||
|
size: 32,
|
||||||
|
format: 'svg'
|
||||||
|
};
|
||||||
|
|
||||||
|
const identicon = new Identicon(message.pubkey, options).toString();
|
||||||
|
|
||||||
let div = document.createElement('div');
|
let div = document.createElement('div');
|
||||||
if (lastMessageUser === message.username) {
|
if (lastMessageUser === message.username) {
|
||||||
div.innerHTML = "<span class='message'>" + message.message + "</span>";
|
div.innerHTML = "<span class='message'>" + message.message + "</span>";
|
||||||
} else {
|
} else {
|
||||||
div.innerHTML = "<span class='username'>" + message.username + "</span><span class='message'>" + message.message + "</span>";
|
div.innerHTML = "<img class='identicon' width=40 height=40 src='data:image/svg+xml;base64," + identicon + "' /><span class='username'>" + message.username + "</span><span class='message'>" + message.message + "</span>";
|
||||||
}
|
}
|
||||||
chatBox.append(div);
|
chatBox.append(div);
|
||||||
lastMessageUser = message.username;
|
lastMessageUser = message.username;
|
||||||
|
|
|
@ -38,9 +38,16 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
._status-chat-widget .identicon {
|
||||||
|
border-radius: 50%;
|
||||||
|
float: left;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
._status-chat-widget .username {
|
._status-chat-widget .username {
|
||||||
color: #939ba1;
|
color: #939ba1;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
._status-chat-widget .message {
|
._status-chat-widget .message {
|
||||||
|
@ -51,4 +58,5 @@
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: 3px;
|
margin-top: 3px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
margin-left: 60px;
|
||||||
}
|
}
|
||||||
|
|
13
yarn.lock
13
yarn.lock
|
@ -2665,6 +2665,11 @@ iconv-lite@^0.4.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
safer-buffer ">= 2.1.2 < 3"
|
safer-buffer ">= 2.1.2 < 3"
|
||||||
|
|
||||||
|
identicon.js@^2.3.3:
|
||||||
|
version "2.3.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/identicon.js/-/identicon.js-2.3.3.tgz#c505b8d60ecc6ea13bbd991a33964c44c1ad60a1"
|
||||||
|
integrity sha512-/qgOkXKZ7YbeCYbawJ9uQQ3XJ3uBg9VDpvHjabCAPp6aRMhjLaFAxG90+1TxzrhKaj6AYpVGrx6UXQfQA41UEA==
|
||||||
|
|
||||||
idna-uts46-hx@^2.3.1:
|
idna-uts46-hx@^2.3.1:
|
||||||
version "2.3.1"
|
version "2.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9"
|
resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9"
|
||||||
|
@ -6123,10 +6128,10 @@ static-extend@^0.1.1:
|
||||||
define-property "^0.2.5"
|
define-property "^0.2.5"
|
||||||
object-copy "^0.1.0"
|
object-copy "^0.1.0"
|
||||||
|
|
||||||
status-js-api@^1.2.9:
|
status-js-api@^1.2.11:
|
||||||
version "1.2.9"
|
version "1.2.11"
|
||||||
resolved "https://registry.yarnpkg.com/status-js-api/-/status-js-api-1.2.9.tgz#76cfc6e7ccb378c49fb38f6b67d1374259a3dbcb"
|
resolved "https://registry.yarnpkg.com/status-js-api/-/status-js-api-1.2.11.tgz#835a8be9b87ca7eb9e3107f92f6e4988b9ed374a"
|
||||||
integrity sha512-Sn+Ivg3RjMrwVvc9cS2Yy87qBnZYhhhfcaVkvlNHWGcsBaEbvJ+RPzISumf+sjQUV3znhOSyb5KPRRM0+xtP+w==
|
integrity sha512-+lpfQsMdgCJusBLj6lWNA17z3vnfDfz7X5FawQzPy5+gGFC2UcTKwm+lwtqbQHv7K9Dkxr/FEBUgCG/2ce8+Xg==
|
||||||
dependencies:
|
dependencies:
|
||||||
bip39 "^2.5.0"
|
bip39 "^2.5.0"
|
||||||
bourne "^1.1.2"
|
bourne "^1.1.2"
|
||||||
|
|
Loading…
Reference in New Issue