D1APP-104 new models updates for bookmarks -_-+--
This commit is contained in:
parent
05e15b55c4
commit
f68b7973e6
|
|
@ -1,26 +0,0 @@
|
||||||
class OverviewData {
|
|
||||||
final int id;
|
|
||||||
final String title;
|
|
||||||
final String image;
|
|
||||||
final String description;
|
|
||||||
final String createdAt;
|
|
||||||
final String? type;
|
|
||||||
|
|
||||||
const OverviewData({
|
|
||||||
required this.id,
|
|
||||||
required this.title,
|
|
||||||
required this.image,
|
|
||||||
required this.description,
|
|
||||||
required this.createdAt,
|
|
||||||
required this.type,
|
|
||||||
});
|
|
||||||
|
|
||||||
factory OverviewData.fromJson(Map<String, dynamic> json) => OverviewData(
|
|
||||||
id: json['id'],
|
|
||||||
title: json['title'],
|
|
||||||
image: json['image'],
|
|
||||||
description: json['description'],
|
|
||||||
createdAt: json['createdAt'],
|
|
||||||
type: json['type'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:didvan/models/content.dart';
|
import 'package:didvan/models/content.dart';
|
||||||
import 'package:didvan/models/item_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/tag.dart';
|
import 'package:didvan/models/tag.dart';
|
||||||
|
|
||||||
class NewsDetailsData {
|
class NewsDetailsData {
|
||||||
|
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
import 'package:didvan/models/item_overview.dart';
|
|
||||||
|
|
||||||
class NewsOverviewData extends OverviewData {
|
|
||||||
final String reference;
|
|
||||||
bool marked;
|
|
||||||
|
|
||||||
NewsOverviewData({
|
|
||||||
required this.reference,
|
|
||||||
required this.marked,
|
|
||||||
required id,
|
|
||||||
required createdAt,
|
|
||||||
required description,
|
|
||||||
required title,
|
|
||||||
required image,
|
|
||||||
}) : super(
|
|
||||||
createdAt: createdAt,
|
|
||||||
description: description,
|
|
||||||
id: id,
|
|
||||||
image: image,
|
|
||||||
title: title,
|
|
||||||
type: 'news',
|
|
||||||
);
|
|
||||||
|
|
||||||
factory NewsOverviewData.fromJson(Map<String, dynamic> json) =>
|
|
||||||
NewsOverviewData(
|
|
||||||
id: json['id'],
|
|
||||||
title: json['title'],
|
|
||||||
reference: json['reference'],
|
|
||||||
description: json['description'],
|
|
||||||
image: json['image'],
|
|
||||||
createdAt: json['createdAt'],
|
|
||||||
marked: json['marked'] ?? true,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
import 'package:didvan/models/category.dart';
|
||||||
|
|
||||||
|
class OverviewData {
|
||||||
|
final int id;
|
||||||
|
final String title;
|
||||||
|
final String image;
|
||||||
|
final String description;
|
||||||
|
final int? timeToRead;
|
||||||
|
final String? reference;
|
||||||
|
final bool forManagers;
|
||||||
|
final String createdAt;
|
||||||
|
final String type;
|
||||||
|
int comments;
|
||||||
|
bool marked;
|
||||||
|
final List<CategoryData>? categories;
|
||||||
|
|
||||||
|
OverviewData({
|
||||||
|
required this.id,
|
||||||
|
required this.title,
|
||||||
|
required this.image,
|
||||||
|
required this.description,
|
||||||
|
required this.createdAt,
|
||||||
|
required this.type,
|
||||||
|
required this.marked,
|
||||||
|
required this.comments,
|
||||||
|
required this.forManagers,
|
||||||
|
this.timeToRead,
|
||||||
|
this.reference,
|
||||||
|
this.categories,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory OverviewData.fromJson(Map<String, dynamic> json) => OverviewData(
|
||||||
|
id: json['id'],
|
||||||
|
title: json['title'],
|
||||||
|
image: json['image'],
|
||||||
|
description: json['description'],
|
||||||
|
timeToRead: json['timeToRead'],
|
||||||
|
reference: json['reference'],
|
||||||
|
forManagers: json['forManagers'] ?? false,
|
||||||
|
comments: json['comments'] ?? 0,
|
||||||
|
createdAt: json['createdAt'],
|
||||||
|
type: json['type'] ?? '',
|
||||||
|
marked: json['marked'] ?? false,
|
||||||
|
categories: (json['categories'] as List<dynamic>?)
|
||||||
|
?.map((e) => CategoryData.fromJson(e as Map<String, dynamic>))
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => {
|
||||||
|
'id': id,
|
||||||
|
'title': title,
|
||||||
|
'image': image,
|
||||||
|
'description': description,
|
||||||
|
'timeToRead': timeToRead,
|
||||||
|
'reference': reference,
|
||||||
|
'forManagers': forManagers,
|
||||||
|
'createdAt': createdAt,
|
||||||
|
'type': type,
|
||||||
|
'categories': categories?.map((e) => e.toJson()).toList(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:didvan/models/category.dart';
|
import 'package:didvan/models/category.dart';
|
||||||
import 'package:didvan/models/item_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
|
|
||||||
import 'content.dart';
|
import 'content.dart';
|
||||||
import 'tag.dart';
|
import 'tag.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
import 'package:didvan/models/item_overview.dart';
|
|
||||||
|
|
||||||
import 'category.dart';
|
|
||||||
|
|
||||||
class RadarOverviewData extends OverviewData {
|
|
||||||
final bool forManagers;
|
|
||||||
final List<CategoryData> categories;
|
|
||||||
final int timeToRead;
|
|
||||||
int comments;
|
|
||||||
bool marked;
|
|
||||||
|
|
||||||
RadarOverviewData({
|
|
||||||
required this.forManagers,
|
|
||||||
required this.categories,
|
|
||||||
required this.comments,
|
|
||||||
required this.timeToRead,
|
|
||||||
required this.marked,
|
|
||||||
required createdAt,
|
|
||||||
required description,
|
|
||||||
required id,
|
|
||||||
required image,
|
|
||||||
required title,
|
|
||||||
}) : super(
|
|
||||||
createdAt: createdAt,
|
|
||||||
description: description,
|
|
||||||
id: id,
|
|
||||||
image: image,
|
|
||||||
title: title,
|
|
||||||
type: 'radar',
|
|
||||||
);
|
|
||||||
|
|
||||||
factory RadarOverviewData.fromJson(Map<String, dynamic> json) =>
|
|
||||||
RadarOverviewData(
|
|
||||||
id: json['id'],
|
|
||||||
image: json['image'],
|
|
||||||
title: json['title'],
|
|
||||||
description: json['description'],
|
|
||||||
timeToRead: json['timeToRead'],
|
|
||||||
createdAt: json['createdAt'],
|
|
||||||
forManagers: json['forManagers'],
|
|
||||||
marked: json['marked'],
|
|
||||||
comments: json['comments'],
|
|
||||||
categories: List<CategoryData>.from(
|
|
||||||
json['categories'].map(
|
|
||||||
(category) => CategoryData.fromJson(category),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
import 'package:didvan/models/tag.dart';
|
||||||
|
import 'package:didvan/models/view/app_bar_data.dart';
|
||||||
|
import 'package:didvan/widgets/didvan/scaffold.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class Hashtag extends StatefulWidget {
|
||||||
|
final Tag tag;
|
||||||
|
const Hashtag({Key? key, required this.tag}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_HashtagState createState() => _HashtagState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _HashtagState extends State<Hashtag> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return DidvanScaffold(
|
||||||
|
appBarData: AppBarData(title: widget.tag.label, hasBack: true),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
import 'package:didvan/models/enums.dart';
|
||||||
|
import 'package:didvan/providers/core_provider.dart';
|
||||||
|
import 'package:didvan/services/network/request.dart';
|
||||||
|
import 'package:didvan/services/network/request_helper.dart';
|
||||||
|
|
||||||
|
class HashtagState extends CoreProvier {
|
||||||
|
late final int id;
|
||||||
|
int page = 1;
|
||||||
|
|
||||||
|
Future<void> getTagItems({required int page}) async {
|
||||||
|
appState = AppState.busy;
|
||||||
|
final service = RequestService(RequestHelper.tag(
|
||||||
|
ids: [id],
|
||||||
|
limit: 15,
|
||||||
|
page: page,
|
||||||
|
));
|
||||||
|
await service.httpGet();
|
||||||
|
if (service.isSuccess) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,8 +2,8 @@ import 'dart:async';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/item_overview.dart';
|
|
||||||
import 'package:didvan/models/news_details_data.dart';
|
import 'package:didvan/models/news_details_data.dart';
|
||||||
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/requests/news.dart';
|
import 'package:didvan/models/requests/news.dart';
|
||||||
import 'package:didvan/providers/core_provider.dart';
|
import 'package:didvan/providers/core_provider.dart';
|
||||||
import 'package:didvan/services/network/request.dart';
|
import 'package:didvan/services/network/request.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/news_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/requests/news.dart';
|
import 'package:didvan/models/requests/news.dart';
|
||||||
import 'package:didvan/providers/core_provider.dart';
|
import 'package:didvan/providers/core_provider.dart';
|
||||||
import 'package:didvan/providers/user_provider.dart';
|
import 'package:didvan/providers/user_provider.dart';
|
||||||
|
|
@ -14,7 +14,7 @@ class NewsState extends CoreProvier {
|
||||||
int page = 1;
|
int page = 1;
|
||||||
int lastPage = 0;
|
int lastPage = 0;
|
||||||
|
|
||||||
final List<NewsOverviewData> news = [];
|
final List<OverviewData> news = [];
|
||||||
|
|
||||||
void init() {
|
void init() {
|
||||||
search = '';
|
search = '';
|
||||||
|
|
@ -61,7 +61,7 @@ class NewsState extends CoreProvier {
|
||||||
lastPage = service.result['lastPage'];
|
lastPage = service.result['lastPage'];
|
||||||
final newsList = service.result['news'];
|
final newsList = service.result['news'];
|
||||||
for (var i = 0; i < newsList.length; i++) {
|
for (var i = 0; i < newsList.length; i++) {
|
||||||
news.add(NewsOverviewData.fromJson(newsList[i]));
|
news.add(OverviewData.fromJson(newsList[i]));
|
||||||
}
|
}
|
||||||
appState = AppState.idle;
|
appState = AppState.idle;
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,13 @@ import 'dart:async';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/item_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/radar_details_data.dart';
|
import 'package:didvan/models/radar_details_data.dart';
|
||||||
import 'package:didvan/models/requests/radar.dart';
|
import 'package:didvan/models/requests/radar.dart';
|
||||||
import 'package:didvan/providers/core_provider.dart';
|
import 'package:didvan/providers/core_provider.dart';
|
||||||
import 'package:didvan/services/network/request.dart';
|
import 'package:didvan/services/network/request.dart';
|
||||||
import 'package:didvan/services/network/request_helper.dart';
|
import 'package:didvan/services/network/request_helper.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class RadarDetailsState extends CoreProvier {
|
class RadarDetailsState extends CoreProvier {
|
||||||
final List<RadarDetailsData?> radars = [];
|
final List<RadarDetailsData?> radars = [];
|
||||||
|
|
@ -41,6 +42,7 @@ class RadarDetailsState extends CoreProvier {
|
||||||
_handleTracking(sendRequest: isForward != null);
|
_handleTracking(sendRequest: isForward != null);
|
||||||
if (service.isSuccess) {
|
if (service.isSuccess) {
|
||||||
final result = service.result;
|
final result = service.result;
|
||||||
|
debugPrint(service.result.toString());
|
||||||
final radar = RadarDetailsData.fromJson(result['radar']);
|
final radar = RadarDetailsData.fromJson(result['radar']);
|
||||||
if (args.page == 0) {
|
if (args.page == 0) {
|
||||||
radars.add(radar);
|
radars.add(radar);
|
||||||
|
|
@ -96,7 +98,7 @@ class RadarDetailsState extends CoreProvier {
|
||||||
final service = RequestService(RequestHelper.tag(
|
final service = RequestService(RequestHelper.tag(
|
||||||
ids: currentRadar.tags.map((tag) => tag.id).toList(),
|
ids: currentRadar.tags.map((tag) => tag.id).toList(),
|
||||||
itemId: currentRadar.id,
|
itemId: currentRadar.id,
|
||||||
type: 'news',
|
type: 'radar',
|
||||||
));
|
));
|
||||||
await service.httpGet();
|
await service.httpGet();
|
||||||
if (service.isSuccess) {
|
if (service.isSuccess) {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:didvan/constants/assets.dart';
|
import 'package:didvan/constants/assets.dart';
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/requests/radar.dart';
|
import 'package:didvan/models/requests/radar.dart';
|
||||||
import 'package:didvan/models/view/radar_category.dart';
|
import 'package:didvan/models/view/radar_category.dart';
|
||||||
import 'package:didvan/models/radar_overview.dart';
|
|
||||||
import 'package:didvan/providers/core_provider.dart';
|
import 'package:didvan/providers/core_provider.dart';
|
||||||
import 'package:didvan/providers/user_provider.dart';
|
import 'package:didvan/providers/user_provider.dart';
|
||||||
import 'package:didvan/services/network/request.dart';
|
import 'package:didvan/services/network/request.dart';
|
||||||
|
|
@ -19,7 +19,7 @@ class RadarState extends CoreProvier {
|
||||||
bool shouldColapse = false;
|
bool shouldColapse = false;
|
||||||
final List<RadarCategory> selectedCats = [];
|
final List<RadarCategory> selectedCats = [];
|
||||||
List<RadarCategory> categories = [];
|
List<RadarCategory> categories = [];
|
||||||
final List<RadarOverviewData> radars = [];
|
final List<OverviewData> radars = [];
|
||||||
|
|
||||||
bool get filtering =>
|
bool get filtering =>
|
||||||
selectedCats.length > 1 || startDate != null || endDate != null;
|
selectedCats.length > 1 || startDate != null || endDate != null;
|
||||||
|
|
@ -70,7 +70,7 @@ class RadarState extends CoreProvier {
|
||||||
lastPage = service.result['lastPage'];
|
lastPage = service.result['lastPage'];
|
||||||
final radarsList = service.result['radars'];
|
final radarsList = service.result['radars'];
|
||||||
for (var i = 0; i < radarsList.length; i++) {
|
for (var i = 0; i < radarsList.length; i++) {
|
||||||
radars.add(RadarOverviewData.fromJson(radarsList[i]));
|
radars.add(OverviewData.fromJson(radarsList[i]));
|
||||||
}
|
}
|
||||||
if (searching || filtering || isColapsed || isCategorySelected) {
|
if (searching || filtering || isColapsed || isCategorySelected) {
|
||||||
shouldColapse = true;
|
shouldColapse = true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/item_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/providers/core_provider.dart';
|
import 'package:didvan/providers/core_provider.dart';
|
||||||
import 'package:didvan/providers/user_provider.dart';
|
import 'package:didvan/providers/user_provider.dart';
|
||||||
import 'package:didvan/services/network/request.dart';
|
import 'package:didvan/services/network/request.dart';
|
||||||
|
|
@ -36,7 +36,7 @@ class BookmarksState extends CoreProvier {
|
||||||
if (value) return;
|
if (value) return;
|
||||||
final type = bookmarks.firstWhere((element) => element.id == id).type;
|
final type = bookmarks.firstWhere((element) => element.id == id).type;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'radars':
|
case 'radar':
|
||||||
UserProvider.changeRadarMark(id, value);
|
UserProvider.changeRadarMark(id, value);
|
||||||
break;
|
break;
|
||||||
case 'news':
|
case 'news':
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ class _BookmarksState extends State<Bookmarks> {
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
MenuItem(
|
MenuItem(
|
||||||
onTap: () => _onCategorySelected('radars'),
|
onTap: () => _onCategorySelected('radar'),
|
||||||
title: 'تحلیلهای رادار',
|
title: 'تحلیلهای رادار',
|
||||||
icon: DidvanIcons.radar_regular,
|
icon: DidvanIcons.radar_regular,
|
||||||
iconSize: 24,
|
iconSize: 24,
|
||||||
|
|
@ -122,7 +122,7 @@ class _BookmarksState extends State<Bookmarks> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onCategorySelected(String type) {
|
void _onCategorySelected(String type) {
|
||||||
if (type != 'radars' && type != 'news') return;
|
if (type != 'radar' && type != 'news') return;
|
||||||
FocusScope.of(context).unfocus();
|
FocusScope.of(context).unfocus();
|
||||||
Navigator.of(context).pushNamed(Routes.filteredBookmarks, arguments: type);
|
Navigator.of(context).pushNamed(Routes.filteredBookmarks, arguments: type);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
import 'package:didvan/models/news_overview.dart';
|
|
||||||
import 'package:didvan/models/radar_overview.dart';
|
|
||||||
import 'package:didvan/models/view/app_bar_data.dart';
|
import 'package:didvan/models/view/app_bar_data.dart';
|
||||||
import 'package:didvan/pages/home/settings/bookmarks/filtered_bookmark/filtered_bookmarks_state.dart';
|
import 'package:didvan/pages/home/settings/bookmarks/filtered_bookmark/filtered_bookmarks_state.dart';
|
||||||
import 'package:didvan/pages/home/widgets/news_overview.dart';
|
import 'package:didvan/pages/home/widgets/news_overview.dart';
|
||||||
|
|
@ -29,13 +27,13 @@ class _FilteredBookmarksState extends State<FilteredBookmarks> {
|
||||||
|
|
||||||
String get _appBarTitle {
|
String get _appBarTitle {
|
||||||
switch (context.read<FilteredBookmarksState>().type) {
|
switch (context.read<FilteredBookmarksState>().type) {
|
||||||
case 'radars':
|
case 'radar':
|
||||||
return 'تحلیلهای رادار';
|
return 'تحلیلهای رادار';
|
||||||
case 'news':
|
case 'news':
|
||||||
return 'اخبار';
|
return 'اخبار';
|
||||||
case 'videos':
|
case 'video':
|
||||||
return 'ویدئوها';
|
return 'ویدئوها';
|
||||||
case 'podcasts':
|
case 'podcast':
|
||||||
return 'پادکستها';
|
return 'پادکستها';
|
||||||
default:
|
default:
|
||||||
return 'پادکستها';
|
return 'پادکستها';
|
||||||
|
|
@ -56,16 +54,16 @@ class _FilteredBookmarksState extends State<FilteredBookmarks> {
|
||||||
placeholder: RadarOverview.placeholder,
|
placeholder: RadarOverview.placeholder,
|
||||||
emptyState: const EmptyList(),
|
emptyState: const EmptyList(),
|
||||||
builder: (context, state, index) {
|
builder: (context, state, index) {
|
||||||
if (state.type == 'radars') {
|
if (state.type == 'radar') {
|
||||||
return RadarOverview(
|
return RadarOverview(
|
||||||
radar: state.bookmarks[index] as RadarOverviewData,
|
radar: state.bookmarks[index],
|
||||||
onMarkChanged: _onBookmarkChanged,
|
onMarkChanged: _onBookmarkChanged,
|
||||||
onCommentsChanged: state.onCommentsChanged,
|
onCommentsChanged: state.onCommentsChanged,
|
||||||
hasUnmarkConfirmation: true,
|
hasUnmarkConfirmation: true,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return NewsOverview(
|
return NewsOverview(
|
||||||
news: state.bookmarks[index] as NewsOverviewData,
|
news: state.bookmarks[index],
|
||||||
onMarkChanged: _onBookmarkChanged,
|
onMarkChanged: _onBookmarkChanged,
|
||||||
hasUnmarkConfirmation: true,
|
hasUnmarkConfirmation: true,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/item_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/news_overview.dart';
|
|
||||||
import 'package:didvan/models/radar_overview.dart';
|
|
||||||
import 'package:didvan/providers/core_provider.dart';
|
import 'package:didvan/providers/core_provider.dart';
|
||||||
import 'package:didvan/providers/user_provider.dart';
|
import 'package:didvan/providers/user_provider.dart';
|
||||||
import 'package:didvan/services/network/request.dart';
|
import 'package:didvan/services/network/request.dart';
|
||||||
|
|
@ -29,12 +27,7 @@ class FilteredBookmarksState extends CoreProvier {
|
||||||
final marks = service.result[type];
|
final marks = service.result[type];
|
||||||
bookmarks.clear();
|
bookmarks.clear();
|
||||||
for (var i = 0; i < marks.length; i++) {
|
for (var i = 0; i < marks.length; i++) {
|
||||||
if (type == 'radars') {
|
bookmarks.add(OverviewData.fromJson(marks[i]));
|
||||||
bookmarks.add(RadarOverviewData.fromJson(marks[i]));
|
|
||||||
}
|
|
||||||
if (type == 'news') {
|
|
||||||
bookmarks.add(NewsOverviewData.fromJson(marks[i]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
appState = AppState.idle;
|
appState = AppState.idle;
|
||||||
return;
|
return;
|
||||||
|
|
@ -44,7 +37,7 @@ class FilteredBookmarksState extends CoreProvier {
|
||||||
|
|
||||||
void onMarkChanged(int id, bool value) {
|
void onMarkChanged(int id, bool value) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'radars':
|
case 'radar':
|
||||||
UserProvider.changeRadarMark(id, value);
|
UserProvider.changeRadarMark(id, value);
|
||||||
break;
|
break;
|
||||||
case 'news':
|
case 'news':
|
||||||
|
|
@ -57,8 +50,7 @@ class FilteredBookmarksState extends CoreProvier {
|
||||||
}
|
}
|
||||||
|
|
||||||
void onCommentsChanged(int id, int value) {
|
void onCommentsChanged(int id, int value) {
|
||||||
(bookmarks.firstWhere((radar) => radar.id == id) as RadarOverviewData)
|
bookmarks.firstWhere((radar) => radar.id == id).comments = value;
|
||||||
.comments = value;
|
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:didvan/config/theme_data.dart';
|
import 'package:didvan/config/theme_data.dart';
|
||||||
import 'package:didvan/constants/app_icons.dart';
|
import 'package:didvan/constants/app_icons.dart';
|
||||||
import 'package:didvan/models/item_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/requests/news.dart';
|
import 'package:didvan/models/requests/news.dart';
|
||||||
import 'package:didvan/models/requests/radar.dart';
|
import 'package:didvan/models/requests/radar.dart';
|
||||||
import 'package:didvan/routes/routes.dart';
|
import 'package:didvan/routes/routes.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import 'package:didvan/models/news_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/requests/news.dart';
|
import 'package:didvan/models/requests/news.dart';
|
||||||
import 'package:didvan/routes/routes.dart';
|
import 'package:didvan/routes/routes.dart';
|
||||||
import 'package:didvan/utils/date_time.dart';
|
import 'package:didvan/utils/date_time.dart';
|
||||||
|
|
@ -11,7 +11,7 @@ import 'package:didvan/widgets/skeleton_image.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class NewsOverview extends StatelessWidget {
|
class NewsOverview extends StatelessWidget {
|
||||||
final NewsOverviewData news;
|
final OverviewData news;
|
||||||
final NewsRequestArgs? newsRequestArgs;
|
final NewsRequestArgs? newsRequestArgs;
|
||||||
final void Function(int id, bool value) onMarkChanged;
|
final void Function(int id, bool value) onMarkChanged;
|
||||||
final bool hasUnmarkConfirmation;
|
final bool hasUnmarkConfirmation;
|
||||||
|
|
@ -69,7 +69,7 @@ class NewsOverview extends StatelessWidget {
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
DidvanText(
|
DidvanText(
|
||||||
news.reference,
|
news.reference!,
|
||||||
style: Theme.of(context).textTheme.caption,
|
style: Theme.of(context).textTheme.caption,
|
||||||
),
|
),
|
||||||
DidvanText(
|
DidvanText(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:didvan/config/theme_data.dart';
|
import 'package:didvan/config/theme_data.dart';
|
||||||
import 'package:didvan/constants/app_icons.dart';
|
import 'package:didvan/constants/app_icons.dart';
|
||||||
import 'package:didvan/models/radar_overview.dart';
|
import 'package:didvan/models/overview_data.dart';
|
||||||
import 'package:didvan/models/requests/radar.dart';
|
import 'package:didvan/models/requests/radar.dart';
|
||||||
import 'package:didvan/routes/routes.dart';
|
import 'package:didvan/routes/routes.dart';
|
||||||
import 'package:didvan/utils/date_time.dart';
|
import 'package:didvan/utils/date_time.dart';
|
||||||
|
|
@ -14,7 +14,7 @@ import 'package:didvan/widgets/skeleton_image.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class RadarOverview extends StatelessWidget {
|
class RadarOverview extends StatelessWidget {
|
||||||
final RadarOverviewData radar;
|
final OverviewData radar;
|
||||||
final void Function(int id, int count) onCommentsChanged;
|
final void Function(int id, int count) onCommentsChanged;
|
||||||
final void Function(int id, bool value) onMarkChanged;
|
final void Function(int id, bool value) onMarkChanged;
|
||||||
final bool hasUnmarkConfirmation;
|
final bool hasUnmarkConfirmation;
|
||||||
|
|
@ -81,7 +81,7 @@ class RadarOverview extends StatelessWidget {
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
DidvanText(
|
DidvanText(
|
||||||
radar.categories.first.label,
|
radar.categories!.first.label,
|
||||||
style: Theme.of(context).textTheme.overline,
|
style: Theme.of(context).textTheme.overline,
|
||||||
color: Theme.of(context).colorScheme.caption,
|
color: Theme.of(context).colorScheme.caption,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -24,13 +24,15 @@ class RequestHelper {
|
||||||
_baseDirectUrl + '/$id/sendMessage';
|
_baseDirectUrl + '/$id/sendMessage';
|
||||||
static String tag({
|
static String tag({
|
||||||
required List<int> ids,
|
required List<int> ids,
|
||||||
required String type,
|
String? type,
|
||||||
required int itemId,
|
int? itemId,
|
||||||
|
int? page,
|
||||||
|
int? limit,
|
||||||
}) =>
|
}) =>
|
||||||
baseUrl +
|
baseUrl +
|
||||||
'/tag' +
|
'/tag' +
|
||||||
_urlConcatGenerator([
|
_urlConcatGenerator([
|
||||||
const MapEntry('limit', '3'),
|
MapEntry('limit', limit?.toString() ?? '3'),
|
||||||
MapEntry('type', type),
|
MapEntry('type', type),
|
||||||
MapEntry('id', itemId.toString()),
|
MapEntry('id', itemId.toString()),
|
||||||
MapEntry('tags', _urlListConcatGenerator(ids))
|
MapEntry('tags', _urlListConcatGenerator(ids))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue