Skip to content

Commit

Permalink
feat: preserve grid cols locally
Browse files Browse the repository at this point in the history
  • Loading branch information
Jiseeeh committed Jun 8, 2024
1 parent fe27a16 commit 30e675c
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import 'package:u_do_note/core/error/failures.dart';
import 'package:u_do_note/core/logger/logger.dart';
import 'package:u_do_note/core/shared/data/models/note.dart';
import 'package:u_do_note/core/shared/domain/entities/note.dart';
import 'package:u_do_note/core/shared/domain/providers/shared_preferences_provider.dart';
import 'package:u_do_note/core/shared/presentation/providers/app_state_provider.dart';
import 'package:u_do_note/features/note_taking/domain/entities/notebook.dart';
import 'package:u_do_note/features/note_taking/presentation/providers/notes_provider.dart';
Expand All @@ -40,6 +41,25 @@ class _NotebookPagesScreenState extends ConsumerState<NotebookPagesScreen> {
var gridCols = 2;
var notebookIdsToPasteExtractedContent = [];

@override
void initState() {
super.initState();

initGridCols();
}

void initGridCols() async {
var prefs = await ref.read(sharedPreferencesProvider.future);

var cols = prefs.getInt('nbPagesGridCols');

if (cols != null) {
setState(() {
gridCols = cols;
});
}
}

@override
Widget build(BuildContext context) {
var notebooks = ref.watch(notebooksStreamProvider).value;
Expand Down Expand Up @@ -272,7 +292,11 @@ class _NotebookPagesScreenState extends ConsumerState<NotebookPagesScreen> {
elevation: 0,
child: const Icon(Icons.looks_two_rounded),
labelWidget: const Text('Two Columns'),
onTap: () {
onTap: () async {
var prefs = await ref.read(sharedPreferencesProvider.future);

prefs.setInt('nbPagesGridCols', 2);

setState(() {
if (gridCols != 2) {
gridCols = 2;
Expand All @@ -283,7 +307,11 @@ class _NotebookPagesScreenState extends ConsumerState<NotebookPagesScreen> {
elevation: 0,
child: const Icon(Icons.looks_3_rounded),
labelWidget: const Text('Three Columns'),
onTap: () {
onTap: () async {
var prefs = await ref.read(sharedPreferencesProvider.future);

prefs.setInt('nbPagesGridCols', 3);

setState(() {
if (gridCols != 3) {
gridCols = 3;
Expand Down
32 changes: 30 additions & 2 deletions lib/features/note_taking/presentation/pages/notebooks_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';

import 'package:u_do_note/core/shared/domain/providers/shared_preferences_provider.dart';
import 'package:u_do_note/features/note_taking/domain/entities/notebook.dart';
import 'package:u_do_note/features/note_taking/presentation/providers/notes_provider.dart';
import 'package:u_do_note/features/note_taking/presentation/widgets/add_notebook_dialog.dart';
Expand All @@ -20,6 +21,25 @@ class NotebooksScreen extends ConsumerStatefulWidget {
class _NotebooksScreenState extends ConsumerState<NotebooksScreen> {
var gridCols = 2;

@override
void initState() {
super.initState();

initGridCols();
}

void initGridCols() async {
var prefs = await ref.read(sharedPreferencesProvider.future);

var cols = prefs.getInt('nbGridCols');

if (cols != null) {
setState(() {
gridCols = cols;
});
}
}

@override
Widget build(BuildContext context) {
var notebooksAsync = ref.watch(notebooksStreamProvider);
Expand Down Expand Up @@ -47,7 +67,11 @@ class _NotebooksScreenState extends ConsumerState<NotebooksScreen> {
elevation: 0,
child: const Icon(Icons.looks_two_rounded),
labelWidget: const Text('Two Columns'),
onTap: () {
onTap: () async {
var prefs = await ref.read(sharedPreferencesProvider.future);

prefs.setInt('nbGridCols', 2);

setState(() {
if (gridCols != 2) {
gridCols = 2;
Expand All @@ -58,7 +82,11 @@ class _NotebooksScreenState extends ConsumerState<NotebooksScreen> {
elevation: 0,
child: const Icon(Icons.looks_3_rounded),
labelWidget: const Text('Three Columns'),
onTap: () {
onTap: () async {
var prefs = await ref.read(sharedPreferencesProvider.future);

prefs.setInt('nbGridCols', 3);

setState(() {
if (gridCols != 3) {
gridCols = 3;
Expand Down

0 comments on commit 30e675c

Please sign in to comment.