+
{title}
+
{summary}
+
+
+ {streamLength > 0 && (
+ ,
+ }}
+ />
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ {
+ if (active && payload && payload.length) {
+ const data = payload[0].payload as StatSlot;
+ return (
+
+
+
+
+
+
+
+
+
{data.messages}
+
+
+
+
+
+
{data.reactions}
+
+
+
+ );
+ }
+ return null;
+ }}
+ />
+
+
+
+
+
+
+
+
+
+ {chatSummary.slice(0, 5).map(a => (
+
+ ))}
+
+
+
+
+
+
+
+ {zapsSummary.slice(0, 5).map(a => (
+
+ ))}
+
+
+
+
+ );
+}
diff --git a/src/element/write-message.tsx b/src/element/write-message.tsx
index d63f7de..58fd4d8 100644
--- a/src/element/write-message.tsx
+++ b/src/element/write-message.tsx
@@ -1,14 +1,14 @@
import { EventKind, NostrLink } from "@snort/system";
-import React, { useContext, useRef, useState } from "react";
+import React, { Suspense, lazy, useContext, useRef, useState } from "react";
import { FormattedMessage } from "react-intl";
import { SnortContext } from "@snort/system-react";
import { unixNowMs } from "@snort/shared";
+const EmojiPicker = lazy(() => import("./emoji-picker"));
import { useLogin } from "@/hooks/login";
import AsyncButton from "./async-button";
import { Icon } from "./icon";
import { Textarea } from "./textarea";
-import { EmojiPicker } from "./emoji-picker";
import type { Emoji, EmojiPack } from "@/types";
import { LIVE_STREAM_CHAT } from "@/const";
import { TimeSync } from "@/index";
@@ -88,14 +88,16 @@ export function WriteMessage({ link, emojiPacks }: { link: NostrLink; emojiPacks