Skip to content

Commit 3896154

Browse files
committed
Refactor and rename code bases and make some stylistic changes
1 parent 7882d05 commit 3896154

9 files changed

+71
-561
lines changed

src/CodeSnippetDisplay.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ import {
9292
sasIcon,
9393
} from './CodeSnippetLanguages';
9494
import { ICodeSnippetEditorMetadata } from './CodeSnippetEditor';
95+
import { showMessage } from './CodeSnippetMessage';
9596

9697
/**
9798
* The CSS class added to code snippet widget.
@@ -1289,10 +1290,8 @@ export class CodeSnippetDisplay extends React.Component<
12891290
title: 'Insert, copy, edit, and delete',
12901291
icon: moreOptionsIcon,
12911292
onClick: (event: React.MouseEvent<HTMLElement, MouseEvent>): void => {
1292-
console.log('three dots clicked');
12931293
showMoreOptions({
12941294
body: new OptionsHandler(this, codeSnippet),
1295-
// buttons: [],
12961295
});
12971296
this._setOptionsPosition(event);
12981297
},
@@ -1316,7 +1315,6 @@ export class CodeSnippetDisplay extends React.Component<
13161315
event.preventDefault();
13171316
showMoreOptions({
13181317
body: new OptionsHandler(this, codeSnippet),
1319-
// buttons: [],
13201318
});
13211319
this._setOptionsPosition(event);
13221320
}}
@@ -1518,6 +1516,7 @@ export class CodeSnippetDisplay extends React.Component<
15181516
format: 'text',
15191517
content: JSON.stringify(codeSnippet),
15201518
});
1519+
showMessage('download');
15211520
}
15221521
});
15231522
}
@@ -1549,7 +1548,7 @@ export class CodeSnippetDisplay extends React.Component<
15491548
copySnip.textContent = 'Copy snippet to clipboard';
15501549
copySnip.onclick = (): void => {
15511550
Clipboard.copyToSystem(codeSnippet.code.join('\n'));
1552-
alert('saved to clipboard');
1551+
showMessage('copy');
15531552
this.removeOptionsNode();
15541553
};
15551554
const editSnip = document.createElement('div');

src/CodeSnippetEditor.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import { CodeSnippetService } from './CodeSnippetService';
3232
import { CodeSnippetWidget } from './CodeSnippetWidget';
3333
import { SUPPORTED_LANGUAGES } from './CodeSnippetLanguages';
3434
import { CodeSnippetEditorTags } from './CodeSnippetEditorTags';
35-
import { showMessage } from './CodeSnippetConfirmMessage';
35+
import { showMessage } from './CodeSnippetMessage';
3636
import { validateInputs, saveOverWriteFile } from './CodeSnippetUtilities';
3737

3838
/**
@@ -393,7 +393,7 @@ export class CodeSnippetEditor extends ReactWidget {
393393
return false;
394394
}
395395
});
396-
showMessage();
396+
showMessage('confirm');
397397
}
398398
}
399399
// modify existing snippet

src/CodeSnippetInputDialog.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { Widget } from '@lumino/widgets';
99
import { Message } from '@lumino/messaging';
1010

1111
import { ICodeSnippet, CodeSnippetService } from './CodeSnippetService';
12-
import { showMessage } from './CodeSnippetConfirmMessage';
12+
import { showMessage } from './CodeSnippetMessage';
1313

1414
import { CodeSnippetWidget } from './CodeSnippetWidget';
1515
import { SUPPORTED_LANGUAGES } from './CodeSnippetLanguages';
@@ -209,7 +209,7 @@ function createNewSnippet(
209209
});
210210

211211
codeSnippetWidget.renderCodeSnippetsSignal.emit(codeSnippetManager.snippets);
212-
showMessage();
212+
showMessage('confirm');
213213
}
214214

215215
/**

src/CodeSnippetMenu.ts

-6
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,6 @@ export class OptionsMessage<T> extends Widget {
8585
* not be called directly by user code.
8686
*/
8787
handleEvent(event: Event): void {
88-
// if (event.type == 'click') {
89-
// console.log('click');
90-
// } else {
91-
// console.log('default');
92-
// console.log(event.type);
93-
// }
9488
switch (event.type) {
9589
case 'click':
9690
this._evtClick(event as MouseEvent);

src/CodeSnippetConfirmMessage.ts src/CodeSnippetMessage.ts

+41-12
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@ import { Dialog } from '@jupyterlab/apputils';
66

77
import { Widget } from '@lumino/widgets';
88
import { Message } from '@lumino/messaging';
9-
// import { PromiseDelegate } from '@lumino/coreutils';
10-
// import { ArrayExt } from '@lumino/algorithm';
119

1210
import checkSVGstr from '../style/icon/jupyter_checkmark.svg';
1311

1412
/**
15-
* The class name for confirmation box
13+
* The class name for message
1614
*/
1715
// const CONFIRM_CLASS = 'jp-codeSnippet-confirm';
1816
const CONFIRM_CONTENT = 'jp-codeSnippet-Message-content';
@@ -26,26 +24,28 @@ const CODE_SNIPPET_CONFIRM_TEXT = 'jp-codeSnippet-confirm-text';
2624
*
2725
* @returns A promise that resolves with whether the dialog was accepted.
2826
*/
29-
export function showMessage<T>(): Promise<Dialog.IResult<T>> {
30-
const confirmMessage = new ConfirmMessage({
31-
body: new MessageHandler(),
27+
export function showMessage<T>(type: string): Promise<Dialog.IResult<T>> {
28+
const confirmMessage = new CodeSnippetMessage({
29+
body: new MessageHandler(type),
3230
buttons: [],
3331
});
3432
return confirmMessage.launch();
3533
}
3634

3735
/**
38-
* A widget used to show confirmation message.
36+
* A widget used to show message.
3937
*/
40-
export class ConfirmMessage<T> extends Dialog<any> {
38+
export class CodeSnippetMessage<T> extends Dialog<any> {
4139
constructor(options: Partial<Dialog.IOptions<T>> = {}) {
4240
super(options);
4341
this.children().next().addClass(CONFIRM_CONTENT);
4442
}
4543

4644
protected onAfterAttach(msg: Message): void {
4745
const node = this.node;
46+
4847
node.addEventListener('click', this, true);
48+
document.addEventListener('keydown', this, false);
4949
}
5050

5151
/**
@@ -54,12 +54,35 @@ export class ConfirmMessage<T> extends Dialog<any> {
5454
protected onAfterDetach(msg: Message): void {
5555
const node = this.node;
5656
node.removeEventListener('click', this, true);
57+
document.removeEventListener('keydown', this, false);
58+
}
59+
60+
handleEvent(event: Event): void {
61+
switch (event.type) {
62+
case 'keydown':
63+
this._evtKeydown(event as KeyboardEvent);
64+
break;
65+
case 'click':
66+
this._evtClick(event as MouseEvent);
67+
break;
68+
}
69+
}
70+
71+
protected _evtKeydown(event: KeyboardEvent): void {
72+
// Check for escape key
73+
switch (event.key) {
74+
case 'Escape':
75+
event.stopPropagation();
76+
event.preventDefault();
77+
this.reject();
78+
break;
79+
}
5780
}
5881
}
5982

6083
class MessageHandler extends Widget {
61-
constructor() {
62-
super({ node: Private.createConfirmMessageNode() });
84+
constructor(type: string) {
85+
super({ node: Private.createMessageNode(type) });
6386
this.addClass(CONFIRM_BODY);
6487
}
6588
}
@@ -69,14 +92,20 @@ class MessageHandler extends Widget {
6992
*/
7093
namespace Private {
7194
// create a confirm message when new snippet is created successfully
72-
export function createConfirmMessageNode(): HTMLElement {
95+
export function createMessageNode(type: string): HTMLElement {
7396
const body = document.createElement('div');
7497
body.innerHTML = checkSVGstr;
7598

7699
const messageContainer = document.createElement('div');
77100
messageContainer.className = CODE_SNIPPET_CONFIRM_TEXT;
78101
const message = document.createElement('text');
79-
message.textContent = 'Saved as Snippet!';
102+
if (type === 'confirm') {
103+
message.textContent = 'Saved as Snippet!';
104+
} else if (type === 'copy') {
105+
message.textContent = 'Saved to Clipboard!';
106+
} else if (type === 'download') {
107+
message.textContent = 'Downloaded the Snippet!';
108+
}
80109
messageContainer.appendChild(message);
81110
body.append(messageContainer);
82111
return body;

src/PreviewSnippet.ts src/CodeSnippetPreview.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ export namespace Preview {
248248
* The preview widget tracker.
249249
*/
250250
export const tracker = new WidgetTracker<Preview<any>>({
251-
namespace: '@jupyterlab/code_snippet:ConfirmWidget',
251+
namespace: '@jupyterlab/code_snippet:preview',
252252
});
253253
}
254254

0 commit comments

Comments
 (0)