trash_cell.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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-folder/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. width: 26,
  39. onPressed: onRestore,
  40. iconPadding: const EdgeInsets.all(5),
  41. icon: svgWidget(
  42. "editor/restore",
  43. color: Theme.of(context).colorScheme.onSurface,
  44. ),
  45. ),
  46. const HSpace(20),
  47. FlowyIconButton(
  48. width: 26,
  49. onPressed: onDelete,
  50. iconPadding: const EdgeInsets.all(5),
  51. icon: svgWidget(
  52. "editor/delete",
  53. color: Theme.of(context).colorScheme.onSurface,
  54. ),
  55. ),
  56. ],
  57. );
  58. }
  59. String dateFormatter($fixnum.Int64 inputTimestamps) {
  60. final outputFormat = DateFormat('MM/dd/yyyy hh:mm a');
  61. final date = DateTime.fromMillisecondsSinceEpoch(
  62. inputTimestamps.toInt() * 1000,
  63. isUtc: true,
  64. );
  65. final outputDate = outputFormat.format(date);
  66. return outputDate;
  67. }
  68. }