Files
big-agi/components/util/OpenInReplit.tsx
T
2023-04-18 00:45:49 -07:00

35 lines
913 B
TypeScript

import { Button, Tooltip } from '@mui/joy';
interface CodeBlockProps {
codeBlock: {
code: string;
language?: string;
};
}
export function OpenInReplit({ codeBlock }: CodeBlockProps): JSX.Element {
const { code, language } = codeBlock;
const replitLanguageMap: { [key: string]: string } = {
python: 'python3',
csharp: 'csharp',
java: 'java',
};
const handleOpenInReplit = () => {
const replitLanguage = replitLanguageMap[language || 'python'];
const url = new URL(`https://replit.com/languages/${replitLanguage}`);
url.searchParams.set('code', code);
url.searchParams.set('title', `GPT ${new Date().toISOString()}`);
window.open(url.toString(), '_blank');
};
return (
<Tooltip title='Open in Replit' variant='solid'>
<Button variant='outlined' color='neutral' onClick={handleOpenInReplit}>
Replit
</Button>
</Tooltip>
);
}