@@ -4,6 +4,17 @@ import { useAuthContext } from "../hooks/useAuthContext";
4
4
import { collection , addDoc , getDocs , query , where } from "firebase/firestore" ;
5
5
import { db } from "../firebase/config" ;
6
6
import { useRouter } from "next/router" ;
7
+ import styles from "../css/chat.module.css" ;
8
+ import { motion } from "framer-motion" ;
9
+
10
+ const buttonVariants = {
11
+ hover : {
12
+ scale : 1.06 ,
13
+ } ,
14
+ tap : {
15
+ scale : 0.99 ,
16
+ } ,
17
+ } ;
7
18
8
19
const AblyChatComponent = ( props ) => {
9
20
const { user } = useAuthContext ( ) ;
@@ -67,11 +78,12 @@ const AblyChatComponent = (props) => {
67
78
sendChatMessage ( messageText ) ;
68
79
event . preventDefault ( ) ;
69
80
} ;
81
+
70
82
const previousMessages = messageHistory . map ( ( msg , index ) => {
71
83
console . log ( msg ) ;
72
84
return (
73
85
< section key = { index } >
74
- < span >
86
+ < span className = { styles . prevMessage } >
75
87
{ msg . user . stringValue } : { msg . message . stringValue }
76
88
</ span >
77
89
< br />
@@ -84,9 +96,12 @@ const AblyChatComponent = (props) => {
84
96
85
97
return (
86
98
< section key = { index } >
87
- < span data-author = { author } >
88
- { message . name } : { message . data }
89
- </ span >
99
+ < div className = { styles . messages } >
100
+ < span data-author = { author } className = { styles . newMessage } >
101
+ { message . name } : { message . data }
102
+ </ span >
103
+ </ div >
104
+
90
105
< br />
91
106
</ section >
92
107
) ;
@@ -98,31 +113,42 @@ const AblyChatComponent = (props) => {
98
113
> </ div > ;
99
114
100
115
return (
101
- < main style = { { marginTop : "92px" } } >
116
+ < main className = { styles . chatContainer } >
102
117
< div >
103
- { previousMessages }
104
- { messages }
118
+ < div className = { styles . message } >
119
+ < div > { previousMessages } </ div >
120
+ < div > { messages } </ div >
121
+ </ div >
122
+
105
123
< div
106
124
ref = { ( element ) => {
107
125
messageEnd = element ;
108
126
} }
109
127
> </ div >
110
128
</ div >
111
- < form onSubmit = { handleFormSubmission } >
129
+ < form onSubmit = { handleFormSubmission } className = { styles . form } >
112
130
< textarea
131
+ className = { styles . textArea }
113
132
ref = { ( element ) => {
114
133
inputBox = element ;
115
134
} }
116
135
placeholder = "Type a message..."
117
136
onChange = { ( e ) => setMessageText ( e . target . value ) }
118
137
onKeyPress = { handleKeyPress }
119
138
> </ textarea >
120
- < button type = "submit" disabled = { messageTextIsEmpty } >
139
+ < motion . button
140
+ variants = { buttonVariants }
141
+ whileHover = "hover"
142
+ whileTap = "tap"
143
+ type = "submit"
144
+ disabled = { messageTextIsEmpty }
145
+ className = { styles . button }
146
+ >
121
147
Send
122
- </ button >
148
+ </ motion . button >
123
149
</ form >
124
150
</ main >
125
151
) ;
126
152
} ;
127
153
128
- export default AblyChatComponent ;
154
+ export default AblyChatComponent ;
0 commit comments