diff --git a/src/components/Members/Avatar.tsx b/src/components/Members/Avatar.tsx new file mode 100644 index 0000000..618e22c --- /dev/null +++ b/src/components/Members/Avatar.tsx @@ -0,0 +1,14 @@ +import type { UsersResponse } from "../../types/pb_types"; + +export default function Avatar({author}: {author: UsersResponse}) { + console.log(author); + if (!author) return null; + const avatarUrl = import.meta.env.PUBLIC_PB_API + `/api/files/${author.collectionId}/${author.id}/${author.avatar}?thumb=100x100`; + + return ( +
+ Profile +

{author.firstname} {author.lastname}

+
+ ) +} diff --git a/src/components/Members/Chat/Message.tsx b/src/components/Members/Chat/Message.tsx new file mode 100644 index 0000000..e575061 --- /dev/null +++ b/src/components/Members/Chat/Message.tsx @@ -0,0 +1,20 @@ +import type { MessagesResponse, UsersResponse } from "../../../types/pb_types"; +import Avatar from "../Avatar"; + +export type MessageExpand = MessagesResponse<{ + author: UsersResponse; +}>; + + +export default function Message({ message }: { message: MessageExpand }) { + console.log(message); + + return ( +
+ {message.expand && } +
+

{message.content}

+
+
+ ) +} diff --git a/src/components/Members/Home.tsx b/src/components/Members/Home.tsx index c48fba7..51f329b 100644 --- a/src/components/Members/Home.tsx +++ b/src/components/Members/Home.tsx @@ -1,8 +1,30 @@ import LeftPanel from "./LeftPanel" +import { Pb } from "../EspaceMembres" +import { useContext, useEffect, useState } from "preact/hooks" +import Message from "./Chat/Message" +import type { MessageExpand } from "./Chat/Message" function Chat() { + const pb = useContext(Pb); + const [messages, setMessages] = useState([]); + + useEffect(() => { + async function getMessages() { + const data = await pb.collection('messages').getFullList({ + expand: 'author,users(avatar)' + }); + if (!data) return; + setMessages(data); + } + + getMessages(); + }, [pb]); + return (
+ {messages.map((message) => ( + + ))}
) } diff --git a/src/components/Members/LeftPanel/User.tsx b/src/components/Members/LeftPanel/User.tsx index 1c32d1b..5c270c2 100644 --- a/src/components/Members/LeftPanel/User.tsx +++ b/src/components/Members/LeftPanel/User.tsx @@ -1,12 +1,12 @@ import { useContext } from "preact/hooks"; -import { Pb, pbUrl } from "../../EspaceMembres" +import { Pb } from "../../EspaceMembres" import type { UsersRecord } from "../../../types/pb_types"; export default function User() { const pb = useContext(Pb); const {firstname, lastname, avatar}: UsersRecord = pb.authStore.model || {}; const {id} = pb.authStore.model || {}; - const avatarUrl = pbUrl + `/api/files/_pb_users_auth_/${id}/${avatar}?thumb=100x100`; + const avatarUrl = import.meta.env.PUBLIC_PB_API + `/api/files/_pb_users_auth_/${id}/${avatar}?thumb=100x100`; return (