22import { useEffect , useState } from "react" ;
33import axios from "axios" ;
44
5- const Testareaanswer = ( { _id} ) => {
5+ const Testareaanswer = ( { _id, onAnswerPosted } ) => {
66 console . log ( _id )
77 const [ addAnswer , setAddAnswer ] = useState ( {
88 user_id : "" ,
99 name : "" ,
1010 answer : "" ,
1111 } ) ;
1212 useEffect ( ( ) => {
13- const userdetails = async ( ) => {
14- const token = window . sessionStorage . getItem ( "token" ) ;
15- try {
16- const res = await axios . get ( "https://zcoder-backend-dm5b.onrender.com/api/getAuth" , {
17- headers : {
18- 'Authorization' : `${ token } ` ,
19- } ,
20- } ) ;
21- console . log ( res . data ) ;
22- setAddAnswer ( { ...addAnswer , user_id :res . data . _id , name :res . data . name } ) ;
23- } catch ( err ) {
24- console . log ( err ) ;
13+ const userdetails = async ( ) => {
14+ const token = window . sessionStorage . getItem ( "token" ) ;
15+ try {
16+ const res = await axios . get ( "https://zcoder-backend-dm5b.onrender.com/api/getAuth" , {
17+ headers : {
18+ 'Authorization' : `${ token } ` ,
19+ } ,
20+ } ) ;
21+ console . log ( res . data ) ;
22+ setAddAnswer ( { ...addAnswer , user_id : res . data . _id , name : res . data . name } ) ;
23+ } catch ( err ) {
24+ console . log ( err ) ;
25+ }
2526 }
26- }
27- userdetails ( ) ;
28- } , [ ] ) ;
29- const handleanswer = async ( ) => {
27+ userdetails ( ) ;
28+ } , [ ] ) ;
29+ const handleanswer = async ( e ) => {
30+ e . preventDefault ( ) ;
3031 const token = window . sessionStorage . getItem ( "token" ) ;
3132 try {
32- if ( addAnswer . answer === "" ) {
33+ if ( addAnswer . answer === "" ) {
3334 alert ( "Please enter the answer first" ) ;
3435 return ;
3536 }
@@ -39,27 +40,34 @@ const Testareaanswer = ({_id}) => {
3940 } ,
4041 } ) ;
4142 console . log ( res . data ) ;
42- setAddAnswer ( "" ) ;
43+ if ( res . status === 200 ) {
44+ onAnswerPosted ( ) ;
45+ setAddAnswer ( ( prev ) => ( {
46+ ...prev ,
47+ answer : ""
48+ } ) ) ;
49+ }
50+
4351 // window.location.reload();
4452 } catch ( err ) {
4553 console . log ( err ) ;
4654 }
4755 }
4856 return (
4957 < >
50- < form className = "answerbox my-5" >
58+ < div className = "answerbox my-5" >
5159 < div className = "w-full border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-700 dark:border-gray-600" >
5260 < div className = "px-4 py-2 bg-white rounded-t-lg dark:bg-gray-800" >
5361 < label htmlFor = "comment" className = "sr-only" > Your answer</ label >
54- < textarea id = "comment" rows = "4" className = "w-full px-0 text-sm text-gray-900 bg-white border-0 dark:bg-gray-800 focus:ring-0 dark:text-white dark:placeholder-gray-400 h-56" placeholder = "Write a answer..." required onChange = { ( e ) => setAddAnswer ( { ...addAnswer , answer :e . target . value } ) } > </ textarea >
62+ < textarea id = "comment" rows = "4" className = "w-full px-0 text-sm text-gray-900 bg-white border-0 dark:bg-gray-800 focus:ring-0 dark:text-white dark:placeholder-gray-400 h-56" placeholder = "Write a answer..." required value = { addAnswer ?. answer } onChange = { ( e ) => setAddAnswer ( { ...addAnswer , answer : e . target . value } ) } > </ textarea >
5563 </ div >
5664 < div className = "flex items-center justify-between px-3 py-2 border-t dark:border-gray-600" >
57- < button type = "submit " className = "inline-flex items-center py-2.5 px-4 text-xs font-medium text-center text-white bg-blue-700 rounded-lg focus:ring-4 focus:ring-blue-200 dark:focus:ring-blue-900 hover:bg-blue-800" onClick = { handleanswer } >
65+ < button type = "button " className = "inline-flex items-center py-2.5 px-4 text-xs font-medium text-center text-white bg-blue-700 rounded-lg focus:ring-4 focus:ring-blue-200 dark:focus:ring-blue-900 hover:bg-blue-800" onClick = { handleanswer } >
5866 Post Answer
5967 </ button >
6068 </ div >
6169 </ div >
62- </ form >
70+ </ div >
6371
6472 </ >
6573 )
0 commit comments