diff --git a/packages/web/components/MainTabsOrPages/Done.tsx b/packages/web/components/MainTabsOrPages/Done.tsx index eb9d52c..a0c1d27 100644 --- a/packages/web/components/MainTabsOrPages/Done.tsx +++ b/packages/web/components/MainTabsOrPages/Done.tsx @@ -1,19 +1,34 @@ import React from "react"; import { FaCheck } from "react-icons/fa"; +import { useRecoilValue } from "recoil"; +import { doneConvosSelector } from "../../recoil/main"; +import ConversationFullRow from "../Conversations/ConversationFullRow"; export default function Done() { - return ( -
- + const doneConvos = useRecoilValue(doneConvosSelector); - - - Add things to done to

clear - your mind. -
-
+ return ( + <> + {doneConvos?.length > 0 ? ( + + {doneConvos.map((tRoom) => ( + + ))} + + ) : ( +
+ + + + + Add things to done to

clear + your mind. +
+
+ )} + ); } diff --git a/packages/web/components/MainTabsOrPages/Later.tsx b/packages/web/components/MainTabsOrPages/Later.tsx index caeb44f..1c57a1a 100644 --- a/packages/web/components/MainTabsOrPages/Later.tsx +++ b/packages/web/components/MainTabsOrPages/Later.tsx @@ -1,21 +1,35 @@ import React from "react"; import { FaRegClock } from "react-icons/fa"; +import { useRecoilValue } from "recoil"; +import { laterConvosSelector } from "../../recoil/main"; +import ConversationFullRow from "../Conversations/ConversationFullRow"; export default function Later() { - console.log("re-rendering later"); - return ( -
- + const laterConvos = useRecoilValue(laterConvosSelector); - - - Focusing right now?

No worries, go through low-priority{" "} -

- conversations later. -
-
+ return ( + <> + {laterConvos?.length > 0 ? ( + + {laterConvos.map((tRoom) => ( + + ))} + + ) : ( +
+ + + + + Focusing right now?

No worries, go through low-priority{" "} +

+ conversations later. +
+
+ )} + ); } diff --git a/packages/web/recoil/main.tsx b/packages/web/recoil/main.tsx index 6966be3..1eb5afb 100644 --- a/packages/web/recoil/main.tsx +++ b/packages/web/recoil/main.tsx @@ -27,6 +27,9 @@ export enum RecoilActions { SORTED_CONVERSATIONS = "SORTED_CONVERSATIONS", LIVE_ROOMS = "LIVE_ROOMS", + LATER_CONVERSATIONS_SELECTOR = "LATER_CONVERSATIONS_SELECTOR", + PRIORITY_CONVERSATIONS_SELECTOR = "PRIORITY_CONVERSATIONS_SELECTOR", + DONE_CONVERSATIONS_SELECTOR = "DONE_CONVERSATIONS_SELECTOR", RELATIVE_TIME_SECTIONS_CONVOS = "RELATIVE_TIME_SECTIONS_CONVOS", CHECK_INCOMING_MESSAGE = "CHECK_INCOMING_MESSAGE", @@ -113,6 +116,65 @@ export const liveRoomsSelector = selector({ }, }); +export const laterConvosSelector = selector({ + key: RecoilActions.LATER_CONVERSATIONS_SELECTOR, + get: ({ get }) => { + const sortedConvos = get(sortedRoomSelector); + const convoUserMap = get(allUsersConversationsAtom); + + const laterConvos: Conversation[] = sortedConvos.filter((conv) => { + // get the userconvoAssoc and see the state + if (convoUserMap.get(conv.id)?.state == ConversationMemberState.later) { + return true; + } + + return false; + }); + + return laterConvos; + }, +}); + +export const priorityConvosSelector = selector({ + key: RecoilActions.PRIORITY_CONVERSATIONS_SELECTOR, + get: ({ get }) => { + const sortedConvos = get(sortedRoomSelector); + const convoUserMap = get(allUsersConversationsAtom); + + const priorityConvos: Conversation[] = sortedConvos.filter((conv) => { + // get the userconvoAssoc and see the state + if ( + convoUserMap.get(conv.id)?.state == ConversationMemberState.priority + ) { + return true; + } + + return false; + }); + + return priorityConvos; + }, +}); + +export const doneConvosSelector = selector({ + key: RecoilActions.DONE_CONVERSATIONS_SELECTOR, + get: ({ get }) => { + const sortedConvos = get(sortedRoomSelector); + const convoUserMap = get(allUsersConversationsAtom); + + const doneConvos: Conversation[] = sortedConvos.filter((conv) => { + // get the userconvoAssoc and see the state + if (convoUserMap.get(conv.id)?.state == ConversationMemberState.done) { + return true; + } + + return false; + }); + + return doneConvos; + }, +}); + export enum RelativeTimeConvosSections { today = "TODAY",