@@ -3,15 +3,94 @@ import JoinBroadcastChannel from './JoinBroadcastChannel'
33import JoinGroupChannel from './JoinGroupChannel'
44import JoinPrivateChannel from './JoinDirectChannel'
55import JoinDirectChannel from './JoinPrivateChannel'
6- import { useAuthStore , useChatStore } from '@stores'
6+ import { useAuthStore , useChatStore , useStore } from '@stores'
77import { useChannel } from '../context/ChannelProvider'
88import SignInToJoinChannel from './SignInToJoinChannel'
99import { TChannelSettings } from '@types'
1010import MessageComposer from './MessageComposer/MessageComposer'
11+ import useKeyboardHeight from '@hooks/useKeyboardHeight'
12+ import { useMessageComposer } from './MessageComposer/hooks/useMessageComposer'
13+
14+ const MobileToolbar = ( ) => {
15+ const { isOpen : isKeyboardOpen } = useKeyboardHeight ( )
16+ const { isToolbarOpen, toggleToolbar } = useMessageComposer ( )
17+
18+ if ( ! isKeyboardOpen ) return null
19+
20+ return (
21+ < div className = "relative h-10 overflow-hidden" >
22+ < div
23+ className = { `absolute inset-0 transition-transform duration-300 ease-in-out ${
24+ isToolbarOpen ? 'translate-y-0' : '-translate-y-full'
25+ } `} >
26+ < MessageComposer . Actions >
27+ < MessageComposer . ToggleToolbarButton />
28+ < MessageComposer . EmojiButton />
29+ < MessageComposer . MentionButton />
30+ < MessageComposer . SendButton />
31+ </ MessageComposer . Actions >
32+ </ div >
33+
34+ < div
35+ className = { `absolute inset-0 transition-transform duration-300 ease-in-out ${
36+ isToolbarOpen ? 'translate-y-full' : 'translate-y-0'
37+ } `} >
38+ < MessageComposer . Toolbar className = "bg-base-200 h-full border-b p-2 px-1" >
39+ < MessageComposer . ToggleToolbarButton
40+ iconType = "Close"
41+ onPress = { toggleToolbar }
42+ size = { 22 }
43+ className = "btn-square !bg-gray-200"
44+ />
45+ < div className = "divided m-0 w-0" />
46+ < div className = "flex snap-x items-center gap-1 overflow-x-scroll overflow-y-hidden" >
47+ < MessageComposer . BoldButton size = { 10 } className = "snap-center" />
48+ < MessageComposer . ItalicButton size = { 10 } className = "snap-center" />
49+ < MessageComposer . StrikethroughButton size = { 14 } className = "snap-center" />
50+ < div className = "divided snap-center" />
51+ < MessageComposer . HyperlinkButton size = { 18 } className = "snap-center" />
52+ < MessageComposer . BulletListButton size = { 16 } className = "snap-center" />
53+ < MessageComposer . OrderedListButton size = { 16 } className = "snap-center" />
54+ < div className = "divided snap-center" />
55+ < MessageComposer . BlockquoteButton size = { 20 } className = "snap-center" />
56+ < MessageComposer . CodeButton size = { 20 } className = "snap-center" />
57+ < MessageComposer . CodeBlockButton size = { 20 } className = "snap-center" />
58+ </ div >
59+ </ MessageComposer . Toolbar >
60+ </ div >
61+ </ div >
62+ )
63+ }
1164
1265const SendMessage = ( ) => {
66+ const {
67+ settings : {
68+ editor : { isMobile }
69+ }
70+ } = useStore ( ( state ) => state )
71+
72+ if ( isMobile )
73+ return (
74+ < div className = "chat_editor_container flex w-full flex-col" >
75+ < MessageComposer className = "rounded-t-md border border-b-0 border-gray-300 shadow-[0_-4px_6px_-1px_rgba(0,0,0,0.1)]" >
76+ < MessageComposer . MobileWrapper >
77+ < MessageComposer . Context >
78+ < MessageComposer . ReplyContext />
79+ < MessageComposer . EditContext />
80+ < MessageComposer . CommentContext />
81+ </ MessageComposer . Context >
82+
83+ < div className = "flex flex-row items-center gap-2 px-2 py-1.5" >
84+ < MessageComposer . AttachmentButton size = { 22 } className = "btn-square bg-gray-200" />
85+ < MessageComposer . Input />
86+ </ div >
87+ < MobileToolbar />
88+ </ MessageComposer . MobileWrapper >
89+ </ MessageComposer >
90+ </ div >
91+ )
1392 return (
14- < MessageComposer className = "chat_editor_container mb-2 flex w-full flex-col" >
93+ < MessageComposer className = "chat_editor_container m-auto mb-2 flex w-[98%] flex-col" >
1594 < MessageComposer . Context >
1695 < MessageComposer . ReplyContext />
1796 < MessageComposer . EditContext />
0 commit comments