trash_cell.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'package:flowy_infra/image.dart';
  2. import 'package:flowy_infra/theme.dart';
  3. import 'package:flowy_infra_ui/style_widget/icon_button.dart';
  4. import 'package:flowy_infra_ui/style_widget/text.dart';
  5. import 'package:flowy_infra_ui/widget/spacing.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-folder/trash.pb.dart';
  7. import 'package:flutter/material.dart';
  8. import 'package:intl/intl.dart';
  9. import 'package:fixnum/fixnum.dart' as $fixnum;
  10. import 'package:provider/provider.dart';
  11. import 'sizes.dart';
  12. class TrashCell extends StatelessWidget {
  13. final VoidCallback onRestore;
  14. final VoidCallback onDelete;
  15. final TrashPB object;
  16. const TrashCell(
  17. {required this.object,
  18. required this.onRestore,
  19. required this.onDelete,
  20. Key? key})
  21. : super(key: key);
  22. @override
  23. Widget build(BuildContext context) {
  24. final theme = context.watch<AppTheme>();
  25. return Row(
  26. children: [
  27. SizedBox(
  28. width: TrashSizes.fileNameWidth,
  29. child: FlowyText(object.name, fontSize: 12)),
  30. SizedBox(
  31. width: TrashSizes.lashModifyWidth,
  32. child: FlowyText(dateFormatter(object.modifiedTime), fontSize: 12)),
  33. SizedBox(
  34. width: TrashSizes.createTimeWidth,
  35. child: FlowyText(dateFormatter(object.createTime), fontSize: 12)),
  36. const Spacer(),
  37. FlowyIconButton(
  38. width: 26,
  39. onPressed: onRestore,
  40. hoverColor: theme.hover,
  41. iconPadding: const EdgeInsets.all(5),
  42. icon: svgWidget("editor/restore", color: theme.iconColor),
  43. ),
  44. const HSpace(20),
  45. FlowyIconButton(
  46. width: 26,
  47. onPressed: onDelete,
  48. hoverColor: theme.hover,
  49. iconPadding: const EdgeInsets.all(5),
  50. icon: svgWidget("editor/delete", color: theme.iconColor),
  51. ),
  52. ],
  53. );
  54. }
  55. String dateFormatter($fixnum.Int64 inputTimestamps) {
  56. var outputFormat = DateFormat('MM/dd/yyyy hh:mm a');
  57. var date =
  58. DateTime.fromMillisecondsSinceEpoch(inputTimestamps.toInt() * 1000);
  59. var outputDate = outputFormat.format(date);
  60. return outputDate;
  61. }
  62. }