33< section class ="mt-4 ">
44 < div class ="p-4 print:p-0 flex items-center justify-between ">
55 < div class ="flex items-center gap-2 ">
6- < div class ="flex flex-col max-w-[55vw] md:max-w-full ">
7- < h1 class ="font-medium tracking-tight text-2xl truncate "> {{ trip.name }}</ h1 >
6+ < div class ="pl-2 flex flex-col max-w-[55vw] md:max-w-full min-w-0 ">
7+ < h1 class ="font-medium tracking-tight text-xl md:text- 2xl truncate "> {{ trip.name }}</ h1 >
88 < span class ="text-xs text-gray-500 "> {{ trip.days.length }} {{ trip.days!.length > 1 ? 'days' : 'day'}}</ span >
99 </ div >
1010 </ div >
@@ -14,6 +14,7 @@ <h1 class="font-medium tracking-tight text-2xl truncate">{{ trip.name }}</h1>
1414 < div class ="flex gap-2 items-center text-xs text-gray-500 "> < i class ="pi pi-github "> </ i > itskovacs/trip</ div >
1515 </ div >
1616 < div class ="flex items-center gap-2 print:hidden ">
17+ < p-button pTooltip ="Checklist " text (click) ="openChecklist() " icon ="pi pi-check-square " severity ="help " />
1718 < p-button pTooltip ="Packing list " tooltipPosition ="left " text (click) ="openPackingList() " icon ="pi pi-briefcase "
1819 severity ="help " />
1920 < span
@@ -354,6 +355,10 @@ <h1 class="tracking-tight truncate dark:text-surface-300">{{ p.name }}</h1>
354355 p.price || '-'
355356 }} {{ currency$ | async }}</ span >
356357
358+ @if (trip.collaborators.length) {
359+ < span class ="bg-gray-100 text-gray-800 text-sm me-2 px-2.5 py-0.5 rounded dark:bg-gray-100/85 "> {{ p.user
360+ }}</ span >
361+ }
357362 </ div >
358363 </ div >
359364 </ div >
@@ -415,41 +420,18 @@ <h1 class="font-semibold tracking-tight text-xl">Days</h1>
415420 </ div >
416421
417422 < div class ="p-4 shadow rounded-md w-full min-h-20 ">
418- < div class ="group relative p-2 mb-2 flex flex-col items-start ">
419- < h1 class ="font-semibold tracking-tight text-xl "> Watchlist</ h1 >
420- < span class ="text-xs text-gray-500 line-clamp-1 "> {{ trip.name }} pending/constraints</ span >
421-
422- < div
423- class ="bg-white rounded py-2 absolute top-1/2 -translate-y-1/2 left-0 hidden group-hover:block slide-x dark:bg-surface-900 ">
424- < p-button [icon] ="collapsedTripStatuses ? 'pi pi-chevron-down' : 'pi pi-chevron-up' " text
425- (click) ="collapsedTripStatuses = !collapsedTripStatuses " />
426- </ div >
423+ < div class ="p-2 mb-2 flex justify-between items-center ">
424+ < h1 class ="font-semibold tracking-tight text-xl "> About</ h1 >
425+ < div class ="flex items-center gap-1 text-gray-500 "> < i class ="pi pi-github "> </ i > itskovacs/trip</ div >
427426 </ div >
428427
429- @if (!collapsedTripStatuses) {
430- < div [class.max-h-40!] ="!isExpanded " class ="max-h-[340px] overflow-y-auto ">
431- @defer {
432- @for (item of getWatchlistData; track item.id) {
433- < div class ="flex items-center gap-2 h-10 px-4 py-2 w-full max-w-full ">
434- < div class ="flex flex-none ">
435- < span [style.background] ="item.status.color+'1A' " [style.color] ="item.status.color "
436- class ="text-xs font-medium me-2 px-2.5 py-0.5 rounded "> {{
437- item.status.label }}</ span >
438- </ div >
439- < div class ="line-clamp-1 "> {{ item.text }}</ div >
440- </ div >
441- } @empty {
442- < p class ="p-4 font-light text-gray-500 ">
443- Nothing there
444- </ p >
445- }
446- } @placeholder (minimum 0.4s) {
447- < div class ="h-16 ">
448- < p-skeleton height ="100% " />
449- </ div >
450- }
428+ < div class ="max-w-[85%] text-center mx-auto flex flex-col items-center gap-4 ">
429+ < div > TRIP is free and always will be. Building it takes a lot of time and effort, and since I'm committed to
430+ keeping it free, your support simply helps keep the project going. Thank you! ❤️</ div >
431+
432+ < a href ="https://ko-fi.com/itskovacs " target ="_blank " class ="custom-button flex items-center "> Buy me
433+ a coffee</ a >
451434 </ div >
452- }
453435 </ div >
454436 }
455437 </ div >
@@ -505,4 +487,40 @@ <h1 class="text-2xl font-semibold text-gray-800 tracking-tight dark:text-white m
505487 }
506488 </ div >
507489 </ section >
490+ </ p-dialog >
491+
492+ < p-dialog header ="Checklist " [draggable] ="false " [dismissableMask] ="true " [modal] ="true "
493+ [(visible)] ="checklistDialogVisible " styleClass ="w-[95%] md:w-[50%] lg:w-[30%] ">
494+ < section class ="p-4 max-w-full max-h-[80%] md:max-h-[600px] ">
495+ < div class ="grid grid-cols-2 md:grid-cols-3 gap-2 mt-4 pb-4 ">
496+ @for (item of checklistItems; track item.id) {
497+ < div class ="relative group flex items-center gap-3 rounded-md p-2 hover:bg-gray-100 dark:hover:bg-white/5 ">
498+ < label [for] ="item.id " [class.line-through] ="item.checked "
499+ class ="flex items-center gap-2 w-full cursor-pointer ">
500+ < p-checkbox disabled [binary] ="true " [inputId] ="item.id.toString() " [(ngModel)] ="item.checked " />
501+ < div class ="pr-6 md:pr-0 truncate select-none flex-1 ">
502+ < span > {{ item.text }}</ span >
503+ </ div >
504+ </ label >
505+ </ div >
506+ }
507+ </ div >
508+
509+ < div class ="grid grid-cols-2 md:grid-cols-3 gap-2 mt-4 pb-4 ">
510+ @for (item of getWatchlistData; track item.id) {
511+ < div class ="flex items-center gap-3 rounded-md p-2 hover:bg-gray-100 dark:hover:bg-white/5 ">
512+ < label [for] ="item.id " class ="flex items-center gap-2 w-full ">
513+ < div class ="relative ">
514+ @if (item.status) {< div class ="z-50 block absolute top-0 left-3 size-2.5 rounded-full "
515+ [style.background] ="item.status.color "> </ div > }
516+ < p-checkbox disabled />
517+ </ div >
518+ < div class ="pr-6 md:pr-0 truncate select-none flex-1 ">
519+ < span > {{ item.text }}</ span >
520+ </ div >
521+ </ label >
522+ </ div >
523+ }
524+ </ div >
525+ </ section >
508526</ p-dialog >
0 commit comments