trash_cell.dart 2.1 KB

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