| 
									
										
										
										
											2023-01-21 23:58:14 +01:00
										 |  |  | import MangroveReviewsOfFeature, { MangroveIdentity } from "./Logic/Web/MangroveReviews" | 
					
						
							|  |  |  | import { Feature, Point } from "geojson" | 
					
						
							|  |  |  | import { OsmTags } from "./Models/OsmFeature" | 
					
						
							| 
									
										
										
										
											2022-11-02 14:44:06 +01:00
										 |  |  | import { VariableUiElement } from "./UI/Base/VariableUIElement" | 
					
						
							| 
									
										
										
										
											2023-01-21 23:58:14 +01:00
										 |  |  | import List from "./UI/Base/List" | 
					
						
							|  |  |  | import { UIEventSource } from "./Logic/UIEventSource" | 
					
						
							|  |  |  | import UserRelatedState from "./Logic/State/UserRelatedState" | 
					
						
							| 
									
										
										
										
											2022-10-29 03:05:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-21 23:58:14 +01:00
										 |  |  | const feature: Feature<Point, OsmTags> = { | 
					
						
							|  |  |  |     type: "Feature", | 
					
						
							|  |  |  |     id: "node/6739848322", | 
					
						
							|  |  |  |     properties: { | 
					
						
							|  |  |  |         "addr:city": "San Diego", | 
					
						
							|  |  |  |         "addr:housenumber": "2816", | 
					
						
							|  |  |  |         "addr:postcode": "92106", | 
					
						
							|  |  |  |         "addr:street": "Historic Decatur Road", | 
					
						
							|  |  |  |         "addr:unit": "116", | 
					
						
							|  |  |  |         amenity: "restaurant", | 
					
						
							|  |  |  |         cuisine: "burger", | 
					
						
							|  |  |  |         delivery: "yes", | 
					
						
							|  |  |  |         "diet:halal": "no", | 
					
						
							|  |  |  |         "diet:vegetarian": "yes", | 
					
						
							|  |  |  |         dog: "yes", | 
					
						
							|  |  |  |         image: "https://i.imgur.com/AQlGNHQ.jpg", | 
					
						
							|  |  |  |         internet_access: "wlan", | 
					
						
							|  |  |  |         "internet_access:fee": "no", | 
					
						
							|  |  |  |         "internet_access:ssid": "Public-stinebrewingCo", | 
					
						
							|  |  |  |         microbrewery: "yes", | 
					
						
							|  |  |  |         name: "Stone Brewing World Bistro & Gardens", | 
					
						
							|  |  |  |         opening_hours: "Mo-Fr, Su 11:30-21:00; Sa 11:30-22:00", | 
					
						
							|  |  |  |         organic: "no", | 
					
						
							|  |  |  |         "payment:cards": "yes", | 
					
						
							|  |  |  |         "payment:cash": "yes", | 
					
						
							|  |  |  |         "service:electricity": "ask", | 
					
						
							|  |  |  |         takeaway: "yes", | 
					
						
							|  |  |  |         website: "https://www.stonebrewing.com/visit/bistros/liberty-station", | 
					
						
							|  |  |  |         wheelchair: "designated", | 
					
						
							|  |  |  |         "_last_edit:contributor": "Drew Dowling", | 
					
						
							|  |  |  |         "_last_edit:timestamp": "2023-01-11T23:22:28Z", | 
					
						
							|  |  |  |         id: "node/6739848322", | 
					
						
							|  |  |  |         timestamp: "2023-01-11T23:22:28Z", | 
					
						
							|  |  |  |         user: "Drew Dowling", | 
					
						
							|  |  |  |         _backend: "https://www.openstreetmap.org", | 
					
						
							|  |  |  |         _lat: "32.7404614", | 
					
						
							|  |  |  |         _lon: "-117.211684", | 
					
						
							|  |  |  |         _layer: "food", | 
					
						
							|  |  |  |         _length: "0", | 
					
						
							|  |  |  |         "_length:km": "0.0", | 
					
						
							|  |  |  |         "_now:date": "2023-01-20", | 
					
						
							|  |  |  |         "_now:datetime": "2023-01-20 17:46:54", | 
					
						
							|  |  |  |         "_loaded:date": "2023-01-20", | 
					
						
							|  |  |  |         "_loaded:datetime": "2023-01-20 17:46:54", | 
					
						
							|  |  |  |         "_geometry:type": "Point", | 
					
						
							|  |  |  |         _surface: "0", | 
					
						
							|  |  |  |         "_surface:ha": "0", | 
					
						
							|  |  |  |         _country: "us", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     geometry: { | 
					
						
							|  |  |  |         type: "Point", | 
					
						
							|  |  |  |         coordinates: [0, 0], | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | const state = new UserRelatedState(undefined) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | state.allElements.addOrGetElement(feature) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const reviews = MangroveReviewsOfFeature.construct(feature, state) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | reviews.reviews.addCallbackAndRun((r) => { | 
					
						
							|  |  |  |     console.log("Reviews are:", r) | 
					
						
							| 
									
										
										
										
											2022-10-29 03:05:29 +02:00
										 |  |  | }) | 
					
						
							| 
									
										
										
										
											2023-01-21 23:58:14 +01:00
										 |  |  | window.setTimeout(async () => { | 
					
						
							|  |  |  |     await reviews.createReview({ | 
					
						
							|  |  |  |         opinion: "Cool bar", | 
					
						
							|  |  |  |         rating: 90, | 
					
						
							|  |  |  |         metadata: { | 
					
						
							|  |  |  |             nickname: "Pietervdvn", | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |     console.log("Submitted review") | 
					
						
							|  |  |  | }, 1000) | 
					
						
							| 
									
										
										
										
											2022-10-29 03:05:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-21 23:58:14 +01:00
										 |  |  | new VariableUiElement( | 
					
						
							|  |  |  |     reviews.reviews.map( | 
					
						
							|  |  |  |         (reviews) => | 
					
						
							|  |  |  |             new List( | 
					
						
							|  |  |  |                 reviews.map((r) => r.rating + "% " + r.opinion + " (" + r.metadata.nickname + ")") | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | ).AttachTo("maindiv") |