trash_cell.dart 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. var outputFormat = DateFormat('MM/dd/yyyy hh:mm a');
  61. var date =
  62. DateTime.fromMillisecondsSinceEpoch(inputTimestamps.toInt() * 1000);
  63. var outputDate = outputFormat.format(date);
  64. return outputDate;
  65. }
  66. }