renderDesktopView method

Widget renderDesktopView(
  1. BuildContext context,
  2. QuizHeaderWidgetState state
)

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),
          ),
        ),
    ],
  );
}