@@ -3,7 +3,7 @@ import { Answer, AnswerType, Question, User } from '../../api/types';
3
3
import { PercentAnswer } from '../answers/PercentAnswer' ;
4
4
import { RadioAnswer } from './RadioAnswer' ;
5
5
import { TextAreaAnswer } from './TextAreaAnswer' ;
6
- import { Flex , Text } from '@kvib/react' ;
6
+ import { Flex , Text , Button } from '@kvib/react' ;
7
7
import { TimeAnswer } from '../answers/TimeAnswer' ;
8
8
import { CheckboxAnswer } from '../answers/CheckboxAnswer' ;
9
9
import { useSubmitAnswers } from '../../hooks/useAnswers' ;
@@ -48,75 +48,89 @@ export function QuestionAnswer({
48
48
} ) ;
49
49
} ;
50
50
51
- switch ( question . metadata . answerMetadata . type ) {
52
- case AnswerType . SELECT_SINGLE :
53
- return (
54
- < RadioAnswer
55
- question = { question }
56
- latestAnswer = { answers . at ( - 1 ) ?. answer ?? '' }
57
- contextId = { contextId }
58
- user = { user }
59
- lastUpdated = { answers . at ( - 1 ) ?. updated }
60
- answerExpiry = { answerExpiry }
61
- />
62
- ) ;
63
- case AnswerType . TEXT_MULTI_LINE :
64
- return (
65
- < TextAreaAnswer
66
- question = { question }
67
- latestAnswer = { answers . at ( - 1 ) ?. answer ?? '' }
68
- contextId = { contextId }
69
- user = { user }
70
- lastUpdated = { answers . at ( - 1 ) ?. updated }
71
- answerExpiry = { answerExpiry }
72
- />
73
- ) ;
74
- case AnswerType . PERCENT :
75
- return (
76
- < Flex flexDirection = "column" gap = "2" width = "50%" >
77
- < Text fontSize = "lg" fontWeight = "bold" >
78
- Svar
79
- </ Text >
80
- < PercentAnswer
81
- value = { answerInput }
82
- updated = { answers . at ( - 1 ) ?. updated }
83
- setAnswerInput = { setAnswerInput }
84
- submitAnswer = { submitAnswer }
85
- answerExpiry = { answerExpiry }
86
- />
87
- </ Flex >
88
- ) ;
89
- case AnswerType . TIME :
90
- return (
91
- < Flex flexDirection = "column" gap = "2" width = "50%" >
92
- < Text fontSize = "lg" fontWeight = "bold" >
93
- Svar
94
- </ Text >
95
- < TimeAnswer
96
- value = { answerInput }
97
- updated = { answers . at ( - 1 ) ?. updated }
98
- setAnswerInput = { setAnswerInput }
99
- submitAnswer = { submitAnswer }
100
- setAnswerUnit = { setAnswerUnit }
101
- unit = { answerUnit }
102
- units = { question . metadata . answerMetadata . units }
103
- answerExpiry = { answerExpiry }
104
- />
105
- </ Flex >
106
- ) ;
107
- case AnswerType . CHECKBOX :
108
- return (
109
- < CheckboxAnswer
110
- value = { answerInput }
111
- updated = { answers . at ( - 1 ) ?. updated }
112
- setAnswerInput = { setAnswerInput }
113
- submitAnswer = { submitAnswer }
114
- choices = { choices }
115
- answerExpiry = { answerExpiry }
116
- />
117
- ) ;
51
+ return (
52
+ < Flex flexDirection = "column" gap = "2" >
53
+ < Text fontSize = "lg" fontWeight = "bold" >
54
+ Svar
55
+ </ Text >
56
+ { ( ( ) => {
57
+ switch ( question . metadata . answerMetadata . type ) {
58
+ case AnswerType . SELECT_SINGLE :
59
+ return (
60
+ < RadioAnswer
61
+ question = { question }
62
+ latestAnswer = { answers . at ( - 1 ) ?. answer ?? '' }
63
+ contextId = { contextId }
64
+ user = { user }
65
+ />
66
+ ) ;
67
+ case AnswerType . TEXT_MULTI_LINE :
68
+ return (
69
+ < TextAreaAnswer
70
+ question = { question }
71
+ latestAnswer = { answers . at ( - 1 ) ?. answer ?? '' }
72
+ contextId = { contextId }
73
+ user = { user }
74
+ />
75
+ ) ;
76
+ case AnswerType . PERCENT :
77
+ return (
78
+ < PercentAnswer
79
+ value = { answerInput }
80
+ updated = { answers . at ( - 1 ) ?. updated }
81
+ setAnswerInput = { setAnswerInput }
82
+ submitAnswer = { submitAnswer }
83
+ answerExpiry = { answerExpiry }
84
+ />
85
+ ) ;
86
+ case AnswerType . TIME :
87
+ return (
88
+ < TimeAnswer
89
+ value = { answerInput }
90
+ updated = { answers . at ( - 1 ) ?. updated }
91
+ setAnswerInput = { setAnswerInput }
92
+ submitAnswer = { submitAnswer }
93
+ setAnswerUnit = { setAnswerUnit }
94
+ unit = { answerUnit }
95
+ units = { question . metadata . answerMetadata . units }
96
+ answerExpiry = { answerExpiry }
97
+ />
98
+ ) ;
99
+ case AnswerType . CHECKBOX :
100
+ return (
101
+ < CheckboxAnswer
102
+ value = { answerInput }
103
+ updated = { answers . at ( - 1 ) ?. updated }
104
+ setAnswerInput = { setAnswerInput }
105
+ submitAnswer = { submitAnswer }
106
+ choices = { choices }
107
+ answerExpiry = { answerExpiry }
108
+ />
109
+ ) ;
118
110
119
- default :
120
- return < Text > Denne svartypen blir ikke støttet</ Text > ;
121
- }
111
+ default :
112
+ return < Text > Denne svartypen blir ikke støttet</ Text > ;
113
+ }
114
+ } ) ( ) }
115
+ { answers . length > 0 && (
116
+ < Button
117
+ aria-label = "Forny svaret"
118
+ rightIcon = "autorenew"
119
+ color = "black"
120
+ variant = { 'tertiary' }
121
+ size = "xs"
122
+ alignSelf = "start"
123
+ p = "0"
124
+ onClick = { ( ) => {
125
+ submitAnswer (
126
+ answers . at ( - 1 ) ?. answer ?? '' ,
127
+ answers . at ( - 1 ) ?. answerUnit
128
+ ) ;
129
+ } }
130
+ >
131
+ Forny svar
132
+ </ Button >
133
+ ) }
134
+ </ Flex >
135
+ ) ;
122
136
}
0 commit comments