You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
import { BrowserWindow, dialog } from 'electron';
 | 
						|
 | 
						|
export type MessagesType = {
 | 
						|
  [key: string]: {
 | 
						|
    message: string;
 | 
						|
    description?: string;
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
type LogFunction = (...args: Array<any>) => void;
 | 
						|
 | 
						|
export type LoggerType = {
 | 
						|
  fatal: LogFunction;
 | 
						|
  error: LogFunction;
 | 
						|
  warn: LogFunction;
 | 
						|
  info: LogFunction;
 | 
						|
  debug: LogFunction;
 | 
						|
  trace: LogFunction;
 | 
						|
};
 | 
						|
 | 
						|
export async function showDownloadUpdateDialog(
 | 
						|
  mainWindow: BrowserWindow,
 | 
						|
  messages: MessagesType
 | 
						|
): Promise<boolean> {
 | 
						|
  const DOWNLOAD_BUTTON = 0;
 | 
						|
  const LATER_BUTTON = 1;
 | 
						|
  const options = {
 | 
						|
    type: 'info',
 | 
						|
    buttons: [
 | 
						|
      messages.autoUpdateDownloadButtonLabel.message,
 | 
						|
      messages.autoUpdateLaterButtonLabel.message,
 | 
						|
    ],
 | 
						|
    title: messages.autoUpdateNewVersionTitle.message,
 | 
						|
    message: messages.autoUpdateNewVersionMessage.message,
 | 
						|
    detail: messages.autoUpdateDownloadInstructions.message,
 | 
						|
    defaultId: LATER_BUTTON,
 | 
						|
    cancelId: DOWNLOAD_BUTTON,
 | 
						|
  };
 | 
						|
 | 
						|
  const ret = await dialog.showMessageBox(mainWindow, options);
 | 
						|
 | 
						|
  return ret.response === DOWNLOAD_BUTTON;
 | 
						|
}
 | 
						|
 | 
						|
export async function showUpdateDialog(
 | 
						|
  mainWindow: BrowserWindow,
 | 
						|
  messages: MessagesType
 | 
						|
): Promise<boolean> {
 | 
						|
  const RESTART_BUTTON = 0;
 | 
						|
  const LATER_BUTTON = 1;
 | 
						|
  const options = {
 | 
						|
    type: 'info',
 | 
						|
    buttons: [
 | 
						|
      messages.autoUpdateRestartButtonLabel.message,
 | 
						|
      messages.autoUpdateLaterButtonLabel.message,
 | 
						|
    ],
 | 
						|
    title: messages.autoUpdateNewVersionTitle.message,
 | 
						|
    message: messages.autoUpdateDownloadedMessage.message,
 | 
						|
    detail: messages.autoUpdateNewVersionInstructions.message,
 | 
						|
    defaultId: LATER_BUTTON,
 | 
						|
    cancelId: RESTART_BUTTON,
 | 
						|
  };
 | 
						|
  const ret = await dialog.showMessageBox(mainWindow, options);
 | 
						|
 | 
						|
  return ret.response === RESTART_BUTTON;
 | 
						|
}
 | 
						|
 | 
						|
export async function showCannotUpdateDialog(mainWindow: BrowserWindow, messages: MessagesType) {
 | 
						|
  const options = {
 | 
						|
    type: 'error',
 | 
						|
    buttons: [messages.ok.message],
 | 
						|
    title: messages.cannotUpdate.message,
 | 
						|
    message: messages.cannotUpdateDetail.message,
 | 
						|
  };
 | 
						|
  await dialog.showMessageBox(mainWindow, options);
 | 
						|
}
 | 
						|
 | 
						|
export function getPrintableError(error: Error) {
 | 
						|
  return error && error.stack ? error.stack : error;
 | 
						|
}
 |