fix: try to submit and render messages and scroll them into view more
quickly
This commit is contained in:
parent
8f818fc1ee
commit
14a33fc77d
2 changed files with 20 additions and 10 deletions
|
|
@ -68,6 +68,7 @@ function smarten_feeds() {
|
||||||
return feed.__target_element?.(item) ?? feed;
|
return feed.__target_element?.(item) ?? feed;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
feed.__autoscroll_debounce_timeout = undefined;
|
||||||
feed.__render = async (item) => {
|
feed.__render = async (item) => {
|
||||||
feed.__context =
|
feed.__context =
|
||||||
feed.__context ??
|
feed.__context ??
|
||||||
|
|
@ -118,6 +119,24 @@ function smarten_feeds() {
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (feed.dataset.autoscroll) {
|
||||||
|
if (feed.__autoscroll_debounce_timeout) {
|
||||||
|
clearTimeout(feed.__autoscroll_debounce_timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
feed.__autoscroll_debounce_timeout = setTimeout(() => {
|
||||||
|
feed.scrollTo({
|
||||||
|
behavior: "auto",
|
||||||
|
left: 0,
|
||||||
|
top:
|
||||||
|
(feed.dataset.insert ?? "append") === "append"
|
||||||
|
? feed.scrollHeight
|
||||||
|
: 0,
|
||||||
|
});
|
||||||
|
feed.__autoscroll_debounce_timeout = undefined;
|
||||||
|
}, 15);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -182,22 +201,12 @@ function smarten_feeds() {
|
||||||
feed.dataset.hydrated = true;
|
feed.dataset.hydrated = true;
|
||||||
feed.dataset.last_update = new Date().toISOString();
|
feed.dataset.last_update = new Date().toISOString();
|
||||||
feed.__attempts_since_last_successful_update = 0;
|
feed.__attempts_since_last_successful_update = 0;
|
||||||
|
|
||||||
if (feed.dataset.autoscroll) {
|
|
||||||
setTimeout(() => {
|
|
||||||
feed.scrollTop =
|
|
||||||
(feed.dataset.insert ?? "append") === "append"
|
|
||||||
? feed.scrollHeight
|
|
||||||
: 0;
|
|
||||||
}, 50);
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
if (error === "smartfeed:stopped") {
|
if (error === "smartfeed:stopped") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
debugger;
|
|
||||||
feed.dataset.error = JSON.stringify(error);
|
feed.dataset.error = JSON.stringify(error);
|
||||||
console.trace(error);
|
console.trace(error);
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -195,6 +195,7 @@ function smarten_forms() {
|
||||||
form.querySelectorAll("[enter-key-submits]").forEach((element) => {
|
form.querySelectorAll("[enter-key-submits]").forEach((element) => {
|
||||||
element.addEventListener("keypress", (event) => {
|
element.addEventListener("keypress", (event) => {
|
||||||
if (event.key === "Enter" && !event.shiftKey) {
|
if (event.key === "Enter" && !event.shiftKey) {
|
||||||
|
event.preventDefault();
|
||||||
form.requestSubmit();
|
form.requestSubmit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue