Added auto close slidable
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
class ConfigOptions {
|
class ConfigOptions {
|
||||||
static const int listLimit = 20;
|
static const int listLimit = 20;
|
||||||
|
static const String slidableGroupTag = "bookmarksSlidable";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
|||||||
|
|
||||||
import 'package:linkdy/screens/bookmarks/provider/favicon_loader.provider.dart';
|
import 'package:linkdy/screens/bookmarks/provider/favicon_loader.provider.dart';
|
||||||
|
|
||||||
|
import 'package:linkdy/config/options.dart';
|
||||||
import 'package:linkdy/i18n/strings.g.dart';
|
import 'package:linkdy/i18n/strings.g.dart';
|
||||||
import 'package:linkdy/models/data/bookmarks.dart';
|
import 'package:linkdy/models/data/bookmarks.dart';
|
||||||
import 'package:linkdy/providers/app_status.provider.dart';
|
import 'package:linkdy/providers/app_status.provider.dart';
|
||||||
@@ -40,6 +41,8 @@ class BookmarkItem extends ConsumerWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Slidable(
|
return Slidable(
|
||||||
|
key: ValueKey(bookmark.id!),
|
||||||
|
groupTag: ConfigOptions.slidableGroupTag,
|
||||||
startActionPane: ActionPane(
|
startActionPane: ActionPane(
|
||||||
motion: const DrawerMotion(),
|
motion: const DrawerMotion(),
|
||||||
extentRatio: 0.5,
|
extentRatio: 0.5,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:flutter_slidable/flutter_slidable.dart';
|
||||||
import 'package:linkdy/constants/enums.dart';
|
import 'package:linkdy/constants/enums.dart';
|
||||||
|
|
||||||
import 'package:linkdy/screens/bookmarks/provider/bookmarks.provider.dart';
|
import 'package:linkdy/screens/bookmarks/provider/bookmarks.provider.dart';
|
||||||
@@ -106,7 +107,8 @@ class BookmarksScreen extends ConsumerWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (bookmarks.bookmarks.isNotEmpty)
|
if (bookmarks.bookmarks.isNotEmpty)
|
||||||
SliverList.builder(
|
SlidableAutoCloseBehavior(
|
||||||
|
child: SliverList.builder(
|
||||||
itemCount: bookmarks.bookmarks.length + 1,
|
itemCount: bookmarks.bookmarks.length + 1,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
// index == bookmarks.value!.content!.results!.length -> itemCount + 1
|
// index == bookmarks.value!.content!.results!.length -> itemCount + 1
|
||||||
@@ -135,6 +137,7 @@ class BookmarksScreen extends ConsumerWidget {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:flutter_slidable/flutter_slidable.dart';
|
||||||
|
|
||||||
import 'package:linkdy/screens/bookmarks/provider/search_bookmarks.provider.dart';
|
import 'package:linkdy/screens/bookmarks/provider/search_bookmarks.provider.dart';
|
||||||
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
||||||
@@ -101,6 +102,7 @@ class SearchBookmarksScreen extends ConsumerWidget {
|
|||||||
|
|
||||||
return NotificationListener(
|
return NotificationListener(
|
||||||
onNotification: scrollListener,
|
onNotification: scrollListener,
|
||||||
|
child: SlidableAutoCloseBehavior(
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
itemCount: provider.loadingMore ? provider.bookmarks.length + 1 : provider.bookmarks.length,
|
itemCount: provider.loadingMore ? provider.bookmarks.length + 1 : provider.bookmarks.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
@@ -125,6 +127,7 @@ class SearchBookmarksScreen extends ConsumerWidget {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:flutter_slidable/flutter_slidable.dart';
|
||||||
|
|
||||||
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
||||||
import 'package:linkdy/screens/bookmarks/ui/delete_bookmark_modal.dart';
|
import 'package:linkdy/screens/bookmarks/ui/delete_bookmark_modal.dart';
|
||||||
@@ -115,7 +116,8 @@ class TagBookmarksScreenState extends ConsumerState<TagBookmarksScreen> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (provider.bookmarks.isNotEmpty)
|
if (provider.bookmarks.isNotEmpty)
|
||||||
SliverList.builder(
|
SlidableAutoCloseBehavior(
|
||||||
|
child: SliverList.builder(
|
||||||
itemCount:
|
itemCount:
|
||||||
provider.loadingMore == true ? provider.bookmarks.length + 1 : provider.bookmarks.length,
|
provider.loadingMore == true ? provider.bookmarks.length + 1 : provider.bookmarks.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
@@ -140,6 +142,7 @@ class TagBookmarksScreenState extends ConsumerState<TagBookmarksScreen> {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user