import Image from 'next/image';
import React, { useState } from 'react';
import { FaMicrophoneAlt,
FaHeadphonesAlt,
FaTh,
FaAngleDown,
FaPlusSquare,
FaBroom,
FaBell,
FaFilePdf,
FaCopy,
FaClock,
FaPlay,
FaPlus,
FaCheck,
FaCode,
FaLink,
FaExternalLinkAlt,
FaArchive,
FaAtlassian,
FaSearch
} from "react-icons/fa";
import { IoPulseOutline, IoRemoveOutline, IoTimer } from "react-icons/io5";
import { BsThreeDots } from "react-icons/bs";
import { UserStatus, User } from '../../models/user'
import { KeyCode } from '../../globals/keycode'
import { useRouter } from 'next/router'
import { useEffect } from 'react'
import { useAuth } from '../../contexts/authContext'
let testFriends = [
{
name: "Liam",
role: "engineer",
systemAvatar: "29",
status: UserStatus.online
},
{
name: "Emily",
role: "engineer",
systemAvatar: "02",
status: UserStatus.online
},
{
name: "Paul",
role: "architect",
systemAvatar: "43",
status: UserStatus.online
},
{
name: "Mark",
role: "engineer",
systemAvatar: "04",
status: UserStatus.busy
},
{
name: "Adriana",
role: "design",
systemAvatar: "06",
status: UserStatus.busy
},
{
name: "Josh",
role: "design",
systemAvatar: "05",
status: UserStatus.offline
}
]
export default function Dashboard() {
const { currUser, logOut } = useAuth()
const router = useRouter()
useEffect(() => {
// if not authenticated, take user to the login
if (!currUser) {
console.log('not authenticated...routing from dashboard to teams home')
router.push('/teams/login')
}
}, [currUser])
const [selectedChannel, setSelectedChannel] = useState(null)
console.log("in dashboard " + currUser)
async function handleSignOut() {
console.log("clicked log out button")
try {
await logOut()
router.push('/teams')
} catch(error) {
console.log(error)
}
}
function statusBubble(status: UserStatus) {
console.log(status)
switch(status) {
case UserStatus.online:
return
case UserStatus.busy:
return
case UserStatus.offline:
return
default:
return
}
}
function renderPulse(status: UserStatus) {
switch(status) {
case UserStatus.online:
return
case UserStatus.busy:
return
case UserStatus.offline:
return
default:
return
}
}
function handleKeyboardShortcut (event) {
console.log(event.keyCode)
switch(event.keyCode) {
case KeyCode.Escape:
setSelectedChannel(null)
break
case KeyCode.Zero:
setSelectedChannel(0)
break
case KeyCode.One:
setSelectedChannel(1)
break
case KeyCode.Two:
setSelectedChannel(2)
break
case KeyCode.Three:
setSelectedChannel(3)
break
case KeyCode.Four:
setSelectedChannel(4)
break
case KeyCode.Five:
setSelectedChannel(5)
break
default:
return
}
}
return (
<>
{/* header content */}
{/* welcome message */}
πHey Arjun, Good Afternoon!
{/* Date and time */}
Tues, Jan 11th1:34am
{/* header control section */}
{/* search bar */}
{/* avatar */}
{/* personal line */}
TEAM
{/* list of team members */}
{
testFriends.map((friend, i) => {
return (
{statusBubble(friend.status)}
{friend.name}
{
selectedChannel == i ?
<>
>
:
}
{friend.role}
{renderPulse(friend.status)}
)
})
}