Skip to content

Commit ec8bc0a

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents 538c399 + 9106b36 commit ec8bc0a

File tree

12 files changed

+178
-4
lines changed

12 files changed

+178
-4
lines changed
464 KB
Loading
303 KB
Loading
340 KB
Loading
Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1+
import 'package:example/sdk/agent/fake_output.dart';
12
import 'package:example/sdk/agent/input.dart';
3+
import 'package:example/sdk/catalog/invitation.dart';
4+
import 'package:example/sdk/model/base_classes.dart';
25
import 'package:flutter/widgets.dart';
36

47
class GenUiAgent {
5-
Widget request(Input input) {
6-
return Text('Request processed: $input');
8+
Future<Widget> request(Input input, EventHandler handler) async {
9+
switch (input.runtimeType) {
10+
case InvitationInput _:
11+
return Invitation(data: fakeInvitationData, handler: handler);
12+
default:
13+
throw Exception('Unsupported input type: ${input.runtimeType}');
14+
}
715
}
816
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import 'package:example/sdk/catalog/carousel.dart';
2+
import 'package:example/sdk/catalog/invitation.dart';
3+
import 'package:example/sdk/catalog/text_intro.dart';
4+
5+
final fakeInvitationData = InvitationData(
6+
textIntroData: TextIntroData(
7+
h1: 'Hello, Ryan,',
8+
h2: 'Welcome to traveling with Compass',
9+
intro:
10+
'Explore our promotions below or let me know '
11+
'what you are looking for and I will generate '
12+
'a custom itinerary just for you.',
13+
),
14+
exploreTitle: 'Explore',
15+
exploreItems: [
16+
CarouselItemData(
17+
title: 'Beach Bliss',
18+
imageUrl: 'assets/explore/beach_bliss.png',
19+
),
20+
CarouselItemData(
21+
title: 'Urban Escapes',
22+
imageUrl: 'assets/explore/urban_escapes.png',
23+
),
24+
CarouselItemData(
25+
title: "Nature's Wonders",
26+
imageUrl: 'assets/explore/natures_wonder.png',
27+
),
28+
],
29+
chatHintText: 'Ask me anything',
30+
);
Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1-
class Input {
2-
Input.x();
1+
class ImageCatalog {}
2+
3+
sealed class Input {
4+
final ImageCatalog imageCatalog;
5+
6+
const Input._(this.imageCatalog);
7+
}
8+
9+
class InvitationInput extends Input {
10+
InvitationInput(super.imageCatalog) : super._();
11+
}
12+
13+
class UserInput extends Input {
14+
UserInput(super.imageCatalog) : super._();
315
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import 'package:example/sdk/model/base_classes.dart';
2+
import 'package:flutter/material.dart';
3+
4+
class Carousel extends StatelessWidget {
5+
const Carousel({super.key, required this.data});
6+
7+
final CarouselData data;
8+
9+
@override
10+
Widget build(BuildContext context) {
11+
return Expanded(
12+
child: ListView.builder(
13+
scrollDirection: Axis.horizontal,
14+
itemCount: data.items.length,
15+
itemBuilder: (context, index) => CarouselItem(data: data.items[index]),
16+
),
17+
);
18+
}
19+
}
20+
21+
class CarouselItem extends StatelessWidget {
22+
final CarouselItemData data;
23+
24+
const CarouselItem({super.key, required this.data});
25+
26+
@override
27+
Widget build(BuildContext context) {
28+
return const Placeholder();
29+
}
30+
}
31+
32+
class CarouselItemData extends WidgetData {
33+
final String title;
34+
final String imageUrl;
35+
36+
CarouselItemData({required this.title, required this.imageUrl});
37+
}
38+
39+
class CarouselData extends WidgetData {
40+
final List<CarouselItemData> items;
41+
42+
CarouselData({required this.items});
43+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import 'package:flutter/material.dart';
2+
3+
class ChatBox extends StatelessWidget {
4+
const ChatBox({super.key});
5+
6+
@override
7+
Widget build(BuildContext context) {
8+
return const Placeholder();
9+
}
10+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import 'package:example/sdk/catalog/carousel.dart';
2+
import 'package:example/sdk/catalog/text_intro.dart';
3+
import 'package:example/sdk/model/base_classes.dart';
4+
import 'package:flutter/material.dart';
5+
6+
class Invitation extends StatelessWidget {
7+
final InvitationData data;
8+
final EventHandler handler;
9+
10+
const Invitation({super.key, required this.data, required this.handler});
11+
12+
@override
13+
Widget build(BuildContext context) {
14+
return const Placeholder();
15+
}
16+
}
17+
18+
class InvitationData extends WidgetData {
19+
final TextIntroData textIntroData;
20+
final String exploreTitle;
21+
final List<CarouselItemData> exploreItems;
22+
final String chatHintText;
23+
24+
InvitationData({
25+
required this.textIntroData,
26+
required this.exploreTitle,
27+
required this.chatHintText,
28+
required this.exploreItems,
29+
});
30+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import 'package:flutter/material.dart';
2+
3+
abstract class AppTextStyles {
4+
static TextStyle normal(BuildContext context) {
5+
return Theme.of(context).textTheme.labelLarge!;
6+
}
7+
8+
static TextStyle h1(BuildContext context) => normal(
9+
context,
10+
).copyWith(fontSize: 46.0, fontWeight: FontWeight.w900, inherit: true);
11+
12+
static TextStyle h2(BuildContext context) => normal(
13+
context,
14+
).copyWith(fontSize: 26.0, fontWeight: FontWeight.w200, inherit: true);
15+
16+
static TextStyle h3(BuildContext context) => normal(
17+
context,
18+
).copyWith(fontSize: 24.0, fontWeight: FontWeight.w200, inherit: true);
19+
}

0 commit comments

Comments
 (0)