@jupyterlab/apputils#showErrorMessage TypeScript Examples
The following examples show how to use
@jupyterlab/apputils#showErrorMessage.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: index.ts From jupyterlab-gitplus with GNU Affero General Public License v3.0 | 5 votes |
export function show_repository_selection_failure_dialog() {
showErrorMessage(
'Failure',
'Failed to fetch list of repositories. Have you installed & enabled server side of the extension? \n\nSee installation steps here - https://github.com/ReviewNB/jupyterlab-gitplus/blob/master/README.md#install\n\nIf unable to resolve, open an issue here - https://github.com/ReviewNB/jupyterlab-gitplus/issues'
);
}
Example #2
Source File: index.ts From jupyterlab-gitplus with GNU Affero General Public License v3.0 | 5 votes |
export function show_file_selection_failure_dialog() {
showErrorMessage(
'Failure',
'Failed to fetch list of modified files. Have you installed & enabled server side of the extension? \n\nSee installation steps here - https://github.com/ReviewNB/jupyterlab-gitplus/blob/master/README.md#install\n\nIf unable to resolve, open an issue here - https://github.com/ReviewNB/jupyterlab-gitplus/issues'
);
}
Example #3
Source File: unfold.ts From jupyterlab-unfold with BSD 3-Clause "New" or "Revised" License | 5 votes |
private _eventDrop(event: IDragEvent): void {
event.preventDefault();
event.stopPropagation();
// @ts-ignore
clearTimeout(this._selectTimer);
if (event.proposedAction === 'none') {
event.dropAction = 'none';
return;
}
if (!event.mimeData.hasData(CONTENTS_MIME)) {
return;
}
let target = event.target as HTMLElement;
while (target && target.parentElement) {
if (target.classList.contains(DROP_TARGET_CLASS)) {
target.classList.remove(DROP_TARGET_CLASS);
break;
}
target = target.parentElement;
}
// Get the path based on the target node.
// @ts-ignore
const index = ArrayExt.firstIndexOf(this._items, target);
let newDir: string;
if (index !== -1) {
const item = toArray(this.model.items())[index];
if (item.type === 'directory') {
newDir = item.path;
} else {
newDir = PathExt.dirname(item.path);
}
} else {
newDir = '';
}
// @ts-ignore
const manager = this._manager;
// Handle the items.
const promises: Promise<Contents.IModel | null>[] = [];
const paths = event.mimeData.getData(CONTENTS_MIME) as string[];
if (event.ctrlKey && event.proposedAction === 'move') {
event.dropAction = 'copy';
} else {
event.dropAction = event.proposedAction;
}
for (const path of paths) {
const localPath = manager.services.contents.localPath(path);
const name = PathExt.basename(localPath);
const newPath = PathExt.join(newDir, name);
// Skip files that are not moving.
if (newPath === path) {
continue;
}
if (event.dropAction === 'copy') {
promises.push(manager.copy(path, newDir));
} else {
promises.push(renameFile(manager, path, newPath));
}
}
Promise.all(promises).catch(error => {
void showErrorMessage(
// @ts-ignore
this._trans._p('showErrorMessage', 'Error while copying/moving files'),
error
);
});
}
Example #4
Source File: launcher.tsx From jlab-enhanced-launcher with BSD 3-Clause "New" or "Revised" License | 4 votes |
/**
* A pure tsx component for a launcher card.
*
* @param kernel - whether the item takes uses a kernel.
*
* @param item - the launcher item to render.
*
* @param launcher - the Launcher instance to which this is added.
*
* @param launcherCallback - a callback to call after an item has been launched.
*
* @returns a vdom `VirtualElement` for the launcher card.
*/
function Card(
kernel: boolean,
items: INewLauncher.IItemOptions[],
launcher: Launcher,
commands: CommandRegistry,
trans: TranslationBundle,
launcherCallback: (widget: Widget) => void
): React.ReactElement<any> {
const mode = launcher.model.viewMode === 'cards' ? '' : '-Table';
// Get some properties of the first command
const item = items[0];
const command = item.command;
const args = { ...item.args, cwd: launcher.cwd };
const caption = commands.caption(command, args);
const label = commands.label(command, args);
const title = kernel ? label : caption || label;
// Build the onclick handler.
const onClickFactory = (
item: INewLauncher.IItemOptions
): ((event: any) => void) => {
const onClick = (event: Event): void => {
event.stopPropagation();
// If an item has already been launched,
// don't try to launch another.
if (launcher.pending === true) {
return;
}
launcher.pending = true;
void commands
.execute(item.command, {
...item.args,
cwd: launcher.cwd
})
.then(value => {
launcher.model.useCard(item);
launcher.pending = false;
if (value instanceof Widget) {
launcherCallback(value);
launcher.dispose();
}
})
.catch(err => {
launcher.pending = false;
void showErrorMessage(trans._p('Error', 'Launcher Error'), err);
});
};
return onClick;
};
const mainOnClick = onClickFactory(item);
const getOptions = (items: INewLauncher.IItemOptions[]): JSX.Element[] => {
return items.map(item => {
let label = 'Open';
if (
item.category &&
(items.length > 1 || KERNEL_CATEGORIES.indexOf(item.category) > -1)
) {
label = item.category;
}
return (
<div
className="jp-NewLauncher-option-button"
key={label.toLowerCase()}
onClick={onClickFactory(item)}
>
<span className="jp-NewLauncher-option-button-text">
{label.toUpperCase()}
</span>
</div>
);
});
};
// With tabindex working, you can now pick a kernel by tabbing around and
// pressing Enter.
const onkeypress = (event: React.KeyboardEvent): void => {
if (event.key === 'Enter') {
mainOnClick(event);
}
};
// DEPRECATED: remove _icon when lumino 2.0 is adopted
// if icon is aliasing iconClass, don't use it
const iconClass = commands.iconClass(command, args);
const _icon = commands.icon(command, args);
const icon = _icon === iconClass ? undefined : _icon;
// Return the VDOM element.
return (
<div
className={`jp-NewLauncher-item${mode}`}
title={title}
onClick={mainOnClick}
onKeyPress={onkeypress}
tabIndex={100}
data-category={item.category || 'Other'}
key={Private.keyProperty.get(item)}
>
<div className={`jp-NewLauncherCard-icon jp-NewLauncher${mode}-Cell`}>
{kernel ? (
item.kernelIconUrl ? (
<img
src={item.kernelIconUrl}
className="jp-NewLauncher-kernelIcon"
/>
) : (
<div className="jp-NewLauncherCard-noKernelIcon">
{label[0].toUpperCase()}
</div>
)
) : (
<LabIcon.resolveReact
icon={icon}
iconClass={classes(iconClass, 'jp-Icon-cover')}
stylesheet="launcherCard"
/>
)}
</div>
<div
className={`jp-NewLauncher-label jp-NewLauncher${mode}-Cell`}
title={label}
>
{label}
</div>
<div
className={`jp-NewLauncher-options-wrapper jp-NewLauncher${mode}-Cell`}
>
<div className="jp-NewLauncher-options">{getOptions(items)}</div>
</div>
</div>
);
}