@@ -11,13 +11,16 @@ import 'package:abs_flutter/models/setting.dart';
1111import 'package:abs_flutter/provider/user_provider.dart' ;
1212import 'package:dio/dio.dart' ;
1313import 'package:flutter/material.dart' ;
14+ import 'package:flutter_hooks/flutter_hooks.dart' ;
1415import 'package:flutter_platform_widgets/flutter_platform_widgets.dart' ;
1516import 'package:flutter_riverpod/flutter_riverpod.dart' ;
1617import 'package:go_router/go_router.dart' ;
1718import 'package:quickalert/quickalert.dart' ;
1819
20+ // TODO: Use proper state management
1921final usernameProvider = StateProvider <String >((ref) => '' );
2022final passwordProvider = StateProvider <String >((ref) => '' );
23+ final subdomainProvider = StateProvider <String ?>((ref) => 'audiobookshelf' );
2124final loginStateProvider =
2225 StateNotifierProvider <LoginStateNotifier , LoginState >(
2326 (ref) => LoginStateNotifier ());
@@ -108,6 +111,27 @@ class ServerSelection extends ConsumerWidget {
108111 isServerInputValid: isServerInputValid,
109112 showHint: () => showHint (context)),
110113 const SizedBox (height: 16 ),
114+ HookBuilder (builder: (context) {
115+ final useSubdomain = useState <bool >(true );
116+ return Row (
117+ mainAxisAlignment: MainAxisAlignment .spaceBetween,
118+ children: [
119+ const Text ('Use subdirectory' ),
120+ Switch (
121+ value: useSubdomain.value,
122+ onChanged: (val) {
123+ useSubdomain.value = ! useSubdomain.value;
124+ ref
125+ .read (subdomainProvider.notifier)
126+ .state =
127+ useSubdomain.value
128+ ? 'audiobookshelf'
129+ : null ;
130+ })
131+ ],
132+ );
133+ }),
134+ const SizedBox (height: 16 ),
111135 if (loginState.isLoading)
112136 PlatformCircularProgressIndicator (),
113137 if (loginState.errorMessage.isNotEmpty)
@@ -321,9 +345,16 @@ class LoginButton extends ConsumerWidget {
321345 final protocol = ref.read (protocolProvider);
322346 final domain = ref.read (domainProvider);
323347 final port = ref.read (portProvider);
348+ final String ? subdomain = ref.read (subdomainProvider);
349+
350+ print (subdomain);
324351
325352 Server server = Server (
326- ssl: protocol == 'https://' , host: domain, port: int .parse (port));
353+ ssl: protocol == 'https://' ,
354+ host: domain,
355+ port: int .parse (port),
356+ subdomain: subdomain);
357+ print ('connecting to server: ${server .url }' );
327358 setBasePathOverride (ref, server.url);
328359
329360 LoginRequest loginRequest = LoginRequest (
0 commit comments