Skip to content

Commit 65624bb

Browse files
Tomasz KądziołkaTomasz Kądziołka
authored andcommitted
Added dropdown view
1 parent 4588897 commit 65624bb

File tree

4 files changed

+60
-4
lines changed

4 files changed

+60
-4
lines changed

flutter_module/lib/presentation/screens/main_screen.dart

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import 'package:flutter_module/presentation/navigation/login/login_navigator.dar
99
import 'package:flutter_module/presentation/screens/named_screen.dart';
1010
import 'package:flutter_module/presentation/styles/color_styles.dart';
1111
import 'package:flutter_module/presentation/styles/dimens.dart';
12+
import 'package:flutter_module/presentation/styles/padding_styles.dart';
1213
import 'package:flutter_module/presentation/styles/text_styles.dart';
14+
import 'package:flutter_module/presentation/widgets/filter_dropdown.dart';
1315
import 'package:flutter_module/presentation/widgets/filter_list_view.dart';
1416
import 'package:flutter_module/presentation/widgets/snippet_list_item.dart';
1517
import 'package:flutter_module/presentation/widgets/view_state_wrapper.dart';
@@ -173,7 +175,28 @@ class _MainPageData extends StatelessWidget {
173175
background: Column(
174176
mainAxisAlignment: MainAxisAlignment.end,
175177
children: [
176-
Row(children: [const Text("Language")]),
178+
PaddingStyles.small(
179+
Row(children: const [Text("Scope")]),
180+
),
181+
Row(
182+
children: [
183+
SizedBox(
184+
height: Dimens.filterDropdownHeight,
185+
child: FilterDropdown(
186+
filters: ['a', 'b', 'c'],
187+
selected: 'a',
188+
// filters: filter.scopes,
189+
// selected: filter.selectedScope,
190+
onSelected: (item) {
191+
192+
},
193+
),
194+
),
195+
],
196+
),
197+
PaddingStyles.small(
198+
Row(children: const [Text("Language")]),
199+
),
177200
SizedBox(
178201
height: Dimens.filterListHeight,
179202
child: FilterListView(

flutter_module/lib/presentation/styles/dimens.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ class Dimens {
66
static const xxl = 32.0;
77

88
static const inputBorderWidth = 1.0;
9-
static const filterListHeight = 64.0;
9+
static const filterDropdownHeight = 32.0;
10+
static const filterListHeight = 48.0;
1011
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import 'package:flutter/material.dart';
2+
3+
typedef FilterSelectedItemListener = Function(String);
4+
5+
class FilterDropdown extends StatelessWidget {
6+
const FilterDropdown({
7+
Key? key,
8+
required this.filters,
9+
required this.selected,
10+
this.onSelected,
11+
}) : super(key: key);
12+
13+
final List<String?> filters;
14+
final String selected;
15+
final FilterSelectedItemListener? onSelected;
16+
17+
@override
18+
Widget build(BuildContext context) {
19+
return DropdownButtonHideUnderline(
20+
child: DropdownButton<String>(
21+
onChanged: (filter) => onSelected?.call(filter ?? ''),
22+
value: selected,
23+
items: [
24+
// TODO Hardcoded list works, why?
25+
...filters.map(
26+
(filter) => DropdownMenuItem(
27+
child: Text(filter ?? ''),
28+
),
29+
)
30+
],
31+
),
32+
);
33+
}
34+
}

flutter_module/lib/presentation/widgets/filter_list_view.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ class FilterListView extends StatelessWidget {
1818

1919
@override
2020
Widget build(BuildContext context) {
21-
print("Filters = $filters");
22-
print("Selected = $selected");
2321
return ListView.separated(
2422
physics: const BouncingScrollPhysics(),
2523
itemCount: filters.length,

0 commit comments

Comments
 (0)