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...
|
||||
|
||||
createdDate: Timestamp = Timestamp.now()
|
||||
createdByUserId: string
|
||||
createdDate: Timestamp = Timestamp.now();
|
||||
createdByUserId: string;
|
||||
|
||||
|
||||
constructor(name: string createdByUserId: string) {
|
||||
this.name = name;
|
||||
this.createdByUserId = createdByUserId
|
||||
constructor(_name: string, _createdByUserId: string) {
|
||||
this.name = _name;
|
||||
this.createdByUserId = _createdByUserId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,4 +37,8 @@ export enum UserStatus {
|
||||
online = "online",
|
||||
offline = "offline",
|
||||
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>
|
||||
|
||||
<button className="rounded-lg p-2 border text-slate-400 text-xs hover:bg-slate-100">
|
||||
Focus Mode
|
||||
</button>
|
||||
|
||||
{/* controls */}
|
||||
<div className="flex flex-row items-center space-x-5 px-5">
|
||||
<FaHeadphones
|
||||
|
||||
Reference in New Issue
Block a user