convertQuestionListToWidget function
dynamic
convertQuestionListToWidget(
- dynamic questionsToConvert,
- dynamic _currentQuestionToRender,
- dynamic storeAnswers,
- dynamic _workBench,
- dynamic _themeData,
- dynamic customParams,
- dynamic _currentQuestionNumber,
- dynamic submitData,
- dynamic _lastQuestion,
- dynamic _scrollController,
- dynamic euiTheme,
- dynamic toggleNextButtonBlock,
Implementation
convertQuestionListToWidget(
questionsToConvert,
_currentQuestionToRender,
storeAnswers,
_workBench,
_themeData,
customParams,
_currentQuestionNumber,
submitData,
_lastQuestion,
_scrollController,
euiTheme,
toggleNextButtonBlock) {
List<Widget> _newquestionList = List<Widget>.empty(growable: true);
var i = 0;
for (var question in questionsToConvert) {
if (question['type'] == 'Rating') {
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: ColumnRating(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
isLastQuestion: question['id'] == _lastQuestion['id'],
lastQuestionId: _lastQuestion['id'],
submitData: submitData,
euiTheme: euiTheme,
),
),
),
),
);
}
if (question['type'] == 'TextInput' || question['type'] == 'EmailInput') {
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: TextRating(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
isLastQuestion: question['id'] == _lastQuestion['id'],
submitData: submitData,
euiTheme: euiTheme,
toggleNextButtonBlock: toggleNextButtonBlock),
),
),
),
);
}
if (question['type'] == 'MultiChoice') {
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
controller: _scrollController,
child: MultiChoice(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
submitData: submitData,
isLastQuestion: question['id'] == _lastQuestion['id'],
euiTheme: euiTheme,
toggleNextButtonBlock: toggleNextButtonBlock,
),
),
),
),
);
}
if (question['type'] == 'OpinionScale') {
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
controller: _scrollController,
child: ColumnOpnionScale(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
submitData: submitData,
isLastQuestion: question['id'] == _lastQuestion['id'],
euiTheme: euiTheme,
),
),
),
),
);
}
if (question['type'] == 'NPSScore') {
var isLastQuestionSubQuestion = _lastQuestion['subQuestion'] ?? false;
var lastQuestionId = _lastQuestion['id'];
if(isLastQuestionSubQuestion){
lastQuestionId = _lastQuestion['parent_question_id'];
}
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
controller: _scrollController,
child: NpsScore(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
submitData: submitData,
isLastQuestion: question['id'] == lastQuestionId,
euiTheme: euiTheme,
),
),
),
),
);
}
if (question['type'] == 'CESScore') {
var isLastQuestionSubQuestion = _lastQuestion['subQuestion'] ?? false;
var lastQuestionId = _lastQuestion['id'];
if(isLastQuestionSubQuestion){
lastQuestionId = _lastQuestion['parent_question_id'];
}
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
controller: _scrollController,
child: CesScore(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
submitData: submitData,
isLastQuestion: question['id'] == lastQuestionId,
euiTheme: euiTheme,
),
),
),
),
);
}
if(question['type'] == 'CSATScore'){
var isLastQuestionSubQuestion = _lastQuestion['subQuestion'] ?? false;
var lastQuestionId = _lastQuestion['id'];
if(isLastQuestionSubQuestion){
lastQuestionId = _lastQuestion['parent_question_id'];
}
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
controller: _scrollController,
child: Csat(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
submitData: submitData,
isLastQuestion: question['id'] == lastQuestionId,
euiTheme: euiTheme,
),
),
),
),
);
}
if (question['type'] == 'PhoneNumber') {
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: ColumnPhone(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
isLastQuestion: question['id'] == _lastQuestion['id'],
submitData: submitData,
euiTheme: euiTheme,
),
),
),
),
);
}
if (question['type'] == 'YesNo') {
_newquestionList.add(
AnimatedOpacity(
opacity: _currentQuestionToRender['id'] == null
? 1.0
: _currentQuestionToRender['id'] == question['id']
? 1.0
: 0.0,
duration: const Duration(milliseconds: 200),
child: Center(
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: YesOrNo(
func: storeAnswers,
answer: _workBench,
question: question,
theme: _themeData,
customParams: customParams,
currentQuestionNumber: i + 1,
submitData: submitData,
isLastQuestion: question['id'] == _lastQuestion['id'],
euiTheme: euiTheme,
),
),
),
),
);
}
i += 1;
}
return _newquestionList;
}