renderDesktopView method
Implementation
Widget renderDesktopView(BuildContext context, QuizHeaderWidgetState state) {
var cs = Theme.of(context).colorScheme;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
if (state.widget.quiz.quizTitle != null)
Container(
margin: const EdgeInsets.only(bottom: gap),
child: Text(
state.widget.quiz.quizTitle!,
style: Theme.of(context).textTheme.titleSmall?.copyWith(
color: state.widget.quiz.theme.textColor,
fontWeight: FontWeight.bold,
),
),
),
if (state.widget.quiz.quizSubTitle != null)
Container(
margin: const EdgeInsets.only(bottom: gap),
child: MarkdownReader(
padding: EdgeInsets.zero,
markdownData: state.widget.quiz.quizSubTitle!,
styleSheet: state.widget.quiz.theme.getGenericMarkdownTheme(context),
),
),
if (!state.widget.tooSmallHeight && state.widget.quiz.theme.quizHeaderImage != null)
AnimatedContainer(
margin: const EdgeInsets.only(bottom: gap),
curve: Curves.easeInBack,
duration: const Duration(milliseconds: 500),
height: 200,
width: double.infinity,
//constraints: const BoxConstraints(minHeight: 50, maxHeight: 200),
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(radius),
),
child: CachedNetworkImage(
imageUrl: state.widget.quiz.theme.quizHeaderImage!,
fit: BoxFit.cover,
placeholder: (context, url) => Container(
//padding: const EdgeInsets.all(gap * 2),
width: double.infinity,
decoration: BoxDecoration(
color: Colors.grey.withValues(alpha: 0.0),
borderRadius: BorderRadius.circular(radius),
),
child: Center(
child: SizedBox(
height: 50,
width: 50,
child: CircularProgressIndicator(
color: cs.surface,
),
),
),
),
errorWidget: (context, url, error) => imageNotFoundFallback(context),
),
),
],
);
}