mirror of
https://github.com/foss42/apidash.git
synced 2025-07-03 23:05:32 +08:00
DashBot providers
This commit is contained in:
@ -3,6 +3,10 @@ import 'package:apidash/services/services.dart';
|
|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import '../services/services.dart';
|
import '../services/services.dart';
|
||||||
|
|
||||||
|
final dashBotMinimizedProvider = StateProvider<bool>((ref) {
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
final chatMessagesProvider =
|
final chatMessagesProvider =
|
||||||
StateNotifierProvider<ChatMessagesNotifier, List<Map<String, dynamic>>>(
|
StateNotifierProvider<ChatMessagesNotifier, List<Map<String, dynamic>>>(
|
||||||
(ref) => ChatMessagesNotifier(),
|
(ref) => ChatMessagesNotifier(),
|
||||||
|
@ -131,6 +131,7 @@ class _DashBotWidgetState extends ConsumerState<DashBotWidget> {
|
|||||||
|
|
||||||
Widget _buildHeader(BuildContext context) {
|
Widget _buildHeader(BuildContext context) {
|
||||||
final isMinimized = ref.watch(dashBotMinimizedProvider);
|
final isMinimized = ref.watch(dashBotMinimizedProvider);
|
||||||
|
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.fromLTRB(16, 16, 16, 0),
|
padding: const EdgeInsets.fromLTRB(16, 16, 16, 0),
|
||||||
child: Row(
|
child: Row(
|
||||||
@ -161,7 +162,8 @@ class _DashBotWidgetState extends ConsumerState<DashBotWidget> {
|
|||||||
icon: const Icon(Icons.close, size: 20),
|
icon: const Icon(Icons.close, size: 20),
|
||||||
tooltip: 'Close',
|
tooltip: 'Close',
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
ref.read(dashBotVisibilityProvider.notifier).state = false;
|
ref.read(isDashBotEnabledStateProvider.notifier).state =
|
||||||
|
false;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
|
@ -11,6 +11,9 @@ final codegenLanguageStateProvider = StateProvider<CodegenLanguage>((ref) =>
|
|||||||
final activeEnvironmentIdStateProvider = StateProvider<String?>((ref) =>
|
final activeEnvironmentIdStateProvider = StateProvider<String?>((ref) =>
|
||||||
ref.watch(settingsProvider.select((value) => value.activeEnvironmentId)));
|
ref.watch(settingsProvider.select((value) => value.activeEnvironmentId)));
|
||||||
|
|
||||||
|
final isDashBotEnabledStateProvider = StateProvider<bool>((ref) =>
|
||||||
|
ref.watch(settingsProvider.select((value) => value.isDashBotEnabled)));
|
||||||
|
|
||||||
final StateNotifierProvider<ThemeStateNotifier, SettingsModel>
|
final StateNotifierProvider<ThemeStateNotifier, SettingsModel>
|
||||||
settingsProvider = StateNotifierProvider((ref) => ThemeStateNotifier());
|
settingsProvider = StateNotifierProvider((ref) => ThemeStateNotifier());
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ class Dashboard extends ConsumerWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final railIdx = ref.watch(navRailIndexStateProvider);
|
final railIdx = ref.watch(navRailIndexStateProvider);
|
||||||
final settings = ref.watch(settingsProvider);
|
final isDashBotEnabled = ref.watch(isDashBotEnabledStateProvider);
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: Row(
|
child: Row(
|
||||||
@ -126,7 +126,7 @@ class Dashboard extends ConsumerWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
floatingActionButton: settings.isDashBotEnabled
|
floatingActionButton: isDashBotEnabled
|
||||||
? FloatingActionButton(
|
? FloatingActionButton(
|
||||||
onPressed: () => showModalBottomSheet(
|
onPressed: () => showModalBottomSheet(
|
||||||
context: context,
|
context: context,
|
||||||
|
Reference in New Issue
Block a user