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