import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:tone_snap/components/my_marquee_text.dart';
import 'package:tone_snap/components/network_image_widget.dart';
import 'package:tone_snap/modules/sideb/controllers/music_player_controller.dart';
import 'package:tone_snap/res/themes/app_sizes.dart';
import 'package:tone_snap/utils/obj_util.dart';

import 'music_bar_controller.dart';

class MusicBarView extends StatelessWidget {
  MusicBarView({super.key});

  final controller = Get.put(MusicBarController(), permanent: true);
  final musicPlayerController = MusicPlayerController.to;

  @override
  Widget build(BuildContext context) {
    return Obx(() {
      return Stack(
        fit: StackFit.expand,
        children: [
          Positioned(
            bottom: controller.bottom.value,
            left: 16.w,
            right: 16.w,
            child: GestureDetector(
              onTap: controller.openPlayPage,
              child: Container(
                width: 1.sw - 32.w,
                height: musicBarHeight,
                padding: EdgeInsets.symmetric(horizontal: 26.w),
                decoration: BoxDecoration(
                  color: const Color(0xFF80F988),
                  borderRadius: BorderRadius.circular(36).r,
                  boxShadow: const [
                    BoxShadow(
                      color: Color(0x40040604),
                      offset: Offset(0, 4),
                      blurRadius: 4,
                      spreadRadius: 0,
                    ),
                  ],
                ),
                child: Row(
                  children: [
                    ClipOval(
                      child: Obx(() {
                        return NetworkImageWidget(
                          url: musicPlayerController.musicModel.value.thumbnail,
                          width: 48.w,
                          height: 48.w,
                        );
                      }),
                    ),
                    SizedBox(width: 12.w),
                    Expanded(
                      child: Column(
                        mainAxisAlignment: MainAxisAlignment.center,
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Obx(() {
                            return MyMarqueeText(
                              text: ObjUtil.getStr(musicPlayerController.musicModel.value.title),
                              textStyle: TextStyle(
                                color: Colors.black,
                                fontSize: 16.sp,
                                fontWeight: FontWeight.w600,
                              ),
                            );
                          }),
                          SizedBox(height: 4.h),
                          Obx(() {
                            return MyMarqueeText(
                              text: ObjUtil.getStr(musicPlayerController.musicModel.value.subTitle),
                              textStyle: TextStyle(
                                color: Colors.black,
                                fontSize: 12.sp,
                              ),
                            );
                          }),
                        ],
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ),
        ],
      );
    });
  }
}
