Skip to content

Commit 91ccb5c

Browse files
Copilotalexr00
andauthored
Add gear icon to Description label that opens pullRequestDescription setting (#8248)
* Initial plan * Initial plan for adding gear icon to Description label Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com> * Add gear icon to Description label that opens pull request description settings Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com> * Fix keyboard accessibility - use event.type instead of 'in' operator Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com> * Use button element instead of anchor and improve keyboard handling Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com> * Add aria-label and refactor event handler for better code quality Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com> * clean up * tab * Undo css --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com>
1 parent 53315ca commit 91ccb5c

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/github/createPRViewProvider.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,10 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
535535
return this._replyMessage(message, undefined);
536536
}
537537

538+
private async openDescriptionSettings(): Promise<void> {
539+
return vscode.commands.executeCommand('workbench.action.openSettings', 'githubPullRequests.pullRequestDescription');
540+
}
541+
538542
protected override async _onDidReceiveMessage(message: IRequestMessage<any>) {
539543
const result = await super._onDidReceiveMessage(message);
540544
if (result !== this.MESSAGE_UNHANDLED) {
@@ -569,6 +573,9 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
569573
case 'pr.removeLabel':
570574
return this.removeLabel(message);
571575

576+
case 'pr.openDescriptionSettings':
577+
return this.openDescriptionSettings();
578+
572579
default:
573580
return this.MESSAGE_UNHANDLED;
574581
}

webviews/createPullRequestViewNew/app.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import PullRequestContextNew from '../common/createContextNew';
1313
import { ErrorBoundary } from '../common/errorBoundary';
1414
import { LabelCreate } from '../common/label';
1515
import { ContextDropdown } from '../components/contextDropdown';
16-
import { accountIcon, feedbackIcon, gitCompareIcon, milestoneIcon, notebookTemplate, prMergeIcon, projectIcon, sparkleIcon, stopCircleIcon, tagIcon } from '../components/icon';
16+
import { accountIcon, feedbackIcon, gitCompareIcon, milestoneIcon, notebookTemplate, prMergeIcon, projectIcon, settingsIcon, sparkleIcon, stopCircleIcon, tagIcon } from '../components/icon';
1717
import { Avatar } from '../components/user';
1818

1919
type CreateMethod = 'create-draft' | 'create' | 'create-automerge-squash' | 'create-automerge-rebase' | 'create-automerge-merge';
@@ -173,6 +173,10 @@ export function main() {
173173
}
174174
}
175175

176+
function openDescriptionSettings(_event: React.MouseEvent | React.KeyboardEvent): void {
177+
ctx.postMessage({ command: 'pr.openDescriptionSettings' });
178+
}
179+
176180
async function generateTitle(useCopilot?: boolean) {
177181
setGeneratingTitle(true);
178182
await ctx.generateTitle(!!useCopilot);
@@ -337,6 +341,7 @@ export function main() {
337341
<label htmlFor='description' className='input-title'>Description</label>
338342
{ctx.createParams.usingTemplate ?
339343
<a title='Change template' className={`title-action icon-button${isBusy || !ctx.initialized ? ' disabled' : ''}`} onClick={() => changeTemplate()} tabIndex={0}>{notebookTemplate}</a> : null}
344+
<a role='button' title='Open pull request description settings' aria-label='Open pull request description settings' className='icon-button' onClick={openDescriptionSettings} tabIndex={0}>{settingsIcon}</a>
340345
</div>
341346
<div className='group-description'>
342347
<textarea

0 commit comments

Comments
 (0)