diff --git a/README.md b/README.md index 40366d33f..0069d5c30 100644 --- a/README.md +++ b/README.md @@ -87,28 +87,6 @@ I'm always releasing newer versions of binary of the software each 2-3 month wit ## Nightly Builds Get the latest nightly builds of Spotube [here](https://nightly.link/KRTirtho/spotube/workflows/spotube-nightly/build) -## Optional Configurations -### Login with Spotify - You need a spotify account & a developer app for - - - clientId - - clientSecret - - **Grab credentials:** - - - Go to https://developer.spotify.com/dashboard/login & login with your spotify account (Skip if you're logged in) - Step 1 - - - Create an web app for Spotify Public API
- step 2 - - - **MOST IMPORTANT:** Give the app a name & description. Then Edit settings & add `http://localhost:4304/auth/spotify/callback` as **Redirect URI** for the app. Its important for authenticating
- step-3-a - setp-3-b - - - Click on **SHOW CLIENT SECRET** to reveal the **clientSecret**. Then copy the **clientID**, **clientSecret** & paste in the **Spotube's** respective fields
- step-4 - # TODO: - [ ] Windows OS Media Control & Media Keys Support - [ ] Spotify Listen Along @@ -176,6 +154,10 @@ Bu why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-sour - [badges](https://github.com/yako-dev/flutter_badges) - A flutter package for creating badges. - [mime](https://github.com/dart-lang/mime) - Dart package for working with MIME type definitions and for processing streams of MIME multipart media types. - [metadata_god](https://github.com/KRTirtho/metadata_god) - Audio file Metadata reading and writing library for Flutter +- [visibility_detector](https://github.com/google/flutter.widgets/tree/master/packages/visibility_detector) - A widget that detects the visibility of its child and notifies a callback +- [fl_query](https://github.com/KRTirtho/fl-query) - Asynchronous data caching, refetching & invalidation library for Flutter +- [fl_query_hooks](https://github.com/KRTirtho/fl-query/tree/main/packages/fl_query_hooks) - Elite flutter_hooks compatible library for fl_query, the Asynchronous data caching, refetching & invalidation library for Flutter +- [flutter_inappwebview](https://github.com/pichillilorenzo/flutter_inappwebview) - A Flutter plugin that allows you to add an inline webview, to use a headless webview, and to open an in-app browser window # The Team diff --git a/lib/components/Home/SpotubeNavigationBar.dart b/lib/components/Home/SpotubeNavigationBar.dart index ab376404d..fbac8a4a6 100644 --- a/lib/components/Home/SpotubeNavigationBar.dart +++ b/lib/components/Home/SpotubeNavigationBar.dart @@ -1,5 +1,6 @@ import 'package:badges/badges.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:spotube/components/Home/Sidebar.dart'; import 'package:spotube/hooks/useBreakpoints.dart'; @@ -26,6 +27,13 @@ class SpotubeNavigationBar extends HookConsumerWidget { final layoutMode = ref.watch(userPreferencesProvider.select((s) => s.layoutMode)); + final insideSelectedIndex = useState(selectedIndex); + + useEffect(() { + insideSelectedIndex.value = selectedIndex; + return null; + }, [selectedIndex]); + if (layoutMode == LayoutMode.extended || (breakpoint.isMoreThan(Breakpoints.sm) && layoutMode == LayoutMode.adaptive)) return const SizedBox(); @@ -58,11 +66,13 @@ class SpotubeNavigationBar extends HookConsumerWidget { label: "Settings", ) ], - selectedIndex: selectedIndex, + selectedIndex: insideSelectedIndex.value, onDestinationSelected: (i) { if (i == 4) { + insideSelectedIndex.value = 4; Sidebar.goToSettings(context); } else { + insideSelectedIndex.value = i; onSelectedIndexChanged(i); } },