Redesign profile screen
This commit is contained in:
		
							parent
							
								
									0572d5653e
								
							
						
					
					
						commit
						d7f39e9ed6
					
				
					 1 changed files with 33 additions and 17 deletions
				
			
		|  | @ -4,50 +4,65 @@ import Link from "next/link"; | |||
| import prisma, { whereAndSelect } from "@lib/prisma"; | ||||
| import Avatar from "../components/Avatar"; | ||||
| import Theme from "@components/Theme"; | ||||
| import { ClockIcon, InformationCircleIcon, UserIcon } from "@heroicons/react/solid"; | ||||
| import React from "react"; | ||||
| 
 | ||||
| export default function User(props): User { | ||||
|   const { isReady } = Theme(props.user.theme); | ||||
| 
 | ||||
|   const eventTypes = props.eventTypes.map((type) => ( | ||||
|     <li | ||||
|     <div | ||||
|       key={type.id} | ||||
|       className="dark:bg-gray-800 dark:opacity-90 dark:hover:opacity-100 dark:hover:bg-gray-800 bg-white hover:bg-gray-50 "> | ||||
|       className="dark:bg-gray-800 dark:opacity-90 dark:hover:opacity-100 dark:hover:bg-gray-800 bg-white hover:bg-gray-50 border border-neutral-200 hover:border-black rounded-sm"> | ||||
|       <Link href={`/${props.user.username}/${type.slug}`}> | ||||
|         <a className="block px-6 py-4"> | ||||
|           <div | ||||
|             className="inline-block w-3 h-3 rounded-full mr-2" | ||||
|             style={{ backgroundColor: getRandomColorCode() }}></div> | ||||
|           <h2 className="inline-block font-medium dark:text-white">{type.title}</h2> | ||||
|           <p className="inline-block text-gray-400 dark:text-gray-100 ml-2">{type.description}</p> | ||||
|           <h2 className="font-semibold text-neutral-900 dark:text-white">{type.title}</h2> | ||||
|           <div className="mt-2 flex space-x-4"> | ||||
|             <div className="flex items-center text-sm text-neutral-500"> | ||||
|               <ClockIcon className="flex-shrink-0 mr-1.5 h-5 w-5 text-neutral-400" aria-hidden="true" /> | ||||
|               <p>{type.length}m</p> | ||||
|             </div> | ||||
|             <div className="flex items-center text-sm text-neutral-500"> | ||||
|               <UserIcon className="flex-shrink-0 mr-1.5 h-5 w-5 text-neutral-400" aria-hidden="true" /> | ||||
|               <p>1-on-1</p> | ||||
|             </div> | ||||
|             <div className="flex items-center text-sm text-neutral-500"> | ||||
|               <InformationCircleIcon | ||||
|                 className="flex-shrink-0 mr-1.5 h-5 w-5 text-neutral-400" | ||||
|                 aria-hidden="true" | ||||
|               /> | ||||
|               <p>{type.description.substring(0, 100)}</p> | ||||
|             </div> | ||||
|           </div> | ||||
|         </a> | ||||
|       </Link> | ||||
|     </li> | ||||
|     </div> | ||||
|   )); | ||||
|   return ( | ||||
|     isReady && ( | ||||
|       <div> | ||||
|       <div className="bg-neutral-50 h-screen"> | ||||
|         <Head> | ||||
|           <title>{props.user.name || props.user.username} | Calendso</title> | ||||
|           <link rel="icon" href="/favicon.ico" /> | ||||
|         </Head> | ||||
| 
 | ||||
|         <main className="max-w-2xl mx-auto my-24"> | ||||
|         <main className="max-w-3xl mx-auto py-24"> | ||||
|           <div className="mb-8 text-center"> | ||||
|             <Avatar user={props.user} className="mx-auto w-24 h-24 rounded-full mb-4" /> | ||||
|             <h1 className="text-3xl font-semibold text-gray-800 dark:text-white mb-1"> | ||||
|             <h1 className="text-3xl font-bold text-neutral-900 dark:text-white mb-1"> | ||||
|               {props.user.name || props.user.username} | ||||
|             </h1> | ||||
|             <p className="text-gray-600 dark:text-white">{props.user.bio}</p> | ||||
|             <p className="text-neutral-500 dark:text-white">{props.user.bio}</p> | ||||
|           </div> | ||||
|           <div className="shadow overflow-hidden rounded-md"> | ||||
|             <ul className="divide-y divide-gray-200 dark:divide-gray-900">{eventTypes}</ul> | ||||
|           <div className="space-y-4">{eventTypes}</div> | ||||
|           {eventTypes.length == 0 && ( | ||||
|             <div className="shadow overflow-hidden rounded-sm"> | ||||
|               <div className="p-8 text-center text-gray-400 dark:text-white"> | ||||
|                 <h2 className="font-semibold text-3xl text-gray-600">Uh oh!</h2> | ||||
|                 <p className="max-w-md mx-auto">This user hasn't set up any event types yet.</p> | ||||
|               </div> | ||||
|             )} | ||||
|             </div> | ||||
|           )} | ||||
|         </main> | ||||
|       </div> | ||||
|     ) | ||||
|  | @ -76,6 +91,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => { | |||
|     select: { | ||||
|       slug: true, | ||||
|       title: true, | ||||
|       length: true, | ||||
|       description: true, | ||||
|     }, | ||||
|   }); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Bailey Pumfleet
						Bailey Pumfleet