// Copyright (C) 2023 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.

import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:wyatt_ui_components/wyatt_ui_components.dart';
import 'package:wyatt_ui_kit/src/components/cards/widgets/card_text.dart';
import 'package:wyatt_ui_kit/src/components/gradients/gradient_icon.dart';
import 'package:wyatt_ui_kit/src/core/helpers/linear_gradient_helper.dart';

class SkillCardSkills extends StatelessWidget {
  const SkillCardSkills({
    super.key,
    this.skills,
    this.leadingIcon,
    this.gradient,
  });

  final List<TextWrapper>? skills;
  final IconData? leadingIcon;
  final List<Color>? gradient;

  @override
  Widget build(BuildContext context) => Column(
        children: skills!
            .map(
              (skill) => Row(
                children: [
                  Icon(
                    leadingIcon ?? Icons.check,
                  ).toGradient(
                    LinearGradientHelper.fromNullableColors(gradient),
                  ),
                  const Gap(10),
                  Expanded(
                    child: CardText(
                      skill,
                      textType: TextType.body,
                      style: skill.style,
                      gradientColors: skill.gradientColors,
                    ),
                  ),
                ],
              ),
            )
            .toList(),
      );
}
