* feat: add initial VS Code extension plan and implementation tasks * feat(vscode): added initial version of an Openchamber VSCode extension * feat(vscode): enhance VS Code extension with theme integration and session management * feat(vscode): implement connection status handling and overlay in VSCode layout * feat: move extension to secondary sidebar * chore: upgrade @opencode-ai/sdk to 1.0.150 * vscode: editor bridge, file picker, click-to-open in tool parts * vscode: layout session lifecycle, theme sync, typography overrides * ui: compact mode for vscode, model search, autocomplete width fixes * perf: scroll force flag, raf placeholder, git polling backoff * ui: tool output styling, markdown code block fix, gitignore * refactor: update typography handling for VSCode runtime, remove unused styles * docs: update README with VS Code extension details and add extension image * docs: update changelog with new features and performance improvements
29 lines
983 B
TypeScript
29 lines
983 B
TypeScript
import React from 'react';
|
|
|
|
interface VSCodeHeaderProps {
|
|
title: string;
|
|
showBack?: boolean;
|
|
onBack?: () => void;
|
|
actions?: React.ReactNode;
|
|
}
|
|
|
|
export function VSCodeHeader({ title, showBack, onBack, actions }: VSCodeHeaderProps) {
|
|
return (
|
|
<div className="flex items-center gap-2 px-3 py-2 border-b border-border bg-background/80 backdrop-blur-sm sticky top-0 z-10">
|
|
{showBack && (
|
|
<button
|
|
onClick={onBack}
|
|
className="p-1 -ml-1 rounded hover:bg-muted transition-colors"
|
|
aria-label="Go back"
|
|
>
|
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
|
|
<path d="M11 2L5 8l6 6" stroke="currentColor" strokeWidth="1.5" fill="none" strokeLinecap="round" strokeLinejoin="round"/>
|
|
</svg>
|
|
</button>
|
|
)}
|
|
<h1 className="flex-1 text-sm font-medium truncate">{title}</h1>
|
|
{actions && <div className="flex items-center gap-1">{actions}</div>}
|
|
</div>
|
|
);
|
|
}
|