mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 12:23:31 +00:00
Add stand-in focus mode disable screen
This commit is contained in:
parent
0e463460fb
commit
f000a73cab
3 changed files with 51 additions and 3 deletions
|
@ -28,9 +28,8 @@ class FocusModeMenuItem extends ConsumerWidget {
|
|||
title: Text(title),
|
||||
onTap: () async {
|
||||
if (focusMode.enabled) {
|
||||
ref
|
||||
.read(focusModeProvider.notifier)
|
||||
.setMode(const FocusModeData(false));
|
||||
context.pop();
|
||||
context.push(ScreenPaths.focusModeDisable);
|
||||
} else {
|
||||
final result = await showChooseOptions(context,
|
||||
'How long would you like to focus?', _options.keys.toList());
|
||||
|
@ -40,6 +39,7 @@ class FocusModeMenuItem extends ConsumerWidget {
|
|||
final disableTime = DateTime.now().add(_options[result]!);
|
||||
final update = FocusModeData(true, disableTime: disableTime);
|
||||
ref.read(focusModeProvider.notifier).setMode(update);
|
||||
context.pop();
|
||||
context.go(ScreenPaths.timelines);
|
||||
}
|
||||
},
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'screens/circle_create_screen.dart';
|
|||
import 'screens/circle_editor_screen.dart';
|
||||
import 'screens/circle_management_screen.dart';
|
||||
import 'screens/contacts_screen.dart';
|
||||
import 'screens/disable_focus_mode_screen.dart';
|
||||
import 'screens/editor.dart';
|
||||
import 'screens/filter_editor_screen.dart';
|
||||
import 'screens/filters_screen.dart';
|
||||
|
@ -35,6 +36,7 @@ class ScreenPaths {
|
|||
static String thread = '/thread';
|
||||
static String connectHandle = '/connect';
|
||||
static String contacts = '/contacts';
|
||||
static String focusModeDisable = '/focus_mode_disable';
|
||||
static String splash = '/splash';
|
||||
static String settings = '/settings';
|
||||
static String messages = '/messages';
|
||||
|
@ -66,6 +68,11 @@ final routes = [
|
|||
name: ScreenPaths.blocks,
|
||||
builder: (context, state) => const BlocksScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: ScreenPaths.focusModeDisable,
|
||||
name: ScreenPaths.focusModeDisable,
|
||||
builder: (context, state) => const DisableFocusModeScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: ScreenPaths.filters,
|
||||
name: ScreenPaths.filters,
|
||||
|
|
41
lib/screens/disable_focus_mode_screen.dart
Normal file
41
lib/screens/disable_focus_mode_screen.dart
Normal file
|
@ -0,0 +1,41 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:relatica/models/focus_mode_data.dart';
|
||||
import 'package:relatica/riverpod_controllers/focus_mode.dart';
|
||||
import 'package:relatica/routes.dart';
|
||||
|
||||
class DisableFocusModeScreen extends ConsumerStatefulWidget {
|
||||
const DisableFocusModeScreen({super.key});
|
||||
|
||||
@override
|
||||
ConsumerState<DisableFocusModeScreen> createState() =>
|
||||
_DisableFocusModeScreenState();
|
||||
}
|
||||
|
||||
class _DisableFocusModeScreenState
|
||||
extends ConsumerState<DisableFocusModeScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Unlock Focus Mode?'),
|
||||
),
|
||||
body: Center(
|
||||
child: Column(
|
||||
children: [
|
||||
Text('Want to disable focus mode?'),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
ref
|
||||
.read(focusModeProvider.notifier)
|
||||
.setMode(FocusModeData(false));
|
||||
context.go(ScreenPaths.timelines);
|
||||
},
|
||||
child: Text('Disable'))
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue