creating line scrappy works sort of

This commit is contained in:
talksik
2022-05-05 08:07:50 -05:00
parent 149be0e23c
commit d013212054
7 changed files with 56 additions and 20 deletions
+2 -2
View File
@@ -48,6 +48,6 @@ export function useGetDmByUserId() {
return useMutation(ApiCalls.getDmByUserId);
}
export function useCreateConvo() {
return useMutation(ApiCalls.createConversation);
export function useCreateLine() {
return useMutation(ApiCalls.createLine);
}
@@ -4,6 +4,7 @@ import CreateLineRequest from "@nirvana/core/requests/createLine.request";
import { Line } from "@nirvana/core/models/line.model";
import LoginResponse from "../../../core/responses/login.response";
import MasterConversation from "@nirvana/core/models/masterLineData.model";
import NirvanaResponse from "../../../core/responses/nirvanaResponse";
import { User } from "@nirvana/core/models";
import UserDetailsResponse from "../../../core/responses/userDetails.response";
import UserSearchResponse from "../../../core/responses/userSearch.response";
@@ -82,19 +83,17 @@ async function userSearch(searchQuery: string): Promise<UserSearchResponse> {
}
async function getUserConversations(): Promise<MasterConversation[]> {
return await NirvanaApi.fetch(`/conversations`, "GET", true);
return await NirvanaApi.fetch(`/lines`, "GET", true);
}
async function getDmByUserId(otherUserId: string): Promise<Line> {
return await NirvanaApi.fetch(
`/conversations/dm/${otherUserId}`,
"GET",
true
);
return await NirvanaApi.fetch(`/lines/dm/${otherUserId}`, "GET", true);
}
async function createConversation(request: CreateLineRequest): Promise<void> {
return await NirvanaApi.fetch(`/conversations`, "POST", true, request);
async function createLine(
request: CreateLineRequest
): Promise<NirvanaResponse<Line>> {
return await NirvanaApi.fetch(`/lines`, "POST", true, request);
}
export const ApiCalls = {
@@ -104,5 +103,5 @@ export const ApiCalls = {
userSearch,
getUserConversations,
getDmByUserId,
createConversation,
createLine,
};
@@ -1,7 +1,7 @@
import { Avatar, Modal } from "antd";
import { HotKeys, KeyMap } from "react-hotkeys";
import { useCallback, useEffect, useState } from "react";
import { useCreateConvo, useUserSearch } from "../../../controller/index";
import { useCreateLine, useUserSearch } from "../../../controller/index";
import BasicUserRow from "../../../components/User/basicUserDetailsRow";
import { FiSearch } from "react-icons/fi";
@@ -23,7 +23,7 @@ export default function NewLineModal({
const [searchQuery, setSearchQuery] = useState<string>("");
const { refetch, data: searchRes } = useUserSearch(searchQuery);
const { mutateAsync, isError, isLoading } = useCreateConvo();
const { mutateAsync, isLoading } = useCreateLine();
const [lineName, setLineName] = useState<string>("");
@@ -71,6 +71,7 @@ export default function NewLineModal({
);
const handleSubmit = useCallback(async () => {
// TODO: prevent creating one-on-one line if already exists with x person?
// ensure that we don't have a one on one chat already with x person if it's one person selected
// upon success,
@@ -89,7 +90,12 @@ export default function NewLineModal({
selectedPerson._id.toString()
);
await mutateAsync({ lineName, otherMemberIds: selectedMemberIds });
const res = await mutateAsync({
lineName,
otherMemberIds: selectedMemberIds,
});
toast.success("created line!");
// handle close once the new line is created
handleClose();