62 lines
1.8 KiB
Dart
62 lines
1.8 KiB
Dart
import 'package:didvan/config/design_config.dart';
|
|
import 'package:didvan/widgets/animated_visibility.dart';
|
|
import 'package:didvan/widgets/didvan/text.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
class CategoryItem extends StatelessWidget {
|
|
final String title;
|
|
final String asset;
|
|
final bool isColapsed;
|
|
|
|
const CategoryItem({
|
|
Key? key,
|
|
required this.title,
|
|
required this.asset,
|
|
required this.isColapsed,
|
|
}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final Size ds = MediaQuery.of(context).size;
|
|
return Center(
|
|
child: AnimatedContainer(
|
|
duration: DesignConfig.defaultAnimationDuration,
|
|
padding: isColapsed ? const EdgeInsets.all(4) : EdgeInsets.zero,
|
|
width: isColapsed ? 100 : ds.width / 3,
|
|
alignment: Alignment.center,
|
|
decoration: BoxDecoration(
|
|
borderRadius: DesignConfig.lowBorderRadius,
|
|
border: isColapsed
|
|
? Border.all(color: DesignConfig.darkPrimaryColor2)
|
|
: null,
|
|
),
|
|
child: Column(
|
|
children: [
|
|
AnimatedVisibility(
|
|
duration: DesignConfig.defaultAnimationDuration,
|
|
isVisible: !isColapsed,
|
|
child: Container(
|
|
width: ds.width / 5,
|
|
height: ds.width / 5,
|
|
decoration: DesignConfig.actionCardDecoration,
|
|
padding: const EdgeInsets.all(8),
|
|
child: Image.asset(
|
|
asset,
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 8,
|
|
),
|
|
DidvanText(
|
|
title,
|
|
style: Theme.of(context).textTheme.subtitle2,
|
|
color: DesignConfig.darkPrimaryColor2,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|