37 lines
		
	
	
		
			924 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			924 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
"use client";
 | 
						|
 | 
						|
import Link from "next/link";
 | 
						|
import { useUserContext } from "./layout";
 | 
						|
import { User } from "./lib/auth/user.service";
 | 
						|
 | 
						|
export default function Home() {
 | 
						|
  const user = useUserContext();
 | 
						|
  const message = user.isAuthenticated
 | 
						|
    ? `Hi ${user.name}, you are granted with ${rolesStr(user)}.`
 | 
						|
    : "You are not authenticated.";
 | 
						|
 | 
						|
  function rolesStr(user: User) {
 | 
						|
    if (!user?.roles?.length) {
 | 
						|
      return "[]";
 | 
						|
    }
 | 
						|
    return `["${user.roles.join('", "')}"]`;
 | 
						|
  }
 | 
						|
 | 
						|
  return (
 | 
						|
    <main className="min-h-screen">
 | 
						|
      <div className="flex">
 | 
						|
        <span className="ml-2"></span>
 | 
						|
        <button>
 | 
						|
          <Link href="/about">About</Link>
 | 
						|
        </button>
 | 
						|
        <span className="m-auto"></span>
 | 
						|
        <h1>Home</h1>
 | 
						|
        <span className="m-auto"></span>
 | 
						|
      </div>
 | 
						|
      <div className="flex flex-col items-center justify-between p-24">
 | 
						|
        <p>{message}</p>
 | 
						|
      </div>
 | 
						|
    </main>
 | 
						|
  );
 | 
						|
}
 |