flutter_timeline/packages/widgetbook/lib/main.dart
2024-01-30 11:20:31 +01:00

92 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_timeline/flutter_timeline.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:timeline_widgetbook/main.directories.g.dart';
import 'package:timeline_widgetbook/mock_timeline_service.dart';
import 'package:widgetbook/widgetbook.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook;
void main() {
initializeDateFormatting();
runApp(const WidgetBookApp());
}
@widgetbook.App()
class WidgetBookApp extends StatelessWidget {
const WidgetBookApp({super.key});
@override
Widget build(BuildContext context) {
return Widgetbook.material(
integrations: [
WidgetbookCloudIntegration(),
],
addons: [
DeviceFrameAddon(
devices: [
Devices.ios.iPhoneSE,
Devices.ios.iPhone13,
Devices.android.bigPhone,
Devices.android.mediumPhone,
Devices.android.smallPhone,
],
initialDevice: Devices.ios.iPhone13,
),
MaterialThemeAddon(
themes: [
WidgetbookTheme(
name: 'Light',
data: ThemeData.light(),
),
WidgetbookTheme(
name: 'Dark',
data: ThemeData.dark(),
),
],
initialTheme: WidgetbookTheme(
name: 'Light',
data: ThemeData.light(),
),
),
],
directories: directories,
);
}
}
@widgetbook.UseCase(
designLink:
'https://www.figma.com/file/PRJoVXQ5aOjAICfkQdAq2A/Iconica-User-Stories?type=design&node-id=34-2763&mode=design&t=W72P3tkEascAKDCk-4',
name: 'Timeline post screen',
type: TimelinePostScreen,
)
Widget postScreenUseCase(BuildContext context) {
var service = TestTimelineService()..fetchPosts(null);
var options = const TimelineOptions();
return TimelinePostScreen(
userId: '1',
service: service,
options: options,
post: service.posts.first,
onPostDelete: () {},
);
}
@widgetbook.UseCase(
designLink:
'https://www.figma.com/file/PRJoVXQ5aOjAICfkQdAq2A/Iconica-User-Stories?type=design&node-id=34-2763&mode=design&t=W72P3tkEascAKDCk-4',
name: 'Timeline screen',
type: TimelineScreen,
)
Widget timelineUseCase(BuildContext context) {
var service = TestTimelineService()..fetchPosts(null);
var options = const TimelineOptions();
return TimelineScreen(
userId: '1',
options: options,
onPostTap: (_) {},
service: service,
);
}