Implemented cryptomining, although its extremely bad optimized.

This commit is contained in:
2025-12-03 18:20:02 +01:00
commit c2d6d0b096
308 changed files with 56964 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
import { useMemo } from 'react';
import CodeBlock from './CodeBlock';
interface MessageContentProps {
content: string;
isLoading?: boolean;
}
const MessageContent = ({ content, isLoading }: MessageContentProps) => {
const parts = useMemo(() => {
// Parse content for code blocks
const codeBlockRegex = /```(\w*)\n?([\s\S]*?)```/g;
const result: { type: 'text' | 'code'; content: string; language?: string }[] = [];
let lastIndex = 0;
let match;
while ((match = codeBlockRegex.exec(content)) !== null) {
// Add text before code block
if (match.index > lastIndex) {
const textBefore = content.slice(lastIndex, match.index);
if (textBefore.trim()) {
result.push({ type: 'text', content: textBefore });
}
}
// Add code block
result.push({
type: 'code',
language: match[1] || 'text',
content: match[2].trim(),
});
lastIndex = match.index + match[0].length;
}
// Add remaining text
if (lastIndex < content.length) {
const remaining = content.slice(lastIndex);
if (remaining.trim()) {
result.push({ type: 'text', content: remaining });
}
}
// If no code blocks found, return entire content as text
if (result.length === 0 && content) {
result.push({ type: 'text', content });
}
return result;
}, [content]);
return (
<div className="font-pixel text-sm text-primary">
{parts.map((part, index) => (
<div key={index}>
{part.type === 'code' ? (
<CodeBlock code={part.content} language={part.language || 'text'} />
) : (
<p className="whitespace-pre-wrap break-words">{part.content}</p>
)}
</div>
))}
{isLoading && content === '' && (
<span className="animate-pulse"></span>
)}
</div>
);
};
export default MessageContent;