import 'package:flutter/material.dart';

import '../../../../../utils/color_manager.dart';
import '../../../../../utils/constants/assets.dart';
import '../../../space_model/models/space_template_model.dart';
import '../../../space_model/widgets/button_content_widget.dart';

class SpaceModelLinkingWidget extends StatelessWidget {
  const SpaceModelLinkingWidget({
    super.key,
    required this.onDeleted,
    required this.onPressed,
    required this.screenWidth,
    required this.selectedSpaceModel,
    required this.isSpaceModelDisabled,
  });
  final bool isSpaceModelDisabled;
  final void Function()? onDeleted;
  final void Function()? onPressed;
  final double screenWidth;
  final SpaceTemplateModel? selectedSpaceModel;
  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        selectedSpaceModel == null
            ? TextButton(
                style: TextButton.styleFrom(
                  padding: EdgeInsets.zero,
                ),
                onPressed: onPressed,
                child: ButtonContentWidget(
                  svgAssets: Assets.link,
                  label: 'Link a space model',
                  disabled: isSpaceModelDisabled,
                ),
              )
            : Container(
                width: screenWidth * 0.25,
                padding: const EdgeInsets.symmetric(
                    vertical: 10.0, horizontal: 16.0),
                decoration: BoxDecoration(
                  color: ColorsManager.boxColor,
                  borderRadius: BorderRadius.circular(10),
                ),
                child: Wrap(
                  spacing: 8.0,
                  runSpacing: 8.0,
                  children: [
                    Chip(
                        label: Text(
                          selectedSpaceModel?.modelName ?? '',
                          style: Theme.of(context)
                              .textTheme
                              .bodyMedium!
                              .copyWith(color: ColorsManager.spaceColor),
                        ),
                        backgroundColor: ColorsManager.whiteColors,
                        shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(8),
                          side: const BorderSide(
                            color: ColorsManager.transparentColor,
                            width: 0,
                          ),
                        ),
                        deleteIcon: Container(
                          width: 24,
                          height: 24,
                          decoration: BoxDecoration(
                            shape: BoxShape.circle,
                            border: Border.all(
                              color: ColorsManager.lightGrayColor,
                              width: 1.5,
                            ),
                          ),
                          child: const Icon(
                            Icons.close,
                            size: 16,
                            color: ColorsManager.lightGrayColor,
                          ),
                        ),
                        onDeleted: onDeleted),
                  ],
                ),
              ),
      ],
    );
  }
}
