adding initial models but mostly boilerplate for the entire implementation
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
export default class ConversationData {
|
||||||
|
// want all of the contents of a conversation in one place for the frontend
|
||||||
|
// need all of the content items in the conversation for the past week
|
||||||
|
// can be audio clip or link for now
|
||||||
|
// if user wants more data, click button to fetch further back
|
||||||
|
// see if this convo is a priority one
|
||||||
|
// all users in the conversation: userId's perhaps, but the actual user we can get from the relevantUsersCache map
|
||||||
|
}
|
||||||
|
|
||||||
|
// one map: all relevant users, a map we build based on where the user visits
|
||||||
|
|
||||||
|
// one map: conversation id -> conversationData as above to get everything relevant
|
||||||
|
// fetch only all convos in last 90 days
|
||||||
|
// search for any other ones in the search bar
|
||||||
|
|
||||||
|
// filter selector to get live convos
|
||||||
|
// filter selector to get all priority convos
|
||||||
|
// filter selector to get all later convos
|
||||||
|
// filter selector to get all done convos
|
||||||
|
|
||||||
|
// filter selector to get a map of default "inbox" conversations:
|
||||||
|
// go through all conversations in the conversation map and place in right category
|
||||||
|
/**
|
||||||
|
* {
|
||||||
|
* "Today": [if latest message was today],
|
||||||
|
* "Last 7 Days": [if convo last message was > day - 7],
|
||||||
|
* "earlier this month": [...not in above two, but still > day - 30],
|
||||||
|
* "mm yyyy": [create these if convo is older than the last threshold]
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
@@ -6,12 +6,11 @@ export default class Conversation {
|
|||||||
|
|
||||||
name: string; // engineering, general, arjun and jacob...
|
name: string; // engineering, general, arjun and jacob...
|
||||||
|
|
||||||
createdDate: Timestamp = Timestamp.now()
|
createdDate: Timestamp = Timestamp.now();
|
||||||
createdByUserId: string
|
createdByUserId: string;
|
||||||
|
|
||||||
|
constructor(_name: string, _createdByUserId: string) {
|
||||||
constructor(name: string createdByUserId: string) {
|
this.name = _name;
|
||||||
this.name = name;
|
this.createdByUserId = _createdByUserId;
|
||||||
this.createdByUserId = createdByUserId
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,4 +37,8 @@ export enum UserStatus {
|
|||||||
online = "online",
|
online = "online",
|
||||||
offline = "offline",
|
offline = "offline",
|
||||||
busy = "busy",
|
busy = "busy",
|
||||||
|
|
||||||
|
// new statuses
|
||||||
|
inLiveRoom = "inLiveRoom",
|
||||||
|
focusMode = "focusMode",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
import { v4 as uuid } from "uuid";
|
||||||
|
import { Timestamp } from "firebase/firestore";
|
||||||
|
|
||||||
|
export default class UserConversation {
|
||||||
|
id: string = uuid();
|
||||||
|
|
||||||
|
userId: string;
|
||||||
|
conversationId: string;
|
||||||
|
state: UserConversationState;
|
||||||
|
|
||||||
|
createdDate: Timestamp = Timestamp.now();
|
||||||
|
lastUpdatedDate?: Timestamp;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
_userId: string,
|
||||||
|
_conversationId: string,
|
||||||
|
_state: UserConversationState
|
||||||
|
) {
|
||||||
|
this.userId = _userId;
|
||||||
|
this.conversationId = _conversationId;
|
||||||
|
this.state = _state;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum UserConversationState {
|
||||||
|
default = "default",
|
||||||
|
priority = "priority",
|
||||||
|
later = "later",
|
||||||
|
done = "done",
|
||||||
|
// blocked = "blocked"
|
||||||
|
}
|
||||||
|
|||||||
@@ -93,6 +93,10 @@ export default function Header() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<button className="rounded-lg p-2 border text-slate-400 text-xs hover:bg-slate-100">
|
||||||
|
Focus Mode
|
||||||
|
</button>
|
||||||
|
|
||||||
{/* controls */}
|
{/* controls */}
|
||||||
<div className="flex flex-row items-center space-x-5 px-5">
|
<div className="flex flex-row items-center space-x-5 px-5">
|
||||||
<FaHeadphones
|
<FaHeadphones
|
||||||
|
|||||||
Reference in New Issue
Block a user