1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-08 13:58:47 +00:00
Files
samples/experimental/date_planner/lib/event_row.dart
Michael Thomsen 4b5a101aa2 Initial date planner app (#2390)
Initial **experimental** date planner iOS sample.

## Pre-launch Checklist

- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-devrel
channel on [Discord].

<!-- Links -->
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[CLA]: https://cla.developers.google.com/
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
[Contributors Guide]:
https://github.com/flutter/samples/blob/main/CONTRIBUTING.md
2024-08-21 15:23:30 +02:00

53 lines
1.3 KiB
Dart

// Copyright 2024 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'event.dart';
class EventRow extends StatelessWidget {
const EventRow({
super.key,
required this.event,
this.onTap,
});
final Event event;
final FutureOr<void> Function()? onTap;
@override
Widget build(BuildContext context) {
// TODO(mit-mit): The corners of the tiles should be rounded.
return Padding(
padding: const EdgeInsets.symmetric(vertical: 4),
child: CupertinoListTile(
title: Text(
event.title,
style: const TextStyle(fontWeight: FontWeight.bold),
),
subtitle: Text(event.dateFormated),
leading: Icon(
event.icon,
size: 28,
color: event.color.color,
),
trailing: Row(
children: [
event.isComplete
? const Icon(CupertinoIcons.check_mark)
: Text(
'${event.remainingTaskCount}',
style: const TextStyle(color: CupertinoColors.systemGrey),
),
const CupertinoListTileChevron(),
],
),
onTap: onTap,
),
);
}
}