fix: get channel creation and chat to sort of work
This commit is contained in:
parent
afeb6f75e8
commit
de77f0fbe9
3 changed files with 37 additions and 37 deletions
|
|
@ -67,7 +67,7 @@ const APP = {
|
|||
*/
|
||||
|
||||
if (!document.body.dataset.channel || document.body.dataset.channel !== channel_id) {
|
||||
const previous = document.body.dataset.channel;
|
||||
const previous = typeof document.body.dataset.channel === 'string' ? document.body.dataset.channel : undefined;
|
||||
|
||||
/*
|
||||
console.dir({
|
||||
|
|
@ -80,24 +80,38 @@ const APP = {
|
|||
});
|
||||
*/
|
||||
|
||||
document.body.dataset.channel = channel_id;
|
||||
if ( channel_id ) {
|
||||
document.body.dataset.channel = channel_id;
|
||||
}
|
||||
else {
|
||||
delete document.body.dataset.channel;
|
||||
}
|
||||
|
||||
this._emit( 'channel_changed', {
|
||||
previous,
|
||||
channel_id
|
||||
});
|
||||
const target_channel_id = channel_id ?? this.CHANNELS.CHANNEL_LIST[0]?.id;
|
||||
|
||||
if (!channel_id) {
|
||||
const first_channel_id = this.CHANNELS.CHANNEL_LIST[0]?.id;
|
||||
if (first_channel_id) {
|
||||
window.location.hash = `/chat/channel/${first_channel_id}`; // TODO: allow a different default than chat
|
||||
// TODO: allow a different default than chat
|
||||
const hash_target = '/chat' + ( target_channel_id ? `/channel/${ target_channel_id }` : '' );
|
||||
|
||||
if ( window.location.hash?.slice( 1 ) !== hash_target ) {
|
||||
if ( previous !== target_channel_id ) {
|
||||
this._emit( 'channel_changed', {
|
||||
previous,
|
||||
channel_id: target_channel_id
|
||||
});
|
||||
}
|
||||
|
||||
window.location.hash = hash_target;
|
||||
}
|
||||
}
|
||||
|
||||
if (!document.body.dataset.view || document.body.dataset.view !== view) {
|
||||
const previous = document.body.dataset.view;
|
||||
document.body.dataset.view = view;
|
||||
const previous = typeof document.body.dataset.view === 'string' ? document.body.dataset.view : undefined;
|
||||
if ( view ) {
|
||||
document.body.dataset.view = view;
|
||||
}
|
||||
else {
|
||||
delete document.body.dataset.view;
|
||||
}
|
||||
|
||||
/*
|
||||
console.dir({
|
||||
|
|
@ -236,10 +250,11 @@ const APP = {
|
|||
_update_channels_timeout: undefined,
|
||||
CHANNEL_LIST: [],
|
||||
|
||||
update: async () => {
|
||||
update: async ( force = false ) => {
|
||||
const now = new Date();
|
||||
const time_since_last_update = now - (APP.CHANNELS._last_channel_update ?? 0);
|
||||
if (time_since_last_update < UPDATE_CHANNELS_FREQUENCY / 2) {
|
||||
const sufficient_time_has_passed_since_last_update = time_since_last_update > UPDATE_CHANNELS_FREQUENCY / 2;
|
||||
if ( !force && !sufficient_time_has_passed_since_last_update ) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue