25 lines
756 B
TypeScript
25 lines
756 B
TypeScript
import { LoaderFunctionArgs } from "react-router"
|
|
import getClient from "../../getClient"
|
|
import { Chat } from "lingchair-client-protocol"
|
|
import ClientCache from "../../ClientCache"
|
|
|
|
export default async function UserOrChatInfoDialogLoader({ params, request }: LoaderFunctionArgs) {
|
|
const searchParams = new URL(request.url).searchParams
|
|
|
|
let id = searchParams.get('id')
|
|
let chat: Chat
|
|
if (params.type == 'user')
|
|
chat = await Chat.getOrCreatePrivateChatOrThrow(getClient(), id!)
|
|
else
|
|
chat = await Chat.getByIdOrThrow(getClient(), id!)
|
|
|
|
if (chat.getType() == 'private')
|
|
id = await chat.getTheOtherUserIdOrThrow()
|
|
|
|
return {
|
|
mySelf: await ClientCache.getMySelf(),
|
|
chat,
|
|
id,
|
|
}
|
|
}
|