Collapse messages from same sender to save on vertical space (#61)
This commit is contained in:
@@ -3,6 +3,7 @@ type ChatMessageProps = {
|
|||||||
accentColor: string;
|
accentColor: string;
|
||||||
name: string;
|
name: string;
|
||||||
isSelf: boolean;
|
isSelf: boolean;
|
||||||
|
hideName?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ChatMessage = ({
|
export const ChatMessage = ({
|
||||||
@@ -10,9 +11,11 @@ export const ChatMessage = ({
|
|||||||
message,
|
message,
|
||||||
accentColor,
|
accentColor,
|
||||||
isSelf,
|
isSelf,
|
||||||
|
hideName,
|
||||||
}: ChatMessageProps) => {
|
}: ChatMessageProps) => {
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col gap-1">
|
<div className={`flex flex-col gap-1 ${hideName ? "pt-0" : "pt-6"}`}>
|
||||||
|
{!hideName && (
|
||||||
<div
|
<div
|
||||||
className={`text-${
|
className={`text-${
|
||||||
isSelf ? "gray-700" : accentColor + "-800 text-ts-" + accentColor
|
isSelf ? "gray-700" : accentColor + "-800 text-ts-" + accentColor
|
||||||
@@ -20,6 +23,7 @@ export const ChatMessage = ({
|
|||||||
>
|
>
|
||||||
{name}
|
{name}
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
<div
|
<div
|
||||||
className={`pr-4 text-${
|
className={`pr-4 text-${
|
||||||
isSelf ? "gray-300" : accentColor + "-500"
|
isSelf ? "gray-300" : accentColor + "-500"
|
||||||
|
|||||||
@@ -35,16 +35,22 @@ export const ChatTile = ({ messages, accentColor, onSend }: ChatTileProps) => {
|
|||||||
height: `calc(100% - ${inputHeight}px)`,
|
height: `calc(100% - ${inputHeight}px)`,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="flex flex-col min-h-full justify-end gap-6">
|
<div className="flex flex-col min-h-full justify-end">
|
||||||
{messages.map((message, index) => (
|
{messages.map((message, index, allMsg) => {
|
||||||
|
const hideName =
|
||||||
|
index >= 1 && allMsg[index - 1].name === message.name;
|
||||||
|
|
||||||
|
return (
|
||||||
<ChatMessage
|
<ChatMessage
|
||||||
key={index}
|
key={index}
|
||||||
|
hideName={hideName}
|
||||||
name={message.name}
|
name={message.name}
|
||||||
message={message.message}
|
message={message.message}
|
||||||
isSelf={message.isSelf}
|
isSelf={message.isSelf}
|
||||||
accentColor={accentColor}
|
accentColor={accentColor}
|
||||||
/>
|
/>
|
||||||
))}
|
);
|
||||||
|
})}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ChatMessageInput
|
<ChatMessageInput
|
||||||
|
|||||||
Reference in New Issue
Block a user