diff --git a/pages/teams/dashboard.tsx b/pages/teams/dashboard.tsx
index a74aeb9..8d12cbf 100644
--- a/pages/teams/dashboard.tsx
+++ b/pages/teams/dashboard.tsx
@@ -1,13 +1,82 @@
+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()
+ const [selectedChannel, setSelectedChannel] = useState(null)
+
console.log("in dashboard " + currUser)
useEffect(() => {
@@ -30,10 +99,749 @@ export default function Dashboard() {
}
}
+ 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 (
-
-
This is the dashboard
-
-
- )
+ <>
+
+ {/* header content */}
+
+
+
+ {/* personal line */}
+
+
+
+ TEAM
+
+
+
+
+
+
+ {/* list of team members */}
+ {
+ testFriends.map((friend, i) => {
+ return (
+
+
+
+
+ {statusBubble(friend.status)}
+
+
+
+
+
+
+ {friend.name}
+ {
+ selectedChannel == i ?
+ <>
+
+ >
+
+ :
+
+ }
+
+
+
+ {friend.role}
+
+
+ {renderPulse(friend.status)}
+
+ )
+ })
+ }
+
+
+
+ {/* pinned */}
+
+
+
+ ANNOUNCEMENTS
+
+
+ updates, pep talks, blockers, reminders
+
+
+ {/* tab pane */}
+
+ Active
+
+ Resolved
+
+
+
+ TODAY
+
+
+
+
+
+
+
+ {/* adriana's announcement */}
+
+
+
+
+ {statusBubble(UserStatus.busy)}
+
+
+
+
+
+ Adriana
+ 5 minutes ago
+
+ blockers
+
+
+
+
+ {/* arjun's announcement */}
+
+
+
+
+ {statusBubble(UserStatus.busy)}
+
+
+
+
+
+ Arjun
+ 30 minutes ago
+
+ engineering
+
+
+
+
+
+
+
+
+ {/* rooms */}
+
+
+ ROOMS
+
+
+
+ {/* tab pane */}
+
+ All
+
+ Live
+
+ Scheduled
+
+ Recurring
+
+
+
+ Week
+
+
+
+
+
+
+
+ {/* all rooms */}
+
+ {/* spontaneous bugs room */}
+
+ {/* header */}
+
+ {/* meeting details */}
+
+ bug fixing
+ were just fixing that jsx bug thats a paiiinnnn
+
+ {/* badges and tags */}
+
+
+ blockers
+
+
+
+ engineering
+
+
+
+
+ {/* room status */}
+
+
+
+ live
+
+
+ {/* room attachments */}
+
+
+
+
+
+
+
+
+
+ {/* footer */}
+
+
+
+
+
+
+
+
+
+
+
+
+ Arjun and Liam
+
+
+
+
+
+
+ {/* live room - design meeting */}
+
+ {/* header */}
+
+ {/* meeting details */}
+
+ Shopping Cart Experience
+ lets finish the mockups @josh, @mark, and @arjun please step in for feedback
+
+ {/* badges and tags */}
+
+
+ design
+
+
+
+
+ {/* room status */}
+
+
+
+ live
+
+ on and off all day
+
+ {/* room attachments */}
+
+
+
+
+
+
+
+
+ {/* footer */}
+
+
+
+
+
+
+
+
+ Adriana
+
+
+
+
+
+
+
+ {/* scheduled room - one on one */}
+
+ {/* header */}
+
+ {/* meeting details */}
+
+ Arjun and Paul - One on one
+ performance review
+
+ {/* badges and tags */}
+
+
+ private
+
+
+
+
+ {/* room status */}
+
+
+
+ scheduled
+
+
+ 3ish? Ill ping you Arjun
+
+
+
+ {/* footer */}
+
+
+
+
+
+
+ {/* recurring room - dsu */}
+
+ {/* header */}
+
+ {/* meeting details */}
+
+
+ Daily Standup
+
+
+
+ {/* badges and tags */}
+
+
+ scrum
+
+
+
+ engineering
+
+
+
+
+ {/* room status */}
+
+
+
+ recurring
+
+
+ 10am daily
+
+
+
+ {/* footer */}
+
+
+
+
+
+
+
+
+
+ {/* recurring room - demo */}
+
+ {/* header */}
+
+ {/* meeting details */}
+
+
+ Sprint Demo
+
+ all hands on deck...lets have fun :)
+
+ {/* badges and tags */}
+
+
+ scrum
+
+
+
+
+ {/* room status */}
+
+
+
+ recurring
+
+
+ biweekly fridays!
+
+
+
+ {/* footer */}
+
+
+
+
+
+
+
+
+
+ {/* recurring room - wine wednesdays */}
+
+ {/* header */}
+
+ {/* meeting details */}
+
+
+ Wine Wednesdays
+
+ @JOSH YOU BETTER COME
+
+ {/* badges and tags */}
+
+
+ party π
+
+
+
+
+ {/* room status */}
+
+
+
+ recurring
+
+
+ wednesdays 7-9pm
+
+
+
+ {/* footer */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* attachments */}
+
+ {/* header row */}
+
+
+ Attachments
+
+
+
+ code, links (jira tickets, drive folders, powerpoints), screenshots
+
+
+ {/* tab pane */}
+
+ Team
+
+ Personal
+
+ Favorites
+
+
+
+ TODAY
+
+
+
+
+
+
+
+
+
+ {/* row of attachments */}
+
+ {/* pdf example */}
+
+ {/* attmnt header */}
+
+
+
+
+ report.pdf
+
+
+ blockers
+
+
+
+ {/* attachment actions */}
+
+
+
+
+
+
+ {/* attmnt footer */}
+
+
+
+
+
+
+
+
+
+ Adriana
+ 5 minutes ago
+
+
+
+
+
+
+ {/* jira example */}
+
+ {/* attmnt header */}
+
+
+
+
+ RAM-22
+ technical doc - stripe
+
+
+ engineering
+
+
+
+ {/* attachment actions */}
+
+
+
+
+
+
+ {/* attmnt footer */}
+
+
+
+
+
+
+
+
+
+ Paul
+ 2 hours ago
+
+
+
+
+
+
+
+
+
+
+ {/* dynamic footer based on selection */}
+
+
+
+
+
+ {statusBubble(UserStatus.online)}
+
+
+
+
+
+ {selectedChannel == null ? "" : testFriends[selectedChannel].name}
+
+ {selectedChannel == null ? "" : testFriends[selectedChannel].role}
+
+
+
+ {/* shortcuts */}
+
+
+ R
+
+
+ SPACE
+
+
+
+
+ >
+ )
}
\ No newline at end of file
diff --git a/pages/teams/demo.tsx b/pages/teams/demo.tsx
index 1b2b4f7..5d69113 100644
--- a/pages/teams/demo.tsx
+++ b/pages/teams/demo.tsx
@@ -28,9 +28,6 @@ import { BsThreeDots } from "react-icons/bs";
import { UserStatus, User } from '../../models/user'
import { KeyCode } from '../../globals/keycode'
-import { Tabs } from 'antd';
-const { TabPane } = Tabs;
-
let testFriends = [
{
name: "Liam",