Latest Front with debug
This commit is contained in:
@@ -18,7 +18,7 @@ class ItemRowWidget extends StatefulWidget {
|
||||
}
|
||||
class ItemRowWidgetState extends State<ItemRowWidget> {
|
||||
@override Widget build(BuildContext context) {
|
||||
double imageSize = MediaQuery.of(context).size.width != widget.contextWidth ? 0 : 80;
|
||||
double imageSize = widget.contextWidth <= 400 ? 0 : 80;
|
||||
var ratio = MediaQuery.of(context).size.width != widget.contextWidth ? 0.5 : 1; // 2;
|
||||
var itemWidth = (((widget.contextWidth - imageSize) / 3) - 80) / ratio;
|
||||
itemWidth = itemWidth > 100 ? 100 : ( itemWidth < 40 ? 40 : itemWidth );
|
||||
@@ -30,6 +30,7 @@ class ItemRowWidgetState extends State<ItemRowWidget> {
|
||||
Widget w = Container(
|
||||
width: widget.contextWidth,
|
||||
height: 100,
|
||||
padding: EdgeInsets.only(left: imageSize == 0 ? 20 : 0),
|
||||
decoration: BoxDecoration( border: Border(bottom: BorderSide(color: Colors.grey.shade300)) ),
|
||||
child: Row( children: [
|
||||
widget.low ? Container( padding: const EdgeInsets.only(left: 10),) : Container( padding: const EdgeInsets.all(10),
|
||||
|
||||
74
lib/widgets/items/shallow_item_row.dart
Normal file
74
lib/widgets/items/shallow_item_row.dart
Normal file
@@ -0,0 +1,74 @@
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:oc_front/models/response.dart';
|
||||
|
||||
const List<GlobalKey<State>> _empty = [];
|
||||
// ignore: must_be_immutable
|
||||
class ShallowItemRowWidget extends StatefulWidget {
|
||||
bool readOnly = false;
|
||||
double contextWidth = 0;
|
||||
ShallowData item;
|
||||
IconData? icon;
|
||||
bool low = false;
|
||||
bool show = false;
|
||||
List<IconData> badges = [];
|
||||
void Function(String?)? delete;
|
||||
void Function(String?)? edit;
|
||||
List<GlobalKey<State>> keys = [];
|
||||
ShallowItemRowWidget ({ super.key, this.low = false, this.icon, this.delete, this.edit, this.badges = const [],
|
||||
required this.contextWidth, this.readOnly = false, required this.item, this.keys = _empty });
|
||||
@override ShallowItemRowWidgetState createState() => ShallowItemRowWidgetState();
|
||||
}
|
||||
class ShallowItemRowWidgetState extends State<ShallowItemRowWidget> {
|
||||
@override Widget build(BuildContext context) {
|
||||
Widget w = Tooltip( message: widget.item.getName(), child: MouseRegion(
|
||||
onHover: (e) => setState(() {
|
||||
widget.show = true;
|
||||
}),
|
||||
onExit: (e) => setState(() {
|
||||
widget.show = false;
|
||||
}),
|
||||
child: Container(
|
||||
height: widget.contextWidth, width: widget.contextWidth,
|
||||
padding: const EdgeInsets.all(20),
|
||||
decoration: BoxDecoration( borderRadius: BorderRadius.circular(4), color: Colors.white,
|
||||
boxShadow: const [BoxShadow(color: Colors.grey, spreadRadius: 1, blurRadius: 1, offset: Offset(0, 1))]),
|
||||
child: Stack( children: [
|
||||
widget.show ? Positioned( left: 0, top: 0,
|
||||
child: Row( children: [
|
||||
Padding( padding: const EdgeInsets.only(right: 5),
|
||||
child: widget.edit == null ? Container() : InkWell( mouseCursor: SystemMouseCursors.click,
|
||||
onTap: () => widget.edit!(widget.item.getID() + "~" + widget.item.getName()), child: const Icon(Icons.edit, color: Colors.grey,))),
|
||||
Padding( padding: const EdgeInsets.only(right: 5),
|
||||
child: widget.delete == null ? Container() : InkWell( mouseCursor: SystemMouseCursors.click,
|
||||
onTap: () => widget.delete!(widget.item.getID()), child: const Icon(Icons.delete, color: Colors.grey,))),
|
||||
] )) : Container(),
|
||||
Positioned( right: 0, top: 0,
|
||||
child: Row( children: widget.badges.map( (e) => Padding( padding: const EdgeInsets.only(left: 5), child: Icon(e, color: Colors.orange.shade300,))).toList() )),
|
||||
Column( children: [
|
||||
widget.low || widget.icon == null ? Container( padding: const EdgeInsets.only(left: 10),) : Container( padding: const EdgeInsets.all(10),
|
||||
constraints: BoxConstraints(maxWidth: widget.contextWidth, minWidth: widget.contextWidth),
|
||||
child: Icon( widget.icon!, size: widget.contextWidth / 1.9, color: const Color(0xFFF67C0B9),)),
|
||||
Container(
|
||||
child: Padding(padding: widget.contextWidth != MediaQuery.of(context).size.width ?
|
||||
const EdgeInsets.symmetric(horizontal: 10) : const EdgeInsets.symmetric(horizontal: 20),
|
||||
child: Column(crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.center, children: [
|
||||
Row( children: [
|
||||
Expanded( child: Center( child: Text(widget.item.getName().toUpperCase(),
|
||||
style: const TextStyle(fontSize: 15,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
fontWeight: FontWeight.w600, color: Colors.grey)),
|
||||
))
|
||||
]),
|
||||
],)
|
||||
)
|
||||
),
|
||||
])
|
||||
]))));
|
||||
return widget.readOnly || widget.low ? w : InkWell( mouseCursor: SystemMouseCursors.click,
|
||||
onTap: () { },
|
||||
child: w );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user