mobile settings mockup

This commit is contained in:
Henry Hiles 2026-06-26 14:17:31 -04:00
commit 6ed01cf61b
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -1,6 +1,8 @@
import "package:flutter/material.dart"; import "package:flutter/material.dart";
import "package:flutter_riverpod/flutter_riverpod.dart"; import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:m3e_card_list/m3e_card_list.dart";
import "package:navigation_rail_m3e/navigation_rail_m3e.dart"; import "package:navigation_rail_m3e/navigation_rail_m3e.dart";
import "package:nexus/widgets/divider_text.dart";
import "package:super_sliver_list/super_sliver_list.dart"; import "package:super_sliver_list/super_sliver_list.dart";
class SettingsPage extends ConsumerWidget { class SettingsPage extends ConsumerWidget {
@ -29,43 +31,105 @@ class SettingsPage extends ConsumerWidget {
), ),
body: Padding( body: Padding(
padding: .symmetric(vertical: 12), padding: .symmetric(vertical: 12),
child: Row( child: categoriesArePages
children: [ ? CustomScrollView(
Padding( slivers: [
padding: .symmetric(vertical: 8), SliverToBoxAdapter(
child: NavigationRailM3E( child: Padding(
type: .alwaysExpand, padding: .symmetric(horizontal: 16),
sections: [ child: DividerText("Account Settings"),
.new( ),
destinations: [ ),
.new(icon: Icon(Icons.abc), label: "Account"), SliverM3ECardList(
.new(icon: Icon(Icons.abc), label: "Account"), padding: .symmetric(horizontal: 4, vertical: 8),
.new(icon: Icon(Icons.abc), label: "Account"), margin: .all(12),
.new(icon: Icon(Icons.abc), label: "Account"), color: Theme.of(context).colorScheme.primaryContainer,
.new(icon: Icon(Icons.abc), label: "Account"), itemCount: 3,
.new(icon: Icon(Icons.abc), label: "Account"), itemBuilder: (context, index) => ListTile(
.new(icon: Icon(Icons.abc), label: "Account"), leading: Icon(Icons.abc),
], title: Text("Account"),
),
),
SliverToBoxAdapter(
child: Padding(
padding: .symmetric(horizontal: 16),
child: DividerText("Some Other Settings"),
),
),
SliverM3ECardList(
padding: .symmetric(horizontal: 4, vertical: 8),
margin: .symmetric(horizontal: 12),
color: Theme.of(context).colorScheme.primaryContainer,
itemCount: 4,
itemBuilder: (context, index) => ListTile(
leading: Icon(Icons.abc),
title: Text("Account"),
),
), ),
], ],
selectedIndex: 0, )
onDestinationSelected: (value) {}, : Row(
),
),
VerticalDivider(),
Expanded(
child: SuperListView(
children: [ children: [
SwitchListTile( Padding(
title: Text("Settings Title"), padding: .symmetric(vertical: 8),
value: false, child: NavigationRailM3E(
onChanged: (value) {}, type: .alwaysExpand,
sections: [
.new(
header: DividerText("Account Settings"),
destinations: [
.new(icon: Icon(Icons.abc), label: "Account"),
.new(icon: Icon(Icons.abc), label: "Account"),
.new(icon: Icon(Icons.abc), label: "Account"),
],
),
.new(
header: DividerText("Some Other Settings"),
destinations: [
.new(icon: Icon(Icons.abc), label: "Account"),
.new(icon: Icon(Icons.abc), label: "Account"),
.new(icon: Icon(Icons.abc), label: "Account"),
],
),
],
selectedIndex: 0,
onDestinationSelected: (value) {},
),
),
VerticalDivider(),
Expanded(
child: SuperListView(
children: [
SwitchListTile(
title: Text("Settings Title"),
value: false,
onChanged: (value) {},
),
SwitchListTile(
title: Text("Settings Title"),
value: false,
onChanged: (value) {},
),
SwitchListTile(
title: Text("Settings Title"),
value: false,
onChanged: (value) {},
),
SwitchListTile(
title: Text("Settings Title"),
value: false,
onChanged: (value) {},
),
SwitchListTile(
title: Text("Settings Title"),
value: false,
onChanged: (value) {},
),
],
),
), ),
], ],
), ),
),
],
),
), ),
); );