Select Git revision
cell.dart
cell.dart 5.75 KiB
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:suguru/config/application_config.dart';
import 'package:suguru/cubit/activity/activity_cubit.dart';
import 'package:suguru/models/activity/cell.dart';
import 'package:suguru/models/activity/activity.dart';
import 'package:suguru/utils/color_theme_utils.dart';
class CellWidget extends StatelessWidget {
const CellWidget({
super.key,
required this.cell,
required this.theme,
required this.hasBlockBorderTop,
required this.hasBlockBorderLeft,
required this.hasBlockBorderBottom,
required this.hasBlockBorderRight,
});
final Cell cell;
final String theme;
final bool hasBlockBorderTop;
final bool hasBlockBorderLeft;
final bool hasBlockBorderBottom;
final bool hasBlockBorderRight;
@override
Widget build(BuildContext context) {
return BlocBuilder<ActivityCubit, ActivityState>(
builder: (BuildContext context, ActivityState activityState) {
final Activity activity = activityState.currentActivity;
final String imageAsset = getImageAssetName(activity);
return Container(
decoration: BoxDecoration(
color: getBackgroundColor(activity),
border: getCellBorders(activity),
),
child: GestureDetector(
child: AnimatedSwitcher(
duration: const Duration(milliseconds: 100),
transitionBuilder: (Widget child, Animation<double> animation) {
return ScaleTransition(scale: animation, child: child);
},
child: Image(
image: AssetImage(imageAsset),
fit: BoxFit.fill,
key: ValueKey<int>(imageAsset.hashCode),
),
),
onTap: () {
final ActivityCubit activityCubit = BlocProvider.of<ActivityCubit>(context);
if (cell.location.col != activity.selectedCell?.location.col ||
cell.location.row != activity.selectedCell?.location.row) {
activityCubit.selectCell(cell.location);
} else {
activityCubit.unselectCell();
}
},
),
);
},
);
}
/*