| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  | import {Review} from "../../Logic/Web/Review"; | 
					
						
							|  |  |  | import Combine from "../Base/Combine"; | 
					
						
							|  |  |  | import {FixedUiElement} from "../Base/FixedUiElement"; | 
					
						
							|  |  |  | import Translations from "../i18n/Translations"; | 
					
						
							|  |  |  | import {Utils} from "../../Utils"; | 
					
						
							| 
									
										
										
										
											2021-06-11 22:51:45 +02:00
										 |  |  | import BaseUIElement from "../BaseUIElement"; | 
					
						
							| 
									
										
										
										
											2021-06-21 12:59:52 +02:00
										 |  |  | import Img from "../Base/Img"; | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-28 00:45:49 +02:00
										 |  |  | export default class SingleReview extends Combine { | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  |     constructor(review: Review) { | 
					
						
							| 
									
										
										
										
											2021-06-28 00:45:49 +02:00
										 |  |  |         const d = review.date; | 
					
						
							|  |  |  |         super( | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  |             [ | 
					
						
							|  |  |  |                 new Combine([ | 
					
						
							| 
									
										
										
										
											2021-06-28 00:45:49 +02:00
										 |  |  |                     SingleReview.GenStars(review.rating) | 
					
						
							| 
									
										
										
										
											2021-03-13 19:07:38 +01:00
										 |  |  |                 ]), | 
					
						
							|  |  |  |                 new FixedUiElement(review.comment), | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  |                 new Combine([ | 
					
						
							|  |  |  |                     new Combine([ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-21 12:59:52 +02:00
										 |  |  |                         new FixedUiElement(review.author).SetClass("font-bold"), | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  |                         review.affiliated ? Translations.t.reviews.affiliated_reviewer_warning : "", | 
					
						
							|  |  |  |                     ]).SetStyle("margin-right: 0.5em"), | 
					
						
							|  |  |  |                     new FixedUiElement(`${d.getFullYear()}-${Utils.TwoDigits(d.getMonth() + 1)}-${Utils.TwoDigits(d.getDate())} ${Utils.TwoDigits(d.getHours())}:${Utils.TwoDigits(d.getMinutes())}`) | 
					
						
							| 
									
										
										
										
											2021-03-13 19:07:38 +01:00
										 |  |  |                         .SetClass("subtle-lighter") | 
					
						
							|  |  |  |                 ]).SetClass("flex mb-4 justify-end") | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |             ] | 
					
						
							|  |  |  |         ); | 
					
						
							| 
									
										
										
										
											2021-06-28 00:45:49 +02:00
										 |  |  |         this.SetClass("block p-2 m-4 rounded-xl subtle-background review-element"); | 
					
						
							|  |  |  |         if (review.made_by_user.data) { | 
					
						
							|  |  |  |             this.SetClass("border-attention-catch") | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-06-28 00:45:49 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public static GenStars(rating: number): BaseUIElement { | 
					
						
							|  |  |  |         if (rating === undefined) { | 
					
						
							|  |  |  |             return Translations.t.reviews.no_rating; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (rating < 10) { | 
					
						
							|  |  |  |             rating = 10; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         const scoreTen = Math.round(rating / 10); | 
					
						
							|  |  |  |         return new Combine([ | 
					
						
							|  |  |  |             ...Utils.TimesT(scoreTen / 2, _ => new Img('./assets/svg/star.svg').SetClass("'h-8 w-8 md:h-12")), | 
					
						
							|  |  |  |             scoreTen % 2 == 1 ? new Img('./assets/svg/star_half.svg').SetClass('h-8 w-8 md:h-12') : undefined | 
					
						
							|  |  |  |         ]).SetClass("flex w-max") | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-11 16:29:51 +01:00
										 |  |  | } |