139 lines
4.3 KiB
TypeScript
139 lines
4.3 KiB
TypeScript
import { Avatar, Badge } from "antd";
|
|
import { useRouter } from "next/router";
|
|
import {
|
|
FaDotCircle,
|
|
FaWalking,
|
|
FaRocket,
|
|
FaCheckDouble,
|
|
FaCircle,
|
|
FaUser,
|
|
FaRegClock,
|
|
FaCheck,
|
|
FaAngleRight,
|
|
FaGithub,
|
|
FaAtlassian,
|
|
} from "react-icons/fa";
|
|
import { Routes } from "@nirvana/common/helpers/routes";
|
|
import LiveRoom from "../Conversations/LiveRoom";
|
|
import Conversation from "@nirvana/common/models/conversation";
|
|
import { useRecoilValue } from "recoil";
|
|
import {
|
|
liveRoomsSelector,
|
|
RelativeTimeConvosSections,
|
|
RelativeTimeSeparatedConvosSelector,
|
|
} from "../../recoil/main";
|
|
import ConversationFullRow from "../Conversations/ConversationFullRow";
|
|
|
|
export default function Conversations() {
|
|
const router = useRouter();
|
|
|
|
const liveRooms = useRecoilValue(liveRoomsSelector);
|
|
const relativeConvoSections = useRecoilValue(
|
|
RelativeTimeSeparatedConvosSelector
|
|
);
|
|
|
|
const todayConvos = relativeConvoSections.get(
|
|
RelativeTimeConvosSections.today
|
|
);
|
|
const last7DaysConvos = relativeConvoSections.get(
|
|
RelativeTimeConvosSections.last7Days
|
|
);
|
|
const earlierMonthConvos = relativeConvoSections.get(
|
|
RelativeTimeConvosSections.earlierThisMonth
|
|
);
|
|
const oldJunkConvos = relativeConvoSections.get(
|
|
RelativeTimeConvosSections.oldJunk
|
|
);
|
|
|
|
return (
|
|
<>
|
|
{/* live */}
|
|
{liveRooms?.length > 0 && (
|
|
<>
|
|
<span className="flex flex-row items-center mb-5 px-5 w-full">
|
|
<FaDotCircle className="text-orange-500 text-lg mr-1" />
|
|
<span className="text-md tracking-widest font-semibold text-slate-300 uppercase">
|
|
Live
|
|
</span>
|
|
</span>
|
|
|
|
{/* row of live room cards */}
|
|
<span className="flex flex-col w-full items-stretch">
|
|
{liveRooms.map((lRoom) => (
|
|
<LiveRoom key={lRoom.id} conversation={lRoom} />
|
|
))}
|
|
</span>
|
|
</>
|
|
)}
|
|
|
|
{/* Today */}
|
|
{todayConvos && todayConvos?.length > 0 && (
|
|
<>
|
|
<span className="flex flex-row items-center mb-5 px-5 w-full mt-10">
|
|
<span className="text-md tracking-widest font-semibold text-slate-300 uppercase">
|
|
Today
|
|
</span>
|
|
</span>
|
|
<span className="flex flex-col w-full items-stretch">
|
|
{todayConvos.map((tRoom) => (
|
|
<ConversationFullRow key={tRoom.id} conversation={tRoom} />
|
|
))}
|
|
</span>
|
|
</>
|
|
)}
|
|
|
|
{/* last 7 days */}
|
|
{last7DaysConvos && last7DaysConvos?.length > 0 && (
|
|
<>
|
|
<span className="flex flex-row items-center mb-5 px-5 w-full mt-10">
|
|
<span className="text-md tracking-widest font-semibold text-slate-300 uppercase">
|
|
Last 7 Days
|
|
</span>
|
|
</span>
|
|
<span className="flex flex-col w-full items-stretch">
|
|
{last7DaysConvos.map((tRoom) => (
|
|
<ConversationFullRow key={tRoom.id} conversation={tRoom} />
|
|
))}
|
|
</span>
|
|
</>
|
|
)}
|
|
|
|
{/* earlier this month */}
|
|
{earlierMonthConvos && earlierMonthConvos?.length > 0 && (
|
|
<>
|
|
<span className="flex flex-row items-center mb-5 px-5 w-full mt-10">
|
|
<span className="text-md tracking-widest font-semibold text-slate-300 uppercase">
|
|
Earlier This Month
|
|
</span>
|
|
</span>
|
|
<span className="flex flex-col w-full items-stretch">
|
|
{earlierMonthConvos.map((tRoom) => (
|
|
<ConversationFullRow key={tRoom.id} conversation={tRoom} />
|
|
))}
|
|
</span>
|
|
</>
|
|
)}
|
|
|
|
{/* old junk */}
|
|
{oldJunkConvos && oldJunkConvos?.length > 0 && (
|
|
<>
|
|
<span className="flex flex-row items-center mb-5 px-5 w-full mt-10">
|
|
<span className="text-md tracking-widest font-semibold text-slate-300 uppercase">
|
|
Older Junk
|
|
</span>
|
|
</span>
|
|
<span className="flex flex-col w-full items-stretch">
|
|
{oldJunkConvos.map((tRoom) => (
|
|
<ConversationFullRow key={tRoom.id} conversation={tRoom} />
|
|
))}
|
|
</span>
|
|
</>
|
|
)}
|
|
|
|
<span className="mx-auto text-slate-300 flex-1 flex flex-col justify-end">
|
|
<span className="mt-auto">{"That's all"}</span>
|
|
</span>
|
|
</>
|
|
);
|
|
}
|