forked from andyburke/autonomous.contact
fix: fix message submission
This commit is contained in:
parent
e52a9e997c
commit
6df0673c8e
3 changed files with 20 additions and 14 deletions
|
|
@ -54,7 +54,7 @@
|
||||||
topic_changed: {
|
topic_changed: {
|
||||||
detail: {
|
detail: {
|
||||||
previous,
|
previous,
|
||||||
topic: topic_id
|
topic_id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -62,7 +62,7 @@
|
||||||
document.dispatchEvent(new CustomEvent( "topic_changed", {
|
document.dispatchEvent(new CustomEvent( "topic_changed", {
|
||||||
detail: {
|
detail: {
|
||||||
previous,
|
previous,
|
||||||
topic: topic_id
|
topic_id
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
@ -89,14 +89,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.addEventListener("locationchange", extract_url_hash_info);
|
window.addEventListener("locationchange", extract_url_hash_info);
|
||||||
document.addEventListener( 'topic_changed', ( {detail: { topic }}) => {
|
document.addEventListener( 'topic_changed', ( {detail: { topic_id }}) => {
|
||||||
if ( !topic ) {
|
if ( !topic_id ) {
|
||||||
const first_topic_id = TOPICS?.[0]?.id;
|
const first_topic_id = TOPICS?.[0]?.id;
|
||||||
if ( first_topic_id ) {
|
if ( first_topic_id ) {
|
||||||
window.location.hash = `/topic/${ first_topic_id }/chat`;
|
window.location.hash = `/topic/${ first_topic_id }/chat`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
let TOPICS = [];
|
let TOPICS = [];
|
||||||
let last_topic_update = undefined;
|
let last_topic_update = undefined;
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,10 @@
|
||||||
<script>
|
<script>
|
||||||
{
|
{
|
||||||
const form = document.currentScript.closest("form");
|
const form = document.currentScript.closest("form");
|
||||||
const file_input = document.querySelector('input[type="file"]');
|
const file_input = form.querySelector('input[type="file"]');
|
||||||
const chat_input = document.getElementById("topic-chat-input");
|
const chat_input = form.querySelector('textarea[name="data.content"]');
|
||||||
const parent_id_input = document.getElementById("parent-id");
|
const parent_id_input = form.querySelector('input[name="parent_id"]');
|
||||||
|
|
||||||
const topic_chat_container =
|
const topic_chat_container =
|
||||||
document.getElementById("topic-chat-container");
|
document.getElementById("topic-chat-container");
|
||||||
const topic_chat_content =
|
const topic_chat_content =
|
||||||
|
|
@ -53,6 +54,13 @@
|
||||||
|
|
||||||
let messages_in_flight = {};
|
let messages_in_flight = {};
|
||||||
|
|
||||||
|
document.addEventListener(
|
||||||
|
"topic_changed",
|
||||||
|
({ detail: { topic_id } }) => {
|
||||||
|
form.action = topic_id ? `/api/topics/${topic_id}/events` : "";
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
chat_input.addEventListener("keypress", (event) => {
|
chat_input.addEventListener("keypress", (event) => {
|
||||||
if (event.key === "Enter" && !event.shiftKey) {
|
if (event.key === "Enter" && !event.shiftKey) {
|
||||||
form.requestSubmit();
|
form.requestSubmit();
|
||||||
|
|
@ -100,8 +108,6 @@
|
||||||
if (form.uploaded_urls.length === 0 && message.length === 0) {
|
if (form.uploaded_urls.length === 0 && message.length === 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.action = `/api/topics/${topic_id}/events`;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
form.on_parsed = (json) => {
|
form.on_parsed = (json) => {
|
||||||
|
|
|
||||||
|
|
@ -349,7 +349,7 @@ async function append_topic_events(events) {
|
||||||
let topic_polling_request_abort_controller = null;
|
let topic_polling_request_abort_controller = null;
|
||||||
async function poll_for_new_events() {
|
async function poll_for_new_events() {
|
||||||
const topic_chat_content = document.getElementById("topic-chat-content");
|
const topic_chat_content = document.getElementById("topic-chat-content");
|
||||||
const topic_id = topic_chat_content.dataset.topic_id;
|
const topic_id = document.body.dataset.topic;
|
||||||
const last_message_id = topic_chat_content.dataset.last_message_id;
|
const last_message_id = topic_chat_content.dataset.last_message_id;
|
||||||
|
|
||||||
if (!topic_id) {
|
if (!topic_id) {
|
||||||
|
|
@ -418,8 +418,8 @@ async function load_topic(topic_id) {
|
||||||
const events = (await events_response.json()).reverse();
|
const events = (await events_response.json()).reverse();
|
||||||
|
|
||||||
await append_topic_events(events);
|
await append_topic_events(events);
|
||||||
poll_for_new_events(topic_id);
|
poll_for_new_events();
|
||||||
}
|
}
|
||||||
document.addEventListener("topic_changed", ({ detail: { topic } }) => {
|
document.addEventListener("topic_changed", ({ detail: { topic_id } }) => {
|
||||||
load_topic(topic);
|
load_topic(topic_id);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue