| 
									
										
										
										
											2023-04-07 02:13:57 +02:00
										 |  |  | <script lang="ts"> | 
					
						
							|  |  |  |   import UserDetails, { OsmConnection } from "../../Logic/Osm/OsmConnection"; | 
					
						
							|  |  |  |   import { UIEventSource } from "../../Logic/UIEventSource"; | 
					
						
							|  |  |  |   import { PencilAltIcon, UserCircleIcon } from "@rgossiaux/svelte-heroicons/solid"; | 
					
						
							|  |  |  |   import { onDestroy } from "svelte"; | 
					
						
							|  |  |  |   import Showdown from "showdown"; | 
					
						
							|  |  |  |   import FromHtml from "../Base/FromHtml.svelte"; | 
					
						
							|  |  |  |   import Tr from "../Base/Tr.svelte"; | 
					
						
							|  |  |  |   import Translations from "../i18n/Translations.js"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /** | 
					
						
							|  |  |  |    * This panel shows information about the logged-in user, showing account name, profile pick, description and an edit-button | 
					
						
							|  |  |  |    */ | 
					
						
							|  |  |  |   export let osmConnection: OsmConnection; | 
					
						
							|  |  |  |   let userdetails: UIEventSource<UserDetails> = osmConnection.userDetails; | 
					
						
							|  |  |  |   let description: string; | 
					
						
							|  |  |  |   onDestroy(userdetails.addCallbackAndRunD(userdetails => { | 
					
						
							|  |  |  |     description = new Showdown.Converter() | 
					
						
							|  |  |  |       .makeHtml(userdetails.description) | 
					
						
							|  |  |  |       ?.replace(/>/g, ">") | 
					
						
							|  |  |  |       ?.replace(/</g, "<"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   })); | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-14 03:24:13 +02:00
										 |  |  | <div class="flex border border-gray-600 border-dashed m-1 p-1 rounded-md link-underline"> | 
					
						
							| 
									
										
										
										
											2023-04-07 02:13:57 +02:00
										 |  |  |   {#if $userdetails.img} | 
					
						
							|  |  |  |     <img src={$userdetails.img} class="rounded-full w-12 h-12 m-4"> | 
					
						
							|  |  |  |   {:else} | 
					
						
							|  |  |  |     <UserCircleIcon class="w-12 h-12" /> | 
					
						
							|  |  |  |   {/if} | 
					
						
							| 
									
										
										
										
											2023-05-07 23:19:30 +02:00
										 |  |  |   <div class="flex flex-col"> | 
					
						
							| 
									
										
										
										
											2023-04-07 02:13:57 +02:00
										 |  |  |     <h3>{$userdetails.name}</h3> | 
					
						
							|  |  |  |     {#if description} | 
					
						
							| 
									
										
										
										
											2023-05-14 03:24:13 +02:00
										 |  |  |       <FromHtml src={description}/> | 
					
						
							|  |  |  |       <a href={osmConnection.Backend() + "/profile/edit"} target="_blank" class="link-no-underline flex items-center self-end"> | 
					
						
							| 
									
										
										
										
											2023-05-07 23:19:30 +02:00
										 |  |  |         <PencilAltIcon slot="image" class="p-2 w-8 h-8" /> | 
					
						
							|  |  |  |         <Tr slot="message" t={Translations.t.userinfo.editDescription} /> | 
					
						
							| 
									
										
										
										
											2023-04-07 02:13:57 +02:00
										 |  |  |       </a> | 
					
						
							| 
									
										
										
										
											2023-05-07 23:19:30 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-07 02:13:57 +02:00
										 |  |  |     {:else} | 
					
						
							|  |  |  |       <Tr t={Translations.t. userinfo.noDescription} /> | 
					
						
							| 
									
										
										
										
											2023-05-14 03:24:13 +02:00
										 |  |  |       <a href={osmConnection.Backend() + "/profile/edit"} target="_blank" class="flex items-center"> | 
					
						
							| 
									
										
										
										
											2023-04-07 02:13:57 +02:00
										 |  |  |         <PencilAltIcon slot="image" class="p-2 w-8 h-8" /> | 
					
						
							|  |  |  |         <Tr slot="message" t={Translations.t.userinfo.noDescriptionCallToAction} /> | 
					
						
							|  |  |  |       </a> | 
					
						
							|  |  |  |     {/if} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </div> |