diff --git a/bun.lockb b/bun.lockb index 03cb61d1..bef7116e 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/dist/index.js b/dist/index.js index 9887b88a..e5695093 100644 --- a/dist/index.js +++ b/dist/index.js @@ -220,7 +220,7 @@ const state = value; state.subscribe((newValue) => { element.innerHTML = ""; - element.append(newValue); + element.append(...[newValue].flat()); }); break; } @@ -900,13 +900,15 @@ /* @__PURE__ */ createElement("span", { class: "icon" }, "key") ), /* @__PURE__ */ createElement("button", { "aria-label": translation.deleteMessage, "on:click": remove }, /* @__PURE__ */ createElement("span", { class: "icon" }, "delete")))), /* @__PURE__ */ createElement("div", { class: "flex-column padding-h padding-bottom" }, /* @__PURE__ */ createElement("b", { class: "break-word", "subscribe:innerText": messageBody }), /* @__PURE__ */ createElement("span", { class: "secondary" }, new Date(message.isoDate).toLocaleString())))); }; - return /* @__PURE__ */ createElement( + const listElement = /* @__PURE__ */ createElement( "div", { class: "flex-column gap", "children:append": [chat.messages, messageConverter] } ); + chat.messages.handleAddition(() => listElement.scrollTop = listElement.scrollHeight); + return listElement; } // src/Tabs/messageTab.tsx @@ -919,17 +921,19 @@ function showOptions() { isShowingOptions.value = true; } - function hideOptions() { - isShowingOptions.value = false; - } - return /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("header", { class: "padding-0" }, /* @__PURE__ */ createElement("span", { class: "flex-row align-center" }, /* @__PURE__ */ createElement("button", { "aria-label": translation.back, "on:click": closeChatView }, /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_back")), /* @__PURE__ */ createElement("span", { "subscribe:innerText": chat.primaryChannel })), /* @__PURE__ */ createElement("span", null, /* @__PURE__ */ createElement( - "button", - { - "aria-label": translation.showChatOptions, - "on:click": showOptions - }, - /* @__PURE__ */ createElement("span", { class: "icon" }, "tune") - ))), ThreadView(chat), /* @__PURE__ */ createElement("footer", null, MessageComposer(chat)), ChatOptionModal(chat, isShowingOptions)); + return [ + /* @__PURE__ */ createElement("header", { class: "padding-0" }, /* @__PURE__ */ createElement("span", { class: "flex-row align-center" }, /* @__PURE__ */ createElement("button", { "aria-label": translation.back, "on:click": closeChatView }, /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_back")), /* @__PURE__ */ createElement("span", { "subscribe:innerText": chat.primaryChannel })), /* @__PURE__ */ createElement("span", null, /* @__PURE__ */ createElement( + "button", + { + "aria-label": translation.showChatOptions, + "on:click": showOptions + }, + /* @__PURE__ */ createElement("span", { class: "icon" }, "tune") + ))), + ThreadView(chat), + /* @__PURE__ */ createElement("footer", null, MessageComposer(chat)), + ChatOptionModal(chat, isShowingOptions) + ]; }); return /* @__PURE__ */ createElement("article", { id: "message-tab", "children:set": messageTabContent }); } diff --git a/dist/styles.css b/dist/styles.css index 4fff6a30..dfe09f5c 100644 --- a/dist/styles.css +++ b/dist/styles.css @@ -246,7 +246,7 @@ SIZES --safe-area-top: env(safe-area-inset-top); --safe-area-left: env(safe-area-inset-left); --safe-area-right: env(safe-area-inset-right); - --safe-area-bottom: max(env(safe-area-inset-bottom), var(--control-padding)); + --safe-area-bottom: env(safe-area-inset-bottom); } /* diff --git a/package.json b/package.json index 88a71235..996bd862 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "bloatless-react": "^1.3.0", + "bloatless-react": "^1.3.1-beta1", "esbuild": "latest", "udn-frontend": "^1.0.7-beta1" }, diff --git a/src/Tabs/messageTab.tsx b/src/Tabs/messageTab.tsx index 70203dc5..3c531d08 100644 --- a/src/Tabs/messageTab.tsx +++ b/src/Tabs/messageTab.tsx @@ -22,37 +22,32 @@ export function MessageTab() { function showOptions() { isShowingOptions.value = true; } - function hideOptions() { - isShowingOptions.value = false; - } - return ( -
-
- - + return [ +
+ + - - - - - -
+ +
+ + + +
, - {ThreadView(chat)} - - + ThreadView(chat), - {ChatOptionModal(chat, isShowingOptions)} -
- ); + , + + ChatOptionModal(chat, isShowingOptions), + ]; }); return
; diff --git a/src/Views/threadView.tsx b/src/Views/threadView.tsx index 38d6786f..59e4166d 100644 --- a/src/Views/threadView.tsx +++ b/src/Views/threadView.tsx @@ -59,10 +59,12 @@ export function ThreadView(chat: Chat) { ); }; - return ( + const listElement = (
); + chat.messages.handleAddition(() => listElement.scrollTop = listElement.scrollHeight); + return listElement; }