chore: initialize project
Deploy monie-web to prod (kaniko) / build-and-deploy (push) Successful in 10m51s

This commit is contained in:
2026-04-12 17:19:08 +03:00
commit 42b3d16853
49 changed files with 11359 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
import type { Message } from '#/db-collections'
export const getAvatarColor = (username: string) => {
const colors = [
'bg-blue-500',
'bg-green-500',
'bg-purple-500',
'bg-pink-500',
'bg-indigo-500',
'bg-red-500',
'bg-yellow-500',
'bg-teal-500',
]
const index = username
.split('')
.reduce((acc, char) => acc + char.charCodeAt(0), 0)
return colors[index % colors.length]
}
export default function Messages({
messages,
user,
}: {
messages: Message[]
user: string
}) {
return (
<>
{messages.map((msg: Message) => (
<div
key={msg.id}
className={`flex ${
msg.user === user ? 'justify-end' : 'justify-start'
}`}
>
<div
className={`flex items-start space-x-3 max-w-xs lg:max-w-md ${
msg.user === user ? 'flex-row-reverse space-x-reverse' : ''
}`}
>
<div
className={`w-8 h-8 rounded-full flex items-center justify-center text-white text-sm font-medium ${getAvatarColor(
msg.user,
)}`}
>
{msg.user.charAt(0).toUpperCase()}
</div>
<div
className={`px-4 py-2 rounded-2xl ${
msg.user === user
? 'bg-blue-500 text-white rounded-br-md'
: 'bg-white text-gray-800 border border-gray-200 rounded-bl-md'
}`}
>
{msg.user !== user && (
<p className="text-xs text-gray-500 mb-1 font-medium">
{msg.user}
</p>
)}
<p className="text-sm">{msg.text}</p>
</div>
</div>
</div>
))}
</>
)
}