Skip to content

Commit 423eb9a

Browse files
committed
Add setup for colors on tokens
1 parent addcc42 commit 423eb9a

File tree

4 files changed

+43
-13
lines changed

4 files changed

+43
-13
lines changed

components/CodeEditor.tsx

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@ import Editor from 'react-simple-code-editor';
33
import { highlight, Grammar } from 'prismjs';
44
import 'prismjs/themes/prism-dark.css';
55
import 'prismjs/components/prism-typescript';
6+
import 'prismjs/components/prism-jsx';
7+
import 'prismjs/components/prism-tsx';
8+
import 'prismjs/components/prism-markdown';
9+
import 'prismjs/components/prism-python';
10+
import 'prismjs/components/prism-java';
11+
import 'prismjs/components/prism-c';
12+
import 'prismjs/components/prism-scss';
13+
import 'prismjs/components/prism-rust';
614

715
type CodeEditorProps = {
816
code: string;

components/Output.tsx

+30-13
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,53 @@
11
import toast from 'react-hot-toast';
2+
import { highlight, Grammar } from 'prismjs';
3+
import Editor from 'react-simple-code-editor';
24
import { DuplicateIcon } from '@heroicons/react/outline';
35

46
type OutputProps = {
57
output: string;
68
isLoading: boolean;
9+
languageGrammar: Grammar;
710
}
811

912
function Output(props: OutputProps) {
10-
const { output, isLoading } = props;
13+
const { output, isLoading, languageGrammar } = props;
1114

1215
const copyToClipboard = () => {
1316
navigator.clipboard.writeText(output);
1417
toast.success('Copied to clipboard');
1518
};
1619

1720
return (
18-
<div className="relative bg-gray-100 border-2 border-gray-200 rounded-lg text-gray-700 p-4 pb-10" style={{ minHeight: '12rem' }}>
19-
<p className="whitespace-pre-line text-sm">{output}</p>
20-
{
21-
output && (
21+
<div className="relative">
22+
<Editor
23+
value={output}
24+
onValueChange={() => {}}
25+
highlight={(codeToBeHighlighted) => highlight(
26+
codeToBeHighlighted, languageGrammar, 'TypeScript',
27+
)}
28+
padding={12}
29+
disabled
30+
textareaId="codeArea"
31+
className="bg-gray-100 output border-2 border-gray-200 rounded-lg p-4 pb-10 text-sm"
32+
style={{
33+
boxSizing: 'border-box',
34+
fontFamily: '"Dank Mono", "Fira Code", monospace',
35+
minHeight: '12rem',
36+
color: '#0D935B !important',
37+
}}
38+
/>
39+
{output && (
2240
<button className="absolute right-3 bottom-3" type="button" onClick={copyToClipboard}>
2341
<DuplicateIcon className="h-6 w-6 text-gray-600 hover:text-gray-400" />
2442
</button>
25-
)
26-
}
43+
)}
2744
{isLoading && (
28-
<div className="absolute inset-0 flex items-center justify-center">
29-
<svg className="animate-spin -ml-1 mr-3 h-5 w-5 text-gray-800" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
30-
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4" />
31-
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" />
32-
</svg>
33-
</div>
45+
<div className="absolute inset-0 flex items-center justify-center">
46+
<svg className="animate-spin -ml-1 mr-3 h-5 w-5 text-gray-800" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
47+
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4" />
48+
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" />
49+
</svg>
50+
</div>
3451
)}
3552
</div>
3653
);

pages/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ export default function Example() {
222222
<Output
223223
output={outputDisplay}
224224
isLoading={isGenerating}
225+
languageGrammar={selectedLanguage.grammar}
225226
/>
226227
</div>
227228
</div>

styles/global.css

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ textarea {
3636
font-weight: 100;
3737
}
3838

39+
.output .token {
40+
color: #0D935B !important;
41+
}
42+
3943

4044
.gradient {
4145
background: linear-gradient(270deg, #0d935b, #28946e);

0 commit comments

Comments
 (0)