mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-20 12:21:13 -05:00
94 lines
3.4 KiB
TypeScript
94 lines
3.4 KiB
TypeScript
import { VSCodeButton, VSCodeLink } from "@vscode/webview-ui-toolkit/react"
|
|
import { ApiConfiguration } from "../../../src/shared/api"
|
|
import { memo } from "react"
|
|
// import VSCodeButtonLink from "./VSCodeButtonLink"
|
|
// import { getOpenRouterAuthUrl } from "./ApiOptions"
|
|
// import { vscode } from "../utils/vscode"
|
|
|
|
interface AnnouncementProps {
|
|
version: string
|
|
hideAnnouncement: () => void
|
|
apiConfiguration?: ApiConfiguration
|
|
vscodeUriScheme?: string
|
|
}
|
|
/*
|
|
You must update the latestAnnouncementId in ClaudeDevProvider for new announcements to show to users. This new id will be compared with whats in state for the 'last announcement shown', and if it's different then the announcement will render. As soon as an announcement is shown, the id will be updated in state. This ensures that announcements are not shown more than once, even if the user doesn't close it themselves.
|
|
*/
|
|
const Announcement = ({ version, hideAnnouncement, apiConfiguration, vscodeUriScheme }: AnnouncementProps) => {
|
|
return (
|
|
<div
|
|
style={{
|
|
backgroundColor: "var(--vscode-editor-inactiveSelectionBackground)",
|
|
borderRadius: "3px",
|
|
padding: "12px 16px",
|
|
margin: "5px 15px 5px 15px",
|
|
position: "relative",
|
|
}}>
|
|
<VSCodeButton
|
|
appearance="icon"
|
|
onClick={hideAnnouncement}
|
|
style={{ position: "absolute", top: "8px", right: "8px" }}>
|
|
<span className="codicon codicon-close"></span>
|
|
</VSCodeButton>
|
|
<h3 style={{ margin: "0 0 8px" }}>
|
|
🎉{" "}New in v{version}
|
|
</h3>
|
|
<ul style={{ margin: "0 0 8px", paddingLeft: "12px" }}>
|
|
{/* <li>
|
|
OpenRouter now supports prompt caching! They also have much higher rate limits than other providers,
|
|
so I recommend trying them out.
|
|
<br />
|
|
{!apiConfiguration?.openRouterApiKey && (
|
|
<VSCodeButtonLink
|
|
href={getOpenRouterAuthUrl(vscodeUriScheme)}
|
|
style={{
|
|
transform: "scale(0.85)",
|
|
transformOrigin: "left center",
|
|
margin: "4px -30px 2px 0",
|
|
}}>
|
|
Get OpenRouter API Key
|
|
</VSCodeButtonLink>
|
|
)}
|
|
{apiConfiguration?.openRouterApiKey && apiConfiguration?.apiProvider !== "openrouter" && (
|
|
<VSCodeButton
|
|
onClick={() => {
|
|
vscode.postMessage({
|
|
type: "apiConfiguration",
|
|
apiConfiguration: { ...apiConfiguration, apiProvider: "openrouter" },
|
|
})
|
|
}}
|
|
style={{
|
|
transform: "scale(0.85)",
|
|
transformOrigin: "left center",
|
|
margin: "4px -30px 2px 0",
|
|
}}>
|
|
Switch to OpenRouter
|
|
</VSCodeButton>
|
|
)}
|
|
</li> */}
|
|
<li>
|
|
<b>Edit Claude's changes before accepting!</b> When he creates or edits a file, you can modify his
|
|
changes directly in the right side of the diff view (+ hover over the 'Revert Block' arrow button in
|
|
the center to undo "<code>{"// rest of code here"}</code>" shenanigans)
|
|
</li>
|
|
<li>
|
|
New <code>search_files</code> tool that lets Claude perform regex searches in your project, letting
|
|
him refactor code, address TODOs and FIXMEs, remove dead code, and more!
|
|
</li>
|
|
<li>
|
|
When Claude runs commands, you can now type directly in the terminal (+ support for Python
|
|
environments)
|
|
</li>
|
|
</ul>
|
|
<p style={{ margin: "0" }}>
|
|
Follow me for more updates!{" "}
|
|
<VSCodeLink href="https://x.com/sdrzn" style={{ display: "inline" }}>
|
|
@sdrzn
|
|
</VSCodeLink>
|
|
</p>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default memo(Announcement)
|