mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 11:39:01 +01:00 
			
		
		
		
	chore(client/ts): port menus/electron_context_menu
This commit is contained in:
		
							parent
							
								
									6480ce9aaf
								
							
						
					
					
						commit
						eb9a55bf4f
					
				| @ -15,17 +15,18 @@ interface MenuSeparatorItem { | ||||
| export interface MenuCommandItem { | ||||
|     title: string; | ||||
|     command?: string; | ||||
|     type: string; | ||||
|     uiIcon: string; | ||||
|     type?: string; | ||||
|     uiIcon?: string; | ||||
|     templateNoteId?: string; | ||||
|     enabled?: boolean; | ||||
|     handler?: MenuHandler; | ||||
|     items?: MenuItem[]; | ||||
|     shortcut?: string; | ||||
|     spellingSuggestion?: string; | ||||
| } | ||||
| 
 | ||||
| export type MenuItem = MenuCommandItem | MenuSeparatorItem; | ||||
| export type MenuHandler = (item: MenuItem, e: JQuery.MouseDownEvent<HTMLElement, undefined, HTMLElement, HTMLElement>) => void; | ||||
| export type MenuHandler = (item: MenuCommandItem, e: JQuery.MouseDownEvent<HTMLElement, undefined, HTMLElement, HTMLElement>) => void; | ||||
| 
 | ||||
| class ContextMenu { | ||||
| 
 | ||||
|  | ||||
| @ -3,12 +3,14 @@ import options from "../services/options.js"; | ||||
| import zoomService from "../components/zoom.js"; | ||||
| import contextMenu from "./context_menu.js"; | ||||
| import { t } from "../services/i18n.js"; | ||||
| import type { BrowserWindow } from "electron"; | ||||
| 
 | ||||
| function setupContextMenu() { | ||||
|     const electron = utils.dynamicRequire('electron'); | ||||
| 
 | ||||
|     const remote = utils.dynamicRequire('@electron/remote'); | ||||
|     const {webContents} = remote.getCurrentWindow(); | ||||
|     // FIXME: Remove typecast once Electron is properly integrated.
 | ||||
|     const {webContents} = remote.getCurrentWindow() as BrowserWindow; | ||||
| 
 | ||||
|     webContents.on('context-menu', (event, params) => { | ||||
|         const {editFlags} = params; | ||||
| @ -97,7 +99,7 @@ function setupContextMenu() { | ||||
| 
 | ||||
|             // Read the search engine from the options and fallback to DuckDuckGo if the option is not set.
 | ||||
|             const customSearchEngineName = options.get("customSearchEngineName"); | ||||
|             const customSearchEngineUrl = options.get("customSearchEngineUrl"); | ||||
|             const customSearchEngineUrl = options.get("customSearchEngineUrl") as string; | ||||
|             let searchEngineName; | ||||
|             let searchEngineUrl; | ||||
|             if (customSearchEngineName && customSearchEngineUrl) { | ||||
| @ -132,7 +134,7 @@ function setupContextMenu() { | ||||
|             y: params.y / zoomLevel, | ||||
|             items, | ||||
|             selectMenuItemHandler: ({command, spellingSuggestion}) => { | ||||
|                 if (command === 'replaceMisspelling') { | ||||
|                 if (command === 'replaceMisspelling' && spellingSuggestion) { | ||||
|                     webContents.insertText(spellingSuggestion); | ||||
|                 } | ||||
|             } | ||||
| @ -131,9 +131,9 @@ export default class NoteTypeChooserDialog extends BasicWidget { | ||||
|                 const commandItem = (noteType as MenuCommandItem) | ||||
|                 this.$noteTypeDropdown.append( | ||||
|                     $('<a class="dropdown-item" tabindex="0">') | ||||
|                         .attr("data-note-type", commandItem.type) | ||||
|                         .attr("data-note-type", commandItem.type || "") | ||||
|                         .attr("data-template-note-id", commandItem.templateNoteId || "") | ||||
|                         .append($("<span>").addClass(commandItem.uiIcon)) | ||||
|                         .append($("<span>").addClass(commandItem.uiIcon || "")) | ||||
|                         .append(` ${noteType.title}`) | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran