Refactor Settings Menu Element into seperate file

This commit is contained in:
Harinandan 2022-01-19 10:29:02 +05:30
parent 03e58a90d2
commit 0ed1847672
2 changed files with 47 additions and 45 deletions

View File

@ -1,3 +1,4 @@
import 'package:app_flowy/workspace/presentation/settings/widgets/settings_menu_element.dart';
import 'package:flutter/material.dart';
class SettingsMenu extends StatelessWidget {
@ -35,48 +36,3 @@ class SettingsMenu extends StatelessWidget {
);
}
}
class SettingsMenuElement extends StatelessWidget {
const SettingsMenuElement({
Key? key,
required this.index,
required this.label,
required this.icon,
required this.changeSelectedIndex,
required this.currentIndex,
}) : super(key: key);
final int index;
final int currentIndex;
final String label;
final IconData icon;
final Function changeSelectedIndex;
@override
Widget build(BuildContext context) {
return ListTile(
leading: Icon(
icon,
size: 16,
color: Colors.black,
),
onTap: () {
changeSelectedIndex(index);
},
selected: index == currentIndex,
selectedColor: Colors.black,
selectedTileColor: Colors.blue.shade700,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5),
),
minLeadingWidth: 0,
title: Text(
label,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
),
),
);
}
}

View File

@ -0,0 +1,46 @@
import 'package:flutter/material.dart';
class SettingsMenuElement extends StatelessWidget {
const SettingsMenuElement({
Key? key,
required this.index,
required this.label,
required this.icon,
required this.changeSelectedIndex,
required this.currentIndex,
}) : super(key: key);
final int index;
final int currentIndex;
final String label;
final IconData icon;
final Function changeSelectedIndex;
@override
Widget build(BuildContext context) {
return ListTile(
leading: Icon(
icon,
size: 16,
color: Colors.black,
),
onTap: () {
changeSelectedIndex(index);
},
selected: index == currentIndex,
selectedColor: Colors.black,
selectedTileColor: Colors.blue.shade700,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5),
),
minLeadingWidth: 0,
title: Text(
label,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
),
),
);
}
}