Skip to content
Snippets Groups Projects
bar_select_cell_value.dart 1.94 KiB
Newer Older
Benoît Harrault's avatar
Benoît Harrault committed
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

import 'package:suguru/cubit/activity/activity_cubit.dart';
import 'package:suguru/models/activity/cell.dart';
import 'package:suguru/models/activity/cell_location.dart';
import 'package:suguru/models/activity/activity.dart';
import 'package:suguru/ui/widgets/game/cell_update.dart';

class SelectCellValueBar extends StatelessWidget {
  const SelectCellValueBar({super.key});

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<ActivityCubit, ActivityState>(
      builder: (BuildContext context, ActivityState activityState) {
        final Activity activity = activityState.currentActivity;

        final bool isUpdatableCellSelected =
            (activity.selectedCell != null) ? !activity.selectedCell!.isFixed : false;

        final int maxValue =
            activity.board.getMaxValueForBlock(activity.selectedCell?.blockId);
        const int fixedItemsCountPerLine = 6;

        return Container(
          margin: const EdgeInsets.all(2),
          padding: const EdgeInsets.all(2),
          child: Table(
            defaultColumnWidth: const IntrinsicColumnWidth(),
            children: [
              TableRow(
                children: [
                  for (int value = 0; value < fixedItemsCountPerLine; value++)
                    Column(
                      children: [
                        CellWidgetUpdate(
                          cell: Cell(
                            location: CellLocation.go(1, value),
                            blockId: '',
                            value:
                                isUpdatableCellSelected ? (value <= maxValue ? value : 0) : -1,
                            isFixed: false,
                          ),
                        ),
                      ],
                    ),
                ],
              ),
            ],
          ),
        );
      },
    );
  }
}