diff --git a/web/src/components/ChatArea.tsx b/web/src/components/ChatArea.tsx index 260bd53..16dd5e9 100644 --- a/web/src/components/ChatArea.tsx +++ b/web/src/components/ChatArea.tsx @@ -266,6 +266,7 @@ export function ChatArea() { const [input, setInput] = useState(""); const [error, setError] = useState(null); const [showGifPicker, setShowGifPicker] = useState(false); + const [showKaomoji, setShowKaomoji] = useState(false); const [showSearch, setShowSearch] = useState(false); const [mentionQuery, setMentionQuery] = useState(null); const [slowmodeRemaining, setSlowmodeRemaining] = useState(0); @@ -660,6 +661,14 @@ export function ChatArea() { setShowGifPicker(false)} /> )} + {showKaomoji && ( +
+ setInput((prev) => prev + emoji)} + onClose={() => setShowKaomoji(false)} + /> +
+ )}
{(() => { const chTyping = activeChannelId ? (typingUsers[activeChannelId] || []).filter(u => u.userId !== currentUser?.id) : []; @@ -703,6 +712,12 @@ export function ChatArea() { placeholder="type a message..." className="terminal-input w-full" disabled={!activeChannelId || slowmodeRemaining > 0} + onKeyDown={(e) => { + if (e.ctrlKey && e.key === 'e') { + e.preventDefault(); + setShowKaomoji((prev) => !prev); + } + }} /> {mentionQuery !== null && ( @@ -717,6 +732,15 @@ export function ChatArea() { > [GIF] +
{activeThread && (