chat-pane 2.4.15-e26ee52d → 2.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +0 -0
- package/README.md +0 -0
- package/dist/chat.bundle.js +10423 -10680
- package/dist/chat.bundle.js.map +1 -1
- package/dist/index.html +0 -0
- package/dist/longChatPane.js +10525 -10792
- package/dist/longChatPane.js.map +1 -1
- package/dist/shortChatPane.js +10520 -10787
- package/dist/shortChatPane.js.map +1 -1
- package/lib/create.js +409 -0
- package/lib/create.js.map +1 -0
- package/lib/index.js +351 -0
- package/lib/index.js.map +1 -0
- package/lib/longChatPane.js +496 -0
- package/lib/longChatPane.js.map +1 -0
- package/lib/main.js +8 -0
- package/lib/main.js.map +1 -0
- package/lib/shortChatPane.js +151 -0
- package/lib/shortChatPane.js.map +1 -0
- package/package.json +7 -6
- package/src/create.ts +2 -1
- package/src/index.html +0 -0
- package/src/index.js +14 -13
- package/src/longChatPane.js +7 -7
- package/src/main.js +0 -0
- package/src/shortChatPane.js +2 -2
package/lib/index.js
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _solidLogic = require("solid-logic");
|
|
4
|
+
|
|
5
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
6
|
+
|
|
7
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
8
|
+
|
|
9
|
+
var ChatPane = require('./longChatPane.js');
|
|
10
|
+
|
|
11
|
+
var $rdf = require('rdflib');
|
|
12
|
+
|
|
13
|
+
var UI = require('solid-ui');
|
|
14
|
+
|
|
15
|
+
var _require = require('./create.ts'),
|
|
16
|
+
getChat = _require.getChat;
|
|
17
|
+
|
|
18
|
+
var menuDiv = document.createElement('div');
|
|
19
|
+
|
|
20
|
+
function renderMenuDiv() {
|
|
21
|
+
return _renderMenuDiv.apply(this, arguments);
|
|
22
|
+
} // FIXME:
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
function _renderMenuDiv() {
|
|
26
|
+
_renderMenuDiv = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
27
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
28
|
+
while (1) {
|
|
29
|
+
switch (_context4.prev = _context4.next) {
|
|
30
|
+
case 0:
|
|
31
|
+
console.log('get invites list');
|
|
32
|
+
_context4.next = 3;
|
|
33
|
+
return getInvitesList();
|
|
34
|
+
|
|
35
|
+
case 3:
|
|
36
|
+
menuDiv.innerHTML = _context4.sent;
|
|
37
|
+
console.log('get chats list');
|
|
38
|
+
_context4.t0 = menuDiv.innerHTML;
|
|
39
|
+
_context4.next = 8;
|
|
40
|
+
return getChatsList();
|
|
41
|
+
|
|
42
|
+
case 8:
|
|
43
|
+
menuDiv.innerHTML = _context4.t0 += _context4.sent;
|
|
44
|
+
|
|
45
|
+
case 9:
|
|
46
|
+
case "end":
|
|
47
|
+
return _context4.stop();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}, _callee4);
|
|
51
|
+
}));
|
|
52
|
+
return _renderMenuDiv.apply(this, arguments);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
window.$rdf = $rdf;
|
|
56
|
+
|
|
57
|
+
window.followLink = /*#__PURE__*/function () {
|
|
58
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(from, follow, multiple) {
|
|
59
|
+
var subject, doc, predicate;
|
|
60
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
61
|
+
while (1) {
|
|
62
|
+
switch (_context.prev = _context.next) {
|
|
63
|
+
case 0:
|
|
64
|
+
subject = $rdf.sym(from);
|
|
65
|
+
doc = subject.doc();
|
|
66
|
+
_context.next = 4;
|
|
67
|
+
return new Promise(function (resolve, reject) {
|
|
68
|
+
_solidLogic.store.fetcher.load(doc).then(resolve, reject);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
case 4:
|
|
72
|
+
predicate = $rdf.sym(follow);
|
|
73
|
+
|
|
74
|
+
if (!multiple) {
|
|
75
|
+
_context.next = 7;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return _context.abrupt("return", _solidLogic.store.each(subject, predicate).map(function (n) {
|
|
80
|
+
return n.value;
|
|
81
|
+
}));
|
|
82
|
+
|
|
83
|
+
case 7:
|
|
84
|
+
return _context.abrupt("return", _solidLogic.store.any(subject, predicate).value);
|
|
85
|
+
|
|
86
|
+
case 8:
|
|
87
|
+
case "end":
|
|
88
|
+
return _context.stop();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}, _callee);
|
|
92
|
+
}));
|
|
93
|
+
|
|
94
|
+
return function (_x, _x2, _x3) {
|
|
95
|
+
return _ref.apply(this, arguments);
|
|
96
|
+
};
|
|
97
|
+
}();
|
|
98
|
+
|
|
99
|
+
function toLi(uri) {
|
|
100
|
+
return "<li><a href=\"?#".concat(encodeURIComponent(uri), "\">").concat(uri, "</a></li>");
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function getChatsList() {
|
|
104
|
+
return _getChatsList.apply(this, arguments);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function _getChatsList() {
|
|
108
|
+
_getChatsList = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
|
|
109
|
+
var _yield$UI$login$findA, instances;
|
|
110
|
+
|
|
111
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
112
|
+
while (1) {
|
|
113
|
+
switch (_context5.prev = _context5.next) {
|
|
114
|
+
case 0:
|
|
115
|
+
_context5.next = 2;
|
|
116
|
+
return UI.login.findAppInstances({}, $rdf.sym('http://www.w3.org/ns/pim/meeting#LongChat'));
|
|
117
|
+
|
|
118
|
+
case 2:
|
|
119
|
+
_yield$UI$login$findA = _context5.sent;
|
|
120
|
+
instances = _yield$UI$login$findA.instances;
|
|
121
|
+
return _context5.abrupt("return", "<h2>Your chats:\n<ul>\n ".concat(instances.map(function (n) {
|
|
122
|
+
return n.value;
|
|
123
|
+
}).map(toLi), "\n</ul>"));
|
|
124
|
+
|
|
125
|
+
case 5:
|
|
126
|
+
case "end":
|
|
127
|
+
return _context5.stop();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, _callee5);
|
|
131
|
+
}));
|
|
132
|
+
return _getChatsList.apply(this, arguments);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
window.inviteSomeone = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
136
|
+
var invitee, created;
|
|
137
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
138
|
+
while (1) {
|
|
139
|
+
switch (_context2.prev = _context2.next) {
|
|
140
|
+
case 0:
|
|
141
|
+
invitee = _solidLogic.store.namedNode(document.getElementById('invitee').value);
|
|
142
|
+
_context2.next = 3;
|
|
143
|
+
return getChat(invitee);
|
|
144
|
+
|
|
145
|
+
case 3:
|
|
146
|
+
created = _context2.sent;
|
|
147
|
+
console.log(created);
|
|
148
|
+
renderMenuDiv();
|
|
149
|
+
|
|
150
|
+
case 6:
|
|
151
|
+
case "end":
|
|
152
|
+
return _context2.stop();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}, _callee2);
|
|
156
|
+
}));
|
|
157
|
+
|
|
158
|
+
function getInvitesList() {
|
|
159
|
+
return _getInvitesList.apply(this, arguments);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function _getInvitesList() {
|
|
163
|
+
_getInvitesList = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() {
|
|
164
|
+
var webId, globalInbox, inboxItems, invites, promises;
|
|
165
|
+
return regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
166
|
+
while (1) {
|
|
167
|
+
switch (_context7.prev = _context7.next) {
|
|
168
|
+
case 0:
|
|
169
|
+
_context7.next = 2;
|
|
170
|
+
return SolidAuthClient.currentSession();
|
|
171
|
+
|
|
172
|
+
case 2:
|
|
173
|
+
webId = _context7.sent.webId;
|
|
174
|
+
_context7.next = 5;
|
|
175
|
+
return window.followLink(webId, UI.ns.ldp('inbox'));
|
|
176
|
+
|
|
177
|
+
case 5:
|
|
178
|
+
globalInbox = _context7.sent;
|
|
179
|
+
_context7.next = 8;
|
|
180
|
+
return window.followLink(globalInbox, UI.ns.ldp('contains'), true);
|
|
181
|
+
|
|
182
|
+
case 8:
|
|
183
|
+
inboxItems = _context7.sent;
|
|
184
|
+
invites = [];
|
|
185
|
+
promises = inboxItems.map( /*#__PURE__*/function () {
|
|
186
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(x) {
|
|
187
|
+
var inboxMsgTypes, isLongChatInvite, chatUrl;
|
|
188
|
+
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
189
|
+
while (1) {
|
|
190
|
+
switch (_context6.prev = _context6.next) {
|
|
191
|
+
case 0:
|
|
192
|
+
_context6.prev = 0;
|
|
193
|
+
_context6.next = 3;
|
|
194
|
+
return window.followLink(x, UI.ns.rdf('type'), true);
|
|
195
|
+
|
|
196
|
+
case 3:
|
|
197
|
+
inboxMsgTypes = _context6.sent;
|
|
198
|
+
isLongChatInvite = inboxMsgTypes.indexOf('http://www.w3.org/ns/pim/meeting#LongChatInvite') !== -1;
|
|
199
|
+
|
|
200
|
+
if (!isLongChatInvite) {
|
|
201
|
+
_context6.next = 11;
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
console.log('new chat!', x);
|
|
206
|
+
_context6.next = 9;
|
|
207
|
+
return window.followLink(x, UI.ns.rdf('seeAlso'));
|
|
208
|
+
|
|
209
|
+
case 9:
|
|
210
|
+
chatUrl = _context6.sent;
|
|
211
|
+
invites.push(chatUrl);
|
|
212
|
+
|
|
213
|
+
case 11:
|
|
214
|
+
_context6.next = 16;
|
|
215
|
+
break;
|
|
216
|
+
|
|
217
|
+
case 13:
|
|
218
|
+
_context6.prev = 13;
|
|
219
|
+
_context6.t0 = _context6["catch"](0);
|
|
220
|
+
console.error('Failed to parse inbox item', x);
|
|
221
|
+
|
|
222
|
+
case 16:
|
|
223
|
+
case "end":
|
|
224
|
+
return _context6.stop();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}, _callee6, null, [[0, 13]]);
|
|
228
|
+
}));
|
|
229
|
+
|
|
230
|
+
return function (_x6) {
|
|
231
|
+
return _ref4.apply(this, arguments);
|
|
232
|
+
};
|
|
233
|
+
}());
|
|
234
|
+
_context7.next = 13;
|
|
235
|
+
return Promise.all(promises);
|
|
236
|
+
|
|
237
|
+
case 13:
|
|
238
|
+
return _context7.abrupt("return", "<h2>Your Invites:\n <ul>\n ".concat(invites.map(toLi), "\n </ul>\n Invite someone: <input id=\"invitee\"><button onclick=\"inviteSomeone()\">Send Invite</button>"));
|
|
239
|
+
|
|
240
|
+
case 14:
|
|
241
|
+
case "end":
|
|
242
|
+
return _context7.stop();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}, _callee7);
|
|
246
|
+
}));
|
|
247
|
+
return _getInvitesList.apply(this, arguments);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
function appendChatPane(_x4, _x5) {
|
|
251
|
+
return _appendChatPane.apply(this, arguments);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
function _appendChatPane() {
|
|
255
|
+
_appendChatPane = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8(dom, uri) {
|
|
256
|
+
var subject, doc, context, options, paneDiv;
|
|
257
|
+
return regeneratorRuntime.wrap(function _callee8$(_context8) {
|
|
258
|
+
while (1) {
|
|
259
|
+
switch (_context8.prev = _context8.next) {
|
|
260
|
+
case 0:
|
|
261
|
+
subject = $rdf.sym(uri);
|
|
262
|
+
doc = subject.doc();
|
|
263
|
+
_context8.next = 4;
|
|
264
|
+
return new Promise(function (resolve, reject) {
|
|
265
|
+
_solidLogic.store.fetcher.load(doc).then(resolve, reject);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
case 4:
|
|
269
|
+
context = {
|
|
270
|
+
// see https://github.com/solid/solid-panes/blob/005f90295d83e499fd626bd84aeb3df10135d5c1/src/index.ts#L30-L34
|
|
271
|
+
dom: dom,
|
|
272
|
+
session: {
|
|
273
|
+
store: _solidLogic.store
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
options = {};
|
|
277
|
+
renderMenuDiv();
|
|
278
|
+
dom.body.appendChild(menuDiv);
|
|
279
|
+
console.log('chat', subject);
|
|
280
|
+
paneDiv = ChatPane.render(subject, context, options);
|
|
281
|
+
dom.body.appendChild(paneDiv);
|
|
282
|
+
|
|
283
|
+
case 11:
|
|
284
|
+
case "end":
|
|
285
|
+
return _context8.stop();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}, _callee8);
|
|
289
|
+
}));
|
|
290
|
+
return _appendChatPane.apply(this, arguments);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
document.addEventListener('DOMContentLoaded', function () {});
|
|
294
|
+
|
|
295
|
+
window.onload = function () {
|
|
296
|
+
console.log('document ready');
|
|
297
|
+
|
|
298
|
+
var onSessionChange = function onSessionChange() {
|
|
299
|
+
var currentUser = _solidLogic.authn.currentUser();
|
|
300
|
+
|
|
301
|
+
if (!currentUser) {
|
|
302
|
+
console.log('The user is not logged in');
|
|
303
|
+
document.getElementById('loginBanner').innerHTML = '<button onclick="popupLogin()">Log in</button>';
|
|
304
|
+
} else {
|
|
305
|
+
console.log("Logged in as ".concat(currentUser));
|
|
306
|
+
document.getElementById('loginBanner').innerHTML = "Logged in as ".concat(currentUser, " <button onclick=\"logout()\">Log out</button>"); // Set up the view for the subject indicated in the fragment of the window's URL
|
|
307
|
+
|
|
308
|
+
var uri = decodeURIComponent(window.location.hash.substr(1));
|
|
309
|
+
|
|
310
|
+
if (uri.length === 0) {
|
|
311
|
+
window.location = '?#' + encodeURIComponent('https://solidos.solidcommunity.net/Team/SolidOs%20team%20chat/index.ttl#this');
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
appendChatPane(document, uri);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
_solidLogic.authSession.onLogin(function () {
|
|
319
|
+
return onSessionChange();
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
_solidLogic.authSession.onSessionRestore(function () {
|
|
323
|
+
return onSessionChange();
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
onSessionChange();
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
window.logout = function () {
|
|
330
|
+
_solidLogic.authSession.logout();
|
|
331
|
+
|
|
332
|
+
window.location = '';
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
window.popupLogin = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
|
|
336
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
337
|
+
while (1) {
|
|
338
|
+
switch (_context3.prev = _context3.next) {
|
|
339
|
+
case 0:
|
|
340
|
+
if (!_solidLogic.authn.currentUser()) {
|
|
341
|
+
UI.login.renderSignInPopup(document);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
case 1:
|
|
345
|
+
case "end":
|
|
346
|
+
return _context3.stop();
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}, _callee3);
|
|
350
|
+
}));
|
|
351
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["ChatPane","require","$rdf","UI","getChat","menuDiv","document","createElement","renderMenuDiv","console","log","getInvitesList","innerHTML","getChatsList","window","followLink","from","follow","multiple","subject","sym","doc","Promise","resolve","reject","store","fetcher","load","then","predicate","each","map","n","value","any","toLi","uri","encodeURIComponent","login","findAppInstances","instances","inviteSomeone","invitee","namedNode","getElementById","created","SolidAuthClient","currentSession","webId","ns","ldp","globalInbox","inboxItems","invites","promises","x","rdf","inboxMsgTypes","isLongChatInvite","indexOf","chatUrl","push","error","all","appendChatPane","dom","context","session","options","body","appendChild","paneDiv","render","addEventListener","onload","onSessionChange","currentUser","authn","decodeURIComponent","location","hash","substr","length","authSession","onLogin","onSessionRestore","logout","popupLogin","renderSignInPopup"],"mappings":"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","sourcesContent":["/* global SolidAuthClient */\n\nimport { store, authn, authSession } from 'solid-logic'\nconst ChatPane = require('./longChatPane.js')\nconst $rdf = require('rdflib')\nconst UI = require('solid-ui')\nconst { getChat } = require('./create.ts')\n\nconst menuDiv = document.createElement('div')\n\nasync function renderMenuDiv () {\n console.log('get invites list')\n menuDiv.innerHTML = await getInvitesList()\n console.log('get chats list')\n menuDiv.innerHTML += await getChatsList()\n}\n// FIXME:\nwindow.$rdf = $rdf\nwindow.followLink = async function (from, follow, multiple) {\n const subject = $rdf.sym(from)\n const doc = subject.doc()\n await new Promise((resolve, reject) => {\n store.fetcher.load(doc).then(resolve, reject)\n })\n const predicate = $rdf.sym(follow)\n if (multiple) {\n return store.each(subject, predicate).map(n => n.value)\n }\n return store.any(subject, predicate).value\n}\n\nfunction toLi (uri) {\n return `<li><a href=\"?#${encodeURIComponent(uri)}\">${uri}</a></li>`\n}\n\nasync function getChatsList () {\n const { instances } = await UI.login.findAppInstances({}, $rdf.sym('http://www.w3.org/ns/pim/meeting#LongChat'))\n return `<h2>Your chats:\n<ul>\n ${instances.map(n => n.value).map(toLi)}\n</ul>`\n}\n\nwindow.inviteSomeone = async function () {\n const invitee = store.namedNode(document.getElementById('invitee').value)\n const created = await getChat(invitee)\n console.log(created)\n renderMenuDiv()\n}\n\nasync function getInvitesList () {\n const webId = (await SolidAuthClient.currentSession()).webId\n const globalInbox = await window.followLink(webId, UI.ns.ldp('inbox'))\n const inboxItems = await window.followLink(globalInbox, UI.ns.ldp('contains'), true)\n const invites = []\n const promises = inboxItems.map(async x => {\n try {\n const inboxMsgTypes = await window.followLink(x, UI.ns.rdf('type'), true)\n const isLongChatInvite = (inboxMsgTypes.indexOf('http://www.w3.org/ns/pim/meeting#LongChatInvite') !== -1)\n if (isLongChatInvite) {\n console.log('new chat!', x)\n const chatUrl = await window.followLink(x, UI.ns.rdf('seeAlso'))\n invites.push(chatUrl)\n }\n } catch (e) {\n console.error('Failed to parse inbox item', x)\n }\n })\n await Promise.all(promises)\n return `<h2>Your Invites:\n <ul>\n ${invites.map(toLi)}\n </ul>\n Invite someone: <input id=\"invitee\"><button onclick=\"inviteSomeone()\">Send Invite</button>`\n}\n\nasync function appendChatPane (dom, uri) {\n const subject = $rdf.sym(uri)\n const doc = subject.doc()\n\n await new Promise((resolve, reject) => {\n store.fetcher.load(doc).then(resolve, reject)\n })\n const context = { // see https://github.com/solid/solid-panes/blob/005f90295d83e499fd626bd84aeb3df10135d5c1/src/index.ts#L30-L34\n dom,\n session: {\n store: store\n }\n }\n const options = {}\n renderMenuDiv()\n dom.body.appendChild(menuDiv)\n console.log('chat', subject)\n const paneDiv = ChatPane.render(subject, context, options)\n dom.body.appendChild(paneDiv)\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n})\n\nwindow.onload = () => {\n console.log('document ready')\n const onSessionChange = () => {\n const currentUser = authn.currentUser()\n if (!currentUser) {\n console.log('The user is not logged in')\n document.getElementById('loginBanner').innerHTML = '<button onclick=\"popupLogin()\">Log in</button>'\n } else {\n console.log(`Logged in as ${currentUser}`)\n\n document.getElementById('loginBanner').innerHTML = `Logged in as ${currentUser} <button onclick=\"logout()\">Log out</button>`\n // Set up the view for the subject indicated in the fragment of the window's URL\n const uri = decodeURIComponent(window.location.hash.substr(1))\n if (uri.length === 0) {\n window.location = '?#' + encodeURIComponent('https://solidos.solidcommunity.net/Team/SolidOs%20team%20chat/index.ttl#this')\n }\n appendChatPane(document, uri)\n }\n }\n authSession.onLogin(() => onSessionChange())\n authSession.onSessionRestore(() => onSessionChange())\n onSessionChange()\n}\nwindow.logout = () => {\n authSession.logout()\n window.location = ''\n}\nwindow.popupLogin = async function () {\n if (!authn.currentUser()) {\n UI.login.renderSignInPopup(document)\n }\n}\n"],"file":"index.js"}
|