Add messages and events platform/language info
This commit is contained in:
parent
1f86b7d72e
commit
4db92bf296
@ -32,7 +32,6 @@ const CommitButton = ({ code }) => {
|
||||
};
|
||||
|
||||
const CodeCopyButton = ({ code }) => {
|
||||
const {config} = useMst();
|
||||
return (
|
||||
<CopyButton value={code} timeout={2000}>
|
||||
{({ copied, copy }) => (
|
||||
@ -47,15 +46,14 @@ const CodeCopyButton = ({ code }) => {
|
||||
);
|
||||
};
|
||||
|
||||
const DiffButton = ({ code }) => {
|
||||
const {config} = useMst();
|
||||
const DiffButton = ({ code, language, platform }) => {
|
||||
const handleClick = () => {
|
||||
const e = 'show_diff';
|
||||
messageUtil.sendMessage({
|
||||
command: e,
|
||||
content: code
|
||||
});
|
||||
APIUtil.createEvent({name: e, value: e})
|
||||
APIUtil.createEvent({name: e, value: e, language: language, ide: platform})
|
||||
};
|
||||
return (
|
||||
<IconButton label='View Diff' onClick={handleClick}>
|
||||
@ -64,15 +62,14 @@ const DiffButton = ({ code }) => {
|
||||
);
|
||||
};
|
||||
|
||||
const CodeApplyButton = ({ code }) => {
|
||||
const {config} = useMst();
|
||||
const CodeApplyButton = ({ code, language, platform }) => {
|
||||
const handleClick = () => {
|
||||
const e = 'code_apply';
|
||||
messageUtil.sendMessage({
|
||||
command: e,
|
||||
content: code
|
||||
});
|
||||
APIUtil.createEvent({name: e, value: e})
|
||||
APIUtil.createEvent({name: e, value: e, language: language, ide: platform})
|
||||
};
|
||||
return (
|
||||
<IconButton label='Insert Code' onClick={handleClick}>
|
||||
@ -81,15 +78,14 @@ const CodeApplyButton = ({ code }) => {
|
||||
);
|
||||
};
|
||||
|
||||
const FileApplyButton = ({ code }) => {
|
||||
const {config} = useMst();
|
||||
const FileApplyButton = ({ code, language, platform }) => {
|
||||
const handleClick = () => {
|
||||
const e = 'code_file_apply';
|
||||
messageUtil.sendMessage({
|
||||
command: e,
|
||||
content: code
|
||||
});
|
||||
APIUtil.createEvent({name: e, value: e})
|
||||
APIUtil.createEvent({name: e, value: e, language: language, ide: platform})
|
||||
};
|
||||
return (
|
||||
<IconButton label='Replace File' onClick={handleClick}>
|
||||
@ -99,8 +95,7 @@ const FileApplyButton = ({ code }) => {
|
||||
};
|
||||
|
||||
// Add a new button to create new file
|
||||
const NewFileButton = ({ language,code }) => {
|
||||
const {config} = useMst();
|
||||
const NewFileButton = ({ code, language, platform }) => {
|
||||
const handleClick = () => {
|
||||
const e = 'code_new_file';
|
||||
messageUtil.sendMessage({
|
||||
@ -108,7 +103,7 @@ const NewFileButton = ({ language,code }) => {
|
||||
language: language,
|
||||
content: code
|
||||
});
|
||||
APIUtil.createEvent({name: e, value: e})
|
||||
APIUtil.createEvent({name: e, value: e, language: language, ide: platform})
|
||||
};
|
||||
return (
|
||||
<IconButton label='Create New File' onClick={handleClick}>
|
||||
@ -118,7 +113,7 @@ const NewFileButton = ({ language,code }) => {
|
||||
};
|
||||
|
||||
// Similar changes can be made to DiffButton, CodeApplyButton, FileApplyButton, and CodeCopyButton
|
||||
const CodeButtons = ({ language, code }) => (
|
||||
const CodeButtons = ({ platform, language, code }) => (
|
||||
<Flex
|
||||
gap="5px"
|
||||
justify="flex-start"
|
||||
@ -132,10 +127,10 @@ const CodeButtons = ({ language, code }) => (
|
||||
? <CommitButton code={code} />
|
||||
: (
|
||||
<>
|
||||
<DiffButton code={code} />
|
||||
<CodeApplyButton code={code} />
|
||||
<FileApplyButton code={code} />
|
||||
<NewFileButton code={code} language={language} />
|
||||
<DiffButton code={code} language={language} platform={platform} />
|
||||
<CodeApplyButton code={code} language={language} platform={platform} />
|
||||
<FileApplyButton code={code} language={language} platform={platform} />
|
||||
<NewFileButton code={code} language={language} platform={platform} />
|
||||
</>
|
||||
)}
|
||||
</Flex>
|
||||
|
@ -108,11 +108,11 @@ const MessageMarkdown = observer((props: MessageMarkdownProps) => {
|
||||
});
|
||||
};
|
||||
|
||||
const handleCodeCopy = (event) => {
|
||||
const handleCodeCopy = (platform, language) => {
|
||||
const selection = window.getSelection()?.toString();
|
||||
console.log("Copied: ", selection);
|
||||
const e = 'manual_copy';
|
||||
APIUtil.createEvent({name: e, value: selection})
|
||||
APIUtil.createEvent({name: e, value: selection, language: language, ide: platform})
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
@ -259,18 +259,18 @@ const MessageMarkdown = observer((props: MessageMarkdownProps) => {
|
||||
code({ node, inline, className, children, index, ...props }) {
|
||||
const match = /language-(\w+)/.exec(className || "");
|
||||
const value = String(children).replace(/\n$/, "");
|
||||
let lanugage = match && match[1];
|
||||
let language = match && match[1];
|
||||
|
||||
if (!lanugage) {
|
||||
lanugage = "plaintext";
|
||||
if (!language) {
|
||||
language = "plaintext";
|
||||
}
|
||||
|
||||
let wrapLongLines = false;
|
||||
if (lanugage === "markdown" || lanugage === "text") {
|
||||
if (language === "markdown" || language === "text") {
|
||||
wrapLongLines = true;
|
||||
}
|
||||
|
||||
if (lanugage === "step" || lanugage === "Step") {
|
||||
if (language === "step" || language === "Step") {
|
||||
const status =
|
||||
activeStep &&
|
||||
Number(index) === codes.length &&
|
||||
@ -278,13 +278,13 @@ const MessageMarkdown = observer((props: MessageMarkdownProps) => {
|
||||
? "running"
|
||||
: "done";
|
||||
return (
|
||||
<Step language={lanugage} status={status} index={index}>
|
||||
<Step language={language} status={status} index={index}>
|
||||
{value}
|
||||
</Step>
|
||||
);
|
||||
}
|
||||
|
||||
if (lanugage === "chatmark" || lanugage === "ChatMark") {
|
||||
if (language === "chatmark" || language === "ChatMark") {
|
||||
const chatmarkValue = chatmarkProps[`chatmark-${index}`];
|
||||
return (
|
||||
<ChatMark messageDone={messageDone} {...chatmarkValue}>
|
||||
@ -293,17 +293,19 @@ const MessageMarkdown = observer((props: MessageMarkdownProps) => {
|
||||
);
|
||||
}
|
||||
|
||||
if ((lanugage === "yaml" || lanugage === "YAML") && props.hidden) {
|
||||
if ((language === "yaml" || language === "YAML") && props.hidden) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
return !inline && lanugage ? (
|
||||
const platform = process.env.platform
|
||||
|
||||
return !inline && language ? (
|
||||
<div
|
||||
style={{ position: "relative" }}
|
||||
className={classes.codeOverride}
|
||||
>
|
||||
<LanguageCorner language={lanugage} />
|
||||
<CodeButtons language={lanugage} code={value} />
|
||||
<LanguageCorner language={language} />
|
||||
<CodeButtons platform={platform} language={language} code={value} />
|
||||
{/* <SyntaxHighlighter
|
||||
{...props}
|
||||
language={lanugage}
|
||||
@ -317,7 +319,7 @@ const MessageMarkdown = observer((props: MessageMarkdownProps) => {
|
||||
<Highlight
|
||||
code={value}
|
||||
theme={themes.okaidia}
|
||||
language={lanugage}
|
||||
language={language}
|
||||
>
|
||||
{({
|
||||
className,
|
||||
@ -336,7 +338,7 @@ const MessageMarkdown = observer((props: MessageMarkdownProps) => {
|
||||
whiteSpace: "pre",
|
||||
...props.style,
|
||||
}}
|
||||
onCopy={handleCodeCopy}
|
||||
onCopy={() => handleCodeCopy(platform, language)}
|
||||
{...props}
|
||||
>
|
||||
{tokens.map((line, i) => (
|
||||
|
@ -180,7 +180,7 @@ export const ChatStore = types
|
||||
parent_hash: lastNonEmptyHash(),
|
||||
model: chatModel,
|
||||
});
|
||||
APIUtil.createMessage({content: text, model: chatModel});
|
||||
APIUtil.createMessage({content: text, model: chatModel, ide: process.env.platform});
|
||||
};
|
||||
|
||||
const helpMessage = (originalMessage = false) => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user