ad toogle interested method
This commit is contained in:
@@ -423,7 +423,7 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
var url = await getUrlForEvents();
|
||||
final response = await http.get(url, headers: {
|
||||
"Content-Type": "application/json",
|
||||
HttpHeaders.cookieHeader: "acce0ss_token=$accessToken"
|
||||
HttpHeaders.cookieHeader: "access_token=$accessToken"
|
||||
});
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
@@ -469,6 +469,30 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> toogleInterested(String eventId) async {
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
var accessToken = prefs.getString("access_token") ?? "";
|
||||
final url = Uri.parse("${globals.api}/events/${eventId}/interest");
|
||||
if (accessToken.isNotEmpty) {
|
||||
final response = await http.post(
|
||||
url,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
HttpHeaders.cookieHeader: "access_token=$accessToken"
|
||||
},
|
||||
);
|
||||
|
||||
if (response.statusCode != 200) {
|
||||
throw (AppLocalizations.of(context)?.toogle_interest ??
|
||||
"Error toogle interest: ${response.statusCode}");
|
||||
}
|
||||
|
||||
Events? event = json.decode(response.body);
|
||||
return event?.interested ?? false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Future<void> fetchPostsByLocation() async {
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
var accessToken = prefs.getString("access_token") ?? "";
|
||||
@@ -876,15 +900,24 @@ class _MyHomePageState extends State<ListItemMenu> {
|
||||
subtitle: Text('${post.place!}\n${dateLongue}'),
|
||||
trailing: IconButton(
|
||||
onPressed: () async {
|
||||
setState(() {
|
||||
bool checkInterested = post?.interested ?? false;
|
||||
post?.interested = !checkInterested;
|
||||
});
|
||||
try {
|
||||
final result = await toogleInterested(post.id!);
|
||||
setState(() {
|
||||
post.interested = result;
|
||||
});
|
||||
} catch (e) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
AppLocalizations.of(context)?.error_update ??
|
||||
"Error when updating")),
|
||||
);
|
||||
}
|
||||
},
|
||||
icon: Icon(
|
||||
post?.interested ?? false ? Icons.star : Icons.star_border,
|
||||
post.interested ?? false ? Icons.star : Icons.star_border,
|
||||
color:
|
||||
post?.interested ?? false ? Colors.blue : Colors.grey)),
|
||||
post.interested ?? false ? Colors.blue : Colors.grey)),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
Reference in New Issue
Block a user