diff --git a/src/App.jsx b/src/App.jsx index 3df22ab915..32b132091e 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import Messages from './components/Main/Messages'; +import Messages from './components/Messages'; import Landing from './components/Main/Landing'; import TextChat from './components/Main/TextChat'; import Nav from './components/Nav'; diff --git a/src/components/Messages/CodeWrapper.jsx b/src/components/Messages/CodeWrapper.jsx new file mode 100644 index 0000000000..3dc1217f20 --- /dev/null +++ b/src/components/Messages/CodeWrapper.jsx @@ -0,0 +1,18 @@ +import React from 'react'; + +export default function CodeWrapper({ text }) { + const matchRegex = /(`[^`]+?`)/g; + const parts = text.split(matchRegex); + // console.log('parts', parts); + + // map over the parts and wrap any text between tildes with tags + const codeParts = parts.map((part, index) => { + if (part.match(matchRegex)) { + return {part.slice(1, -1)}; + } else { + return part; + } + }); + + return <>{codeParts}; // return the wrapped text +} \ No newline at end of file diff --git a/src/components/main/Message.jsx b/src/components/Messages/Message.jsx similarity index 83% rename from src/components/main/Message.jsx rename to src/components/Messages/Message.jsx index 13aee45d30..a749be133a 100644 --- a/src/components/main/Message.jsx +++ b/src/components/Messages/Message.jsx @@ -1,4 +1,5 @@ import React, { useState, useEffect } from 'react'; +import CodeWrapper from './CodeWrapper'; import { useSelector } from 'react-redux'; import GPTIcon from '../svg/GPTIcon'; import BingIcon from '../svg/BingIcon'; @@ -52,6 +53,8 @@ export default function Message({ ); } + const wrapText = (text) => ; + return (
- {text} + {wrapText(text)}
) : ( - - {text} - {blinker && } - +
+
+ {wrapText(text)} + {blinker && } +
+
)} diff --git a/src/components/main/ScrollToBottom.jsx b/src/components/Messages/ScrollToBottom.jsx similarity index 100% rename from src/components/main/ScrollToBottom.jsx rename to src/components/Messages/ScrollToBottom.jsx diff --git a/src/components/main/Messages.jsx b/src/components/Messages/index.jsx similarity index 100% rename from src/components/main/Messages.jsx rename to src/components/Messages/index.jsx diff --git a/src/components/main/TextChat.jsx b/src/components/main/TextChat.jsx index 2e4c9072a2..58b37e6d2e 100644 --- a/src/components/main/TextChat.jsx +++ b/src/components/main/TextChat.jsx @@ -160,7 +160,7 @@ export default function TextChat({ messages }) { onKeyDown={handleKeyDown} onChange={changeHandler} placeholder="" - className="m-0 h-auto max-h-52 resize-none overflow-auto border-0 bg-transparent p-0 pl-9 pr-9 leading-6 focus:outline-none focus:ring-0 focus-visible:ring-0 dark:bg-transparent md:pl-8" + className="m-0 h-auto max-h-52 resize-none overflow-auto border-0 bg-transparent p-0 pl-9 pr-8 leading-6 focus:outline-none focus:ring-0 focus-visible:ring-0 dark:bg-transparent md:pl-8" /> diff --git a/src/style.css b/src/style.css index 99e7d8c59f..56af6f81e1 100644 --- a/src/style.css +++ b/src/style.css @@ -6,6 +6,28 @@ box-sizing: border-box; outline: 1px solid limegreen !important; } */ +.prose :where(code):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-code); + font-size: .875em; + font-weight: 600; +} + +.prose :where(code):not(:where([class~="not-prose"] *))::before { + content: "`"; +} + +.prose :where(code):not(:where([class~="not-prose"] *))::after { + content: "`"; +} + +code, pre { + font-family: Söhne Mono,Monaco,Andale Mono,Ubuntu Mono,monospace !important; +} + +code, kbd, pre, samp { + font-family: Söhne Mono,Monaco,Andale Mono,Ubuntu Mono,monospace; + font-size: 1em; +} .scroll-down-enter { opacity: 0;