nhance_partner/lib/presentation/screens/dashboard/tabs/busindReorder.dart
2025-12-08 12:58:01 +05:30

179 lines
6.3 KiB
Dart

// import 'package:flutter/cupertino.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter/src/widgets/framework.dart';
// import 'package:flutter_riverpod/flutter_riverpod.dart';
// import 'package:google_fonts/google_fonts.dart';
//
// import 'package:flutter_reorderable_grid_view/widgets/reorderable_builder.dart';
//
// import '../../../../data/models/bar_data.dart';
// import '../../../../models/chart_item.dart';
// import '../../../providers/chart_provider.dart';
// import '../../../themes/charts/barChart.dart';
//
// enum ReorderableType {
// gridView,
// gridViewCount,
// gridViewExtent,
// gridViewBuilder,
// }
//
// class BussinessDashboard extends ConsumerStatefulWidget {
// const BussinessDashboard({super.key});
//
// @override
// ConsumerState<BussinessDashboard> createState() => _BussinessDashboardState();
// }
//
// class _BussinessDashboardState extends ConsumerState<BussinessDashboard> {
// // final GlobalKey<SliverReorderableGridState> _gridKey = GlobalKey();
// final GlobalKey _gridKey = GlobalKey();
// ReorderableType reorderableType = ReorderableType.gridViewBuilder;
//
// final ScrollController _scrollController = ScrollController();
//
// List<String> items = ['A', 'B', 'C', 'D', 'E'];
//
// @override
// Widget build(BuildContext context) {
// List<ChartItem> chartItems = ref.watch(chartLayoutProvider);
//
// final charts = ref.watch(chartLayoutProvider);
// final notifier = ref.read(chartLayoutProvider.notifier);
// // void reorder(List<String> newItems) {
// // setState(() {
// // // final removed = items.removeAt(oldIndex);
// // items.insert(newItems);
// // });
// // }
//
// // void reorder(List<String> newItems) {
// // state = newItems; // or whatever logic you use
// // }
//
// final children = items
// .map(
// (e) => Container(
// key: ValueKey(e),
// color: Colors.blueAccent,
// child: Center(
// child: Text(
// e,
// style: TextStyle(color: Colors.white, fontSize: 24),
// ),
// ),
// ),
// )
// .toList();
//
// // Determine the current layout based on the number of items
// // Since you only have 3 items, you will have to create a separate state
// // to track the 1x3 (default) vs the custom 2-stacked + 1 layout
// // after the drag action.
//
// // For this example, we will stick to a reorderable grid/row layout.
//
// return Container(
// margin: EdgeInsets.all(10),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Container(
// height: 400, // fixed height to allow drag detection
// padding: EdgeInsets.all(12),
// child: ReorderableBuilder<ChartItem>(
// enableLongPress: true,
// enableDraggable: true,
// children: chartItems
// .map(
// (item) => Container(
// key: ValueKey(item.id),
// margin: EdgeInsets.all(4),
// color: Colors.blueAccent,
// alignment: Alignment.center,
// child: Text(
// item.title,
// style: TextStyle(color: Colors.white, fontSize: 24),
// ),
// ),
// )
// .toList(),
// onReorder: (reorderCallback) {
// final newList = reorderCallback(chartItems).cast<ChartItem>();
// ref.read(chartLayoutProvider.notifier).state = newList;
// },
// builder: (children) {
// return GridView.count(
// crossAxisCount: 2,
// mainAxisSpacing: 8,
// crossAxisSpacing: 8,
// children: children,
// shrinkWrap: true,
// physics: NeverScrollableScrollPhysics(),
// );
// },
// ),
// ),
//
// // Container(
// // height: 400,
// // child: ReorderableBuilder<ChartItem>(
// // scrollController: _scrollController,
// // enableLongPress: true, // ✅ enable drag on long press
// // enableDraggable: true,
// // children: chartItems
// // .map(
// // (item) => Container(
// // key: ValueKey(item.id),
// // color: Colors.blueAccent,
// // child: Center(
// // child: Text(
// // item.title, // show chart name
// // style: TextStyle(color: Colors.white, fontSize: 24),
// // ),
// // ),
// // ),
// // )
// // .toList(),
// // onReorder: (reorderCallback) {
// // final newList = reorderCallback(chartItems).cast<ChartItem>();
// // ref.read(chartLayoutProvider.notifier).state = newList;
// // },
// // builder: (children) {
// // return GridView.count(
// // crossAxisCount: 2,
// // mainAxisSpacing: 8,
// // crossAxisSpacing: 8,
// // padding: const EdgeInsets.all(12),
// // children: children,
// // );
// // },
// // ),
// // ),
// ],
// ),
// );
// }
// }
//
// // Placeholder for your chart widget
// class CustomBarChart extends StatelessWidget {
// final List<BarData> dataList;
// final List<String> labels;
//
// const CustomBarChart({required this.dataList, required this.labels, Key? key})
// : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// // Implement your chart rendering here
// return Center(child: Text("Chart: ${dataList[0].value}"));
// }
// }
//
// final _headerStyle2 = GoogleFonts.poppins(
// fontSize: 12,
// color: Colors.black,
// fontWeight: FontWeight.w500,
// );