plumb commit info
This commit is contained in:
parent
1344d83be6
commit
9070e954d3
|
|
@ -24,6 +24,9 @@ import type { StackFrame } from '@protocol/channels';
|
||||||
import { CopyToClipboardTextButton } from './copyToClipboard';
|
import { CopyToClipboardTextButton } from './copyToClipboard';
|
||||||
import { attachmentURL } from './attachmentsTab';
|
import { attachmentURL } from './attachmentsTab';
|
||||||
import { fixTestPrompt } from '@web/components/prompts';
|
import { fixTestPrompt } from '@web/components/prompts';
|
||||||
|
import type { GitCommitInfo } from '@testIsomorphic/types';
|
||||||
|
|
||||||
|
export const GitCommitInfoContext = React.createContext<GitCommitInfo | undefined>(undefined);
|
||||||
|
|
||||||
const PromptButton: React.FC<{
|
const PromptButton: React.FC<{
|
||||||
error: string;
|
error: string;
|
||||||
|
|
@ -44,7 +47,9 @@ const PromptButton: React.FC<{
|
||||||
}
|
}
|
||||||
}, [actions]);
|
}, [actions]);
|
||||||
|
|
||||||
const prompt = React.useMemo(() => fixTestPrompt(error, undefined, pageSnapshot), [error, pageSnapshot]);
|
const gitCommitInfo = React.useContext(GitCommitInfoContext);
|
||||||
|
console.log({ gitCommitInfo })
|
||||||
|
const prompt = React.useMemo(() => fixTestPrompt(error, gitCommitInfo?.['pull.diff'] ?? gitCommitInfo?.['revision.diff'], pageSnapshot), [error, gitCommitInfo, pageSnapshot]);
|
||||||
|
|
||||||
return <CopyToClipboardTextButton value={prompt} description='Fix with AI' copiedDescription={<>Copied <span className='codicon codicon-copy' style={{ marginLeft: '5px' }}/></>} style={{ width: '90px', justifyContent: 'center' }} />;
|
return <CopyToClipboardTextButton value={prompt} description='Fix with AI' copiedDescription={<>Copied <span className='codicon codicon-copy' style={{ marginLeft: '5px' }}/></>} style={{ width: '90px', justifyContent: 'center' }} />;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ import { TestListView } from './uiModeTestListView';
|
||||||
import { TraceView } from './uiModeTraceView';
|
import { TraceView } from './uiModeTraceView';
|
||||||
import { SettingsView } from './settingsView';
|
import { SettingsView } from './settingsView';
|
||||||
import { DefaultSettingsView } from './defaultSettingsView';
|
import { DefaultSettingsView } from './defaultSettingsView';
|
||||||
|
import type { GitCommitInfo } from '@testIsomorphic/types';
|
||||||
|
import { GitCommitInfoContext } from './errorsTab';
|
||||||
|
|
||||||
let xtermSize = { cols: 80, rows: 24 };
|
let xtermSize = { cols: 80, rows: 24 };
|
||||||
const xtermDataSource: XtermDataSource = {
|
const xtermDataSource: XtermDataSource = {
|
||||||
|
|
@ -397,6 +399,8 @@ export const UIModeView: React.FC<{}> = ({
|
||||||
});
|
});
|
||||||
}, [closeInstallDialog, testServerConnection]);
|
}, [closeInstallDialog, testServerConnection]);
|
||||||
|
|
||||||
|
const gitCommitInfo = React.useMemo(() => testModel?.config.metadata['git.commit.info'] as GitCommitInfo | undefined, [testModel]);
|
||||||
|
|
||||||
return <div className='vbox ui-mode'>
|
return <div className='vbox ui-mode'>
|
||||||
{!hasBrowsers && <dialog ref={dialogRef}>
|
{!hasBrowsers && <dialog ref={dialogRef}>
|
||||||
<div className='title'><span className='codicon codicon-lightbulb'></span>Install browsers</div>
|
<div className='title'><span className='codicon codicon-lightbulb'></span>Install browsers</div>
|
||||||
|
|
@ -430,13 +434,15 @@ export const UIModeView: React.FC<{}> = ({
|
||||||
<XtermWrapper source={xtermDataSource}></XtermWrapper>
|
<XtermWrapper source={xtermDataSource}></XtermWrapper>
|
||||||
</div>
|
</div>
|
||||||
<div className={clsx('vbox', isShowingOutput && 'hidden')}>
|
<div className={clsx('vbox', isShowingOutput && 'hidden')}>
|
||||||
<TraceView
|
<GitCommitInfoContext.Provider value={gitCommitInfo}>
|
||||||
pathSeparator={queryParams.pathSeparator}
|
<TraceView
|
||||||
item={selectedItem}
|
pathSeparator={queryParams.pathSeparator}
|
||||||
rootDir={testModel?.config?.rootDir}
|
item={selectedItem}
|
||||||
revealSource={revealSource}
|
rootDir={testModel?.config?.rootDir}
|
||||||
onOpenExternally={location => testServerConnection?.openNoReply({ location: { file: location.file, line: location.line, column: location.column } })}
|
revealSource={revealSource}
|
||||||
/>
|
onOpenExternally={location => testServerConnection?.openNoReply({ location: { file: location.file, line: location.line, column: location.column } })}
|
||||||
|
/>
|
||||||
|
</GitCommitInfoContext.Provider>
|
||||||
</div>
|
</div>
|
||||||
</div>}
|
</div>}
|
||||||
sidebar={<div className='vbox ui-mode-sidebar'>
|
sidebar={<div className='vbox ui-mode-sidebar'>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue