Skip to content
This repository was archived by the owner on Jul 24, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions frontend/ui/lib/widgets/place_block_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,29 @@ import 'package:flutter/material.dart';
import 'package:tripmeout/model/place.dart';
import 'package:tripmeout/model/place_visit.dart';
import 'package:tripmeout/widgets/place_details_widget.dart';
import 'package:tripmeout/widgets/user_status_widget.dart';
import 'package:tripmeout/widgets/trip_view_user_status_widget.dart';
import 'package:tripmeout/widgets/recommended_user_status_widget.dart';
import 'package:tripmeout/services/place_visit_service.dart';

class PlaceBlockWidget extends StatefulWidget {
final PlaceVisit placeVisit;
final PlaceVisitService placeVisitService;
final PlaceWrapper details;
final bool showTripViewUserStatus;

PlaceBlockWidget(this.placeVisitService, this.placeVisit, this.details);
PlaceBlockWidget(this.placeVisitService, this.placeVisit, this.details, this.showTripViewUserStatus);

@override
State createState() =>
_PlaceBlockWidgetState(placeVisit, placeVisitService, details);
_PlaceBlockWidgetState(placeVisit, placeVisitService, details, showTripViewUserStatus);
}

class _PlaceBlockWidgetState extends State<PlaceBlockWidget> {
final PlaceVisit placeVisit;
final PlaceVisitService placeVisitService;
final PlaceWrapper details;
_PlaceBlockWidgetState(this.placeVisit, this.placeVisitService, this.details);
final bool showTripViewUserStatus;
_PlaceBlockWidgetState(this.placeVisit, this.placeVisitService, this.details, this.showTripViewUserStatus);

@override
Widget build(BuildContext context) {
Expand All @@ -30,7 +33,7 @@ class _PlaceBlockWidgetState extends State<PlaceBlockWidget> {
title: Text(placeVisit.name),
trailing: Container(
width: 100.0,
child: UserStatusWidget(placeVisitService, placeVisit),
child: showTripViewUserStatus ? UserStatusWidget(placeVisitService, placeVisit) : RecommendedUserStatusWidget(placeVisitService, placeVisit),
),
children: [PlaceDetailsWidget(details)]);
}
Expand Down
93 changes: 93 additions & 0 deletions frontend/ui/lib/widgets/recommended_user_status_widget.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
import 'package:flutter/material.dart';
import 'package:tripmeout/model/place_visit.dart';
import 'package:tripmeout/services/place_visit_service.dart';
import 'package:tripmeout/widgets/alert_banner_widget.dart';
import 'package:tripmeout/router/router.dart';

class RecommendedUserStatusWidget extends StatefulWidget {
PlaceVisitService placeVisitService;
PlaceVisit placeVisit;

RecommendedUserStatusWidget(this.placeVisitService, this.placeVisit);

@override
_RecommendedUserStatusState createState() =>
_RecommendedUserStatusState(this.placeVisitService, this.placeVisit);
}

class _RecommendedUserStatusState extends State<RecommendedUserStatusWidget> {

PlaceVisitService placeVisitService;
PlaceVisit placeVisit;
PlaceVisit _placeVisit;

_RecommendedUserStatusState(this.placeVisitService, this.placeVisit)
: _placeVisit = placeVisit;

bool _must_selected = false;
bool _maybe_selected = false;
Icon _must_icon = Icon(Icons.favorite_border);
Icon _maybe_icon = Icon(Icons.bookmark_border);
Color _must_color = Colors.black;
Color _maybe_color = Colors.black;

@override
Widget build(BuildContext build) {
return Row(
children: [
IconButton(
icon: _must_icon,
onPressed: () {
setState(() async {
if (_must_selected == true) {
_must_selected = false;
_must_icon = Icon(Icons.favorite_border);
_must_color = Colors.black;
placeVisitService.deletePlaceVisit(_placeVisit.tripid, _placeVisit.id);
} else {
_must_selected = true;
_must_icon = Icon(Icons.favorite);
_must_color = Colors.pink;

_maybe_selected = false;
_maybe_icon = Icon(Icons.bookmark_border);
_maybe_color = Colors.black;
_placeVisit =
PlaceVisit.from(_placeVisit, userMark: UserMark.YES);
_placeVisit = await placeVisitService.updatePlaceVisitUserMark(_placeVisit);
}
});
},
color: _must_color,
tooltip: "Must Go",
),
IconButton(
icon: _maybe_icon,
onPressed: () {
setState(() async {
if (_maybe_selected == true) {
_maybe_selected = false;
_maybe_icon = Icon(Icons.bookmark_border);
_maybe_color = Colors.black;
placeVisitService.deletePlaceVisit(_placeVisit.tripid, _placeVisit.id);
} else {
_maybe_selected = true;
_maybe_icon = Icon(Icons.bookmark);
_maybe_color = Colors.red;

_must_selected = false;
_must_icon = Icon(Icons.favorite_border);
_must_color = Colors.black;
_placeVisit =
PlaceVisit.from(_placeVisit, userMark: UserMark.MAYBE);
_placeVisit = await placeVisitService.updatePlaceVisitUserMark(_placeVisit);
}
});
},
color: _maybe_color,
tooltip: "Save Place",
),
],
);
}
}
2 changes: 1 addition & 1 deletion frontend/ui/lib/widgets/recommended_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class RecommendedWidget extends StatelessWidget {
List<PlaceBlockWidget> placeBlocks = [];
for (int i = 0; i < placeWrappers.length; i++) {
placeBlocks.add(PlaceBlockWidget(
placeVisitService, placeVisits[i], placeWrappers[i]));
placeVisitService, placeVisits[i], placeWrappers[i], false));
}

return placeBlocks;
Expand Down
2 changes: 1 addition & 1 deletion frontend/ui/lib/widgets/trip_view_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class TripViewWidgetFromService extends StatelessWidget {
PlaceWrapper placeDetails =
await placesApiServices.getPlaceDetails(placeVisit.placesApiPlaceId);
placeBlockWidgets
.add(PlaceBlockWidget(placeVisitService, placeVisit, placeDetails));
.add(PlaceBlockWidget(placeVisitService, placeVisit, placeDetails, true));
}
return placeBlockWidgets;
}
Expand Down
21 changes: 14 additions & 7 deletions frontend/ui/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,21 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.1"
version: "2.4.2"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
charcode:
dependency: transitive
description:
Expand All @@ -35,7 +42,7 @@ packages:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.12"
version: "1.14.13"
convert:
dependency: transitive
description:
Expand Down Expand Up @@ -127,7 +134,7 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.6"
version: "0.12.8"
meta:
dependency: transitive
description:
Expand Down Expand Up @@ -195,7 +202,7 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
version: "1.9.5"
stream_channel:
dependency: transitive
description:
Expand Down Expand Up @@ -223,14 +230,14 @@ packages:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.16"
version: "0.2.17"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
version: "1.2.0"
url_launcher:
dependency: "direct main"
description:
Expand Down Expand Up @@ -281,5 +288,5 @@ packages:
source: hosted
version: "2.0.8"
sdks:
dart: ">=2.7.0 <3.0.0"
dart: ">=2.9.0-14.0.dev <3.0.0"
flutter: ">=1.12.13+hotfix.6 <2.0.0"