Skip to content

Commit

Permalink
style: dashboard study rows pin and tags improvement
Browse files Browse the repository at this point in the history
  • Loading branch information
johannesvedder committed Jun 30, 2023
1 parent 212cfde commit 0c8b89b
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 25 deletions.
9 changes: 5 additions & 4 deletions designer_v2/lib/common_views/standard_table.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class StandardTable<T> extends StatefulWidget {
this.dataRowBuilder,
this.cellSpacing = 10.0,
this.rowSpacing = 9.0,
this.minRowHeight = 50.0,
this.minRowHeight = 60.0,
this.showTableHeader = true,
this.tableWrapper,
this.leadingWidget,
Expand Down Expand Up @@ -302,14 +302,15 @@ class _StandardTableState<T> extends State<StandardTable<T>> {

final List<Widget> headerCells = [];
for (var i = 0; i < columns.length; i++) {
final isLeadingTrailing = i == 0 || i == columns.length - 1;
final isLeading = i == 0;
final isTrailing = i == columns.length - 1;
headerCells.add(MouseEventsRegion(
builder: (context, state) {
return Padding(
padding: EdgeInsets.fromLTRB(
(isLeadingTrailing) ? 2 * widget.cellSpacing : widget.cellSpacing,
(isLeading || isTrailing) ? 2 * widget.cellSpacing : widget.cellSpacing,
widget.cellSpacing,
(isLeadingTrailing) ? 2 * widget.cellSpacing : widget.cellSpacing,
(isLeading || isTrailing) ? 2 * widget.cellSpacing : widget.cellSpacing,
widget.cellSpacing),
child: Row(
children: [
Expand Down
62 changes: 41 additions & 21 deletions designer_v2/lib/features/dashboard/studies_table.dart
Original file line number Diff line number Diff line change
Expand Up @@ -124,36 +124,56 @@ class StudiesTable extends StatelessWidget {
return (value > 0) ? null : ThemeConfig.bodyTextBackground(theme);
}

Icon pinIcon(IconData iconData) {
Icon icon(IconData iconData) {
return Icon(
iconData,
color: Colors.grey,
size: 20,
size: 25,
);
}

Widget getRespectivePinIcon(Set<MaterialState> state) {
final bool contains = pinnedStudies.contains(item.id);
final bool hovers = state.contains(MaterialState.hovered);
switch (hovers) {
case true:
return contains ? icon(MdiIcons.pinOff) : icon(MdiIcons.pin);
case false:
return contains ? icon(MdiIcons.pin) : const SizedBox.shrink();
default:
return const SizedBox.shrink();
}
}

return [
pinnedStudies.contains(item.id)
? MouseEventsRegion(
onTap: () => dashboardProvider.pinOffStudy(item.id),
builder: (context, mouseEventState) =>
mouseEventState.contains(MaterialState.hovered) ? pinIcon(MdiIcons.pinOff) : pinIcon(MdiIcons.pin),
)
: const SizedBox.shrink(),
Column(children: [
Text(item.title ?? '[Missing study title]'),
Wrap(
spacing: 8.0,
children: List<Widget>.generate(
item.studyTags.length, (index) {
return studybadge.Badge(
label: item.studyTags.elementAt(index).name,
type: studybadge.BadgeType.outlineFill,
icon: null,
MouseEventsRegion(
onTap: () => pinnedStudies.contains(item.id) ? dashboardProvider.pinOffStudy(item.id) : dashboardProvider.pinStudy(item.id),
builder: (context, mouseEventState) {
return SizedBox.expand(
child: Container(
child: getRespectivePinIcon(mouseEventState),
),
);
}),
},
),
],
item.studyTags.isEmpty ? Text(item.title ?? '[Missing study title]') :
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(item.title ?? '[Missing study title]'),
const SizedBox(height: 8.0),
Wrap(
spacing: 8.0,
children: List<Widget>.generate(
item.studyTags.length, (index) {
return studybadge.Badge(
label: item.studyTags.elementAt(index).name,
type: studybadge.BadgeType.outlineFill,
icon: null,
);
}),
),
]
),
StudyStatusBadge(
status: item.status,
Expand Down

0 comments on commit 0c8b89b

Please sign in to comment.