feature/pagination #42
@ -50,6 +50,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
final AuthService _authService = AuthService();
|
final AuthService _authService = AuthService();
|
||||||
late ScrollController _scrollController;
|
late ScrollController _scrollController;
|
||||||
int _fetchCount = 0;
|
int _fetchCount = 0;
|
||||||
|
bool _last = false;
|
||||||
bool _isLoading = false;
|
bool _isLoading = false;
|
||||||
|
|
||||||
Future<List<Events>> postsFuture = getPosts();
|
Future<List<Events>> postsFuture = getPosts();
|
||||||
@ -470,13 +471,16 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
if ((body.isNotEmpty) || (_fetchCount > 0)) {
|
if ((body.isNotEmpty) || (_fetchCount > 0)) {
|
||||||
if (body.isEmpty) {
|
if (body.isEmpty) {
|
||||||
_fetchCount--;
|
_fetchCount--;
|
||||||
|
_last = true;
|
||||||
}
|
}
|
||||||
// If we have results, map them to Events
|
// If we have results, map them to Events
|
||||||
filteredPosts.addAll(
|
if (!_last) {
|
||||||
body
|
filteredPosts.addAll(
|
||||||
.map((e) => Events.fromJson(e as Map<String, dynamic>))
|
body
|
||||||
.toList(),
|
.map((e) => Events.fromJson(e as Map<String, dynamic>))
|
||||||
);
|
.toList(),
|
||||||
|
);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// If no results, clear filteredPosts
|
// If no results, clear filteredPosts
|
||||||
filteredPosts.clear();
|
filteredPosts.clear();
|
||||||
@ -619,6 +623,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
labelText: 'Search by item',
|
labelText: 'Search by item',
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
if (value.isNotEmpty) {
|
if (value.isNotEmpty) {
|
||||||
setState(() {
|
setState(() {
|
||||||
itemName = value;
|
itemName = value;
|
||||||
@ -637,6 +642,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
},
|
},
|
||||||
onClear: () {
|
onClear: () {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
setState(() {
|
setState(() {
|
||||||
inputItem.clear();
|
inputItem.clear();
|
||||||
itemName = '';
|
itemName = '';
|
||||||
@ -649,7 +655,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
suggestions: suggestionsItem,
|
suggestions: suggestionsItem,
|
||||||
onSuggestionTap: (suggestion) async {
|
onSuggestionTap: (suggestion) async {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
setState(() {
|
setState(() {
|
||||||
itemName = suggestion['name'];
|
itemName = suggestion['name'];
|
||||||
inputItem.text = itemName;
|
inputItem.text = itemName;
|
||||||
@ -666,7 +672,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
labelText: 'Search by tags',
|
labelText: 'Search by tags',
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
if (value.isNotEmpty) {
|
if (value.isNotEmpty) {
|
||||||
setState(() {
|
setState(() {
|
||||||
itemTags = value;
|
itemTags = value;
|
||||||
@ -693,6 +699,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
suggestions: suggestionsTags,
|
suggestions: suggestionsTags,
|
||||||
onSuggestionTap: (suggestion) async {
|
onSuggestionTap: (suggestion) async {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
itemTags = suggestion['name'];
|
itemTags = suggestion['name'];
|
||||||
@ -718,6 +725,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
labelText: 'Search by geographical zone',
|
labelText: 'Search by geographical zone',
|
||||||
onChanged: (value) async {
|
onChanged: (value) async {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
|
|
||||||
if (value.isNotEmpty) {
|
if (value.isNotEmpty) {
|
||||||
setState(() {
|
setState(() {
|
||||||
@ -741,7 +749,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
},
|
},
|
||||||
onClear: () async {
|
onClear: () async {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
final prefs = await SharedPreferences.getInstance();
|
final prefs = await SharedPreferences.getInstance();
|
||||||
prefs.remove("city_lat");
|
prefs.remove("city_lat");
|
||||||
prefs.remove("city_long");
|
prefs.remove("city_long");
|
||||||
@ -758,6 +766,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
|||||||
suggestions: suggestionsGeo,
|
suggestions: suggestionsGeo,
|
||||||
onSuggestionTap: (suggestion) async {
|
onSuggestionTap: (suggestion) async {
|
||||||
_fetchCount = 0;
|
_fetchCount = 0;
|
||||||
|
_last = false;
|
||||||
|
|
||||||
final latitude = suggestion['geometry']['coordinates'][1];
|
final latitude = suggestion['geometry']['coordinates'][1];
|
||||||
final longitude = suggestion['geometry']['coordinates'][0];
|
final longitude = suggestion['geometry']['coordinates'][0];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user