mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00
fix: Navigating to settings, redirects to home page #812
This commit is contained in:
parent
6b8ae88db4
commit
da04f068f9
@ -22,7 +22,7 @@ import 'package:spotube/utils/platform.dart';
|
||||
import 'package:spotube/utils/type_conversion_utils.dart';
|
||||
|
||||
class Sidebar extends HookConsumerWidget {
|
||||
final int selectedIndex;
|
||||
final int? selectedIndex;
|
||||
final void Function(int) onSelectedIndexChanged;
|
||||
final Widget child;
|
||||
|
||||
@ -57,7 +57,7 @@ class Sidebar extends HookConsumerWidget {
|
||||
ref.watch(userPreferencesProvider.select((s) => s.layoutMode));
|
||||
|
||||
final controller = useSidebarXController(
|
||||
selectedIndex: selectedIndex,
|
||||
selectedIndex: selectedIndex ?? 0,
|
||||
extended: mediaQuery.lgAndUp,
|
||||
);
|
||||
|
||||
@ -75,17 +75,21 @@ class Sidebar extends HookConsumerWidget {
|
||||
);
|
||||
|
||||
useEffect(() {
|
||||
if (controller.selectedIndex != selectedIndex) {
|
||||
controller.selectIndex(selectedIndex);
|
||||
if (controller.selectedIndex != selectedIndex && selectedIndex != null) {
|
||||
controller.selectIndex(selectedIndex!);
|
||||
}
|
||||
return null;
|
||||
}, [selectedIndex]);
|
||||
|
||||
useEffect(() {
|
||||
controller.addListener(() {
|
||||
void listener() {
|
||||
onSelectedIndexChanged(controller.selectedIndex);
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
controller.addListener(listener);
|
||||
return () {
|
||||
controller.removeListener(listener);
|
||||
};
|
||||
}, [controller]);
|
||||
|
||||
useEffect(() {
|
||||
|
@ -16,7 +16,7 @@ import 'package:spotube/provider/user_preferences_provider.dart';
|
||||
final navigationPanelHeight = StateProvider<double>((ref) => 50);
|
||||
|
||||
class SpotubeNavigationBar extends HookConsumerWidget {
|
||||
final int selectedIndex;
|
||||
final int? selectedIndex;
|
||||
final void Function(int) onSelectedIndexChanged;
|
||||
|
||||
const SpotubeNavigationBar({
|
||||
@ -33,7 +33,7 @@ class SpotubeNavigationBar extends HookConsumerWidget {
|
||||
final layoutMode =
|
||||
ref.watch(userPreferencesProvider.select((s) => s.layoutMode));
|
||||
|
||||
final insideSelectedIndex = useState<int>(selectedIndex);
|
||||
final insideSelectedIndex = useState<int>(selectedIndex ?? 0);
|
||||
|
||||
final buttonColor = useBrightnessValue(
|
||||
theme.colorScheme.inversePrimary,
|
||||
@ -46,7 +46,9 @@ class SpotubeNavigationBar extends HookConsumerWidget {
|
||||
final panelHeight = ref.watch(navigationPanelHeight);
|
||||
|
||||
useEffect(() {
|
||||
insideSelectedIndex.value = selectedIndex;
|
||||
if (selectedIndex != null) {
|
||||
insideSelectedIndex.value = selectedIndex!;
|
||||
}
|
||||
return null;
|
||||
}, [selectedIndex]);
|
||||
|
||||
|
@ -159,7 +159,7 @@ class RootApp extends HookConsumerWidget {
|
||||
|
||||
return Scaffold(
|
||||
body: Sidebar(
|
||||
selectedIndex: rootPaths[location] ?? 0,
|
||||
selectedIndex: rootPaths[location],
|
||||
onSelectedIndexChanged: onSelectIndexChanged,
|
||||
child: child,
|
||||
),
|
||||
@ -169,7 +169,7 @@ class RootApp extends HookConsumerWidget {
|
||||
children: [
|
||||
BottomPlayer(),
|
||||
SpotubeNavigationBar(
|
||||
selectedIndex: rootPaths[location] ?? 0,
|
||||
selectedIndex: rootPaths[location],
|
||||
onSelectedIndexChanged: onSelectIndexChanged,
|
||||
),
|
||||
],
|
||||
|
Loading…
Reference in New Issue
Block a user