mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 07:07:19 +00:00
53 lines
1.2 KiB
Dart
53 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:syncrow_web/common/custom_expansion_tile.dart';
|
|
|
|
class SpaceTile extends StatefulWidget {
|
|
final String title;
|
|
final bool isSelected;
|
|
|
|
final bool initiallyExpanded;
|
|
final ValueChanged<bool> onExpansionChanged;
|
|
final List<Widget>? children;
|
|
final Function() onItemSelected;
|
|
|
|
const SpaceTile({
|
|
super.key,
|
|
required this.title,
|
|
required this.initiallyExpanded,
|
|
required this.onExpansionChanged,
|
|
required this.onItemSelected,
|
|
required this.isSelected,
|
|
this.children,
|
|
});
|
|
|
|
@override
|
|
_SpaceTileState createState() => _SpaceTileState();
|
|
}
|
|
|
|
class _SpaceTileState extends State<SpaceTile> {
|
|
late bool _isExpanded;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_isExpanded = widget.initiallyExpanded;
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return CustomExpansionTile(
|
|
isSelected: widget.isSelected,
|
|
title: widget.title,
|
|
initiallyExpanded: _isExpanded,
|
|
onItemSelected: widget.onItemSelected,
|
|
onExpansionChanged: (bool expanded) {
|
|
setState(() {
|
|
_isExpanded = expanded;
|
|
});
|
|
widget.onExpansionChanged(expanded);
|
|
},
|
|
children: widget.children ?? [],
|
|
);
|
|
}
|
|
}
|