diff --git a/packages/common/models/link.ts b/packages/common/models/link.ts index 3aae505..2473e01 100644 --- a/packages/common/models/link.ts +++ b/packages/common/models/link.ts @@ -84,4 +84,5 @@ export enum LinkType { pdf = "pdf", codePile = "codepile", pastePics = "paste.pics", + googleMeet = "googleMeet", } diff --git a/packages/web/components/Drawer/LinkIcon.tsx b/packages/web/components/Drawer/LinkIcon.tsx index 8f350f2..fb6aaf8 100644 --- a/packages/web/components/Drawer/LinkIcon.tsx +++ b/packages/web/components/Drawer/LinkIcon.tsx @@ -8,7 +8,9 @@ import { FaGlobe, FaGoogleDrive, } from "react-icons/fa"; -import Link, { LinkType } from "../models/link"; +import Link, { LinkType } from "@nirvana/common/models/link"; + +import { SiGooglemeet } from "react-icons/si"; export default function LinkIcon(props: { className?: string; @@ -41,7 +43,7 @@ export default function LinkIcon(props: { return ; case LinkType.github: return ( - + ); case LinkType.googleDrive: return ( @@ -52,7 +54,13 @@ export default function LinkIcon(props: { ); case LinkType.pdf: - ; + return ( + + ); + case LinkType.googleMeet: + return ( + + ); default: return ( diff --git a/packages/web/components/MainTabsOrPages/Conversations.tsx b/packages/web/components/MainTabsOrPages/Conversations.tsx index 2af358f..dbd6085 100644 --- a/packages/web/components/MainTabsOrPages/Conversations.tsx +++ b/packages/web/components/MainTabsOrPages/Conversations.tsx @@ -1,4 +1,5 @@ import { Avatar, Badge } from "antd"; +import { useRouter } from "next/router"; import { FaDotCircle, FaWalking, @@ -12,8 +13,18 @@ import { FaGithub, FaAtlassian, } from "react-icons/fa"; +import { Routes } from "@nirvana/common/helpers/routes"; export default function Conversations() { + const router = useRouter(); + + const handleViewConversationDetails = (convoId) => { + router.push({ + pathname: Routes.home, + query: { convoId }, + }); + }; + return ( <> @@ -66,7 +77,10 @@ export default function Conversations() { - + handleViewConversationDetails("woah")} + className="flex flex-col w-full items-stretch" + > {/* engineering */} +
+ {/* drawer items */} +
+ + Shared + + + {/* column list of drawer items - github first one */} + {testDrawerItems.map((link) => ( + + {/* */} + + + + + {link.linkName} + + {link.relativeSentTime} + + + + + + + + + + + + + + + + ))} +
+ + {/* main timeline view with action buttons on top */} +
+ + Timeline + +
+
+ + ); +} diff --git a/packages/web/pages/s/index.tsx b/packages/web/pages/s/index.tsx index b66c968..1f88a1f 100644 --- a/packages/web/pages/s/index.tsx +++ b/packages/web/pages/s/index.tsx @@ -12,26 +12,13 @@ import { FaArrowLeft } from "react-icons/fa"; import KeyboardShortcutHandler from "../../components/MainTabsOrPages/KeyboardShortcutHandler"; import SearchResults from "../../components/FullPageExperiences/SearchResults"; import { QueryRoutes, Routes } from "@nirvana/common/helpers/routes"; +import ViewConvo from "../../components/MainTabsOrPages/ViewConvo"; export default function Me() { // figure out what content to render from here const router = useRouter(); const currPage = router.query.page; - - function getCurrentContent() { - switch (currPage) { - case QueryRoutes.convos: - return ; - case QueryRoutes.later: - return ; - case QueryRoutes.done: - return ; - case QueryRoutes.drawer: - return ; - default: - return <>; - } - } + const currConvo = router.query.convoId; /** full page replacements: clean full page * 1. search page: @@ -45,6 +32,8 @@ export default function Me() { fullCleanPageContent = ; } else if (currPage === QueryRoutes.createConvo) { fullCleanPageContent = ; + } else if (currConvo) { + fullCleanPageContent = ; } if (fullCleanPageContent) { @@ -60,7 +49,7 @@ export default function Me() { }) } className="rounded-lg p-2 border flex flex-row items-center space-x-2 - text-slate-400 text-xs hover:bg-slate-50" + text-slate-400 text-xs hover:bg-slate-50" > back @@ -86,6 +75,21 @@ export default function Me() { ); } + function getCurrentContent() { + switch (currPage) { + case QueryRoutes.convos: + return ; + case QueryRoutes.later: + return ; + case QueryRoutes.done: + return ; + case QueryRoutes.drawer: + return ; + default: + return <>; + } + } + return (
diff --git a/packages/web/services/firebaseService.js b/packages/web/services/firebaseService.js index 6b01339..616dbc4 100644 --- a/packages/web/services/firebaseService.js +++ b/packages/web/services/firebaseService.js @@ -11,7 +11,7 @@ // Import the functions you need from the SDKs you need import * as firebase from "firebase/app"; // import { getAnalytics } from "firebase/analytics"; -import { getFirestore } from "firebase/firestore"; +import { getFirestore, enableIndexedDbPersistence } from "firebase/firestore"; import { browserSessionPersistence, getAuth, @@ -34,27 +34,23 @@ const firebaseConfig = { }; // Initialize Firebase -// if (typeof window !== "undefined") { const app = firebase.initializeApp(firebaseConfig); -// const analytics = getAnalytics(app); - console.log("initialized firebase"); +// const analytics = getAnalytics(app); + setPersistence(getAuth(), browserSessionPersistence); -// } -// import { credential } from 'firebase-admin'; -// import { initializeApp } from 'firebase-admin/app'; - -// import serviceAccount from '../nirvana-for-business-firebase-adminsdk' - -// if(typeof window === 'undefined') { -// console.log('initializing firebase admin') -// initializeApp({ -// credential: credential.cert({ -// privateKey: serviceAccount.private_key, -// clientEmail: serviceAccount.client_email, -// projectId: serviceAccount.project_id, -// }) -// }); -// } +// Initialize firestore persistence for data caching +const db = getFirestore(app); +enableIndexedDbPersistence(db).catch((err) => { + if (err.code == "failed-precondition") { + // Multiple tabs open, persistence can only be enabled + // in one tab at a a time. + // ... + } else if (err.code == "unimplemented") { + // The current browser does not support all of the + // features required to enable persistence + // ... + } +});