From d3ff7f72badee673b826d8941b86487a9fd0f53d Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Fri, 19 May 2023 17:11:54 +0200
Subject: [PATCH] Change to general copy paste
---
core/config/default.build.options.js | 4 +-
core/src/components/main-app.js | 48 +-
core/src/components/show-plugin.js | 48 +-
core/src/plugins/routes.js | 27 --
core/src/plugins/streams.js | 13 +-
core/src/redux/app/actions/app-core.js | 42 +-
core/src/redux/app/app-action-types.js | 3 -
core/src/redux/app/app-reducer.js | 23 +-
core/src/tradebot/trade-bot-routes.js | 23 -
electron.js | 16 +-
lib/preload.js | 3 +-
package.json | 19 +-
.../core/become-minter/become-minter.src.js | 121 ++---
.../components/yes-sponsored.src.js | 2 +-
.../core/components/ChatWelcomePage.js | 25 -
.../plugins/core/components/LevelFounder.js | 23 +-
.../core/components/qortal-info-view.js | 7 +
.../group-management/group-management.src.js | 54 +--
.../chain-messaging/chain-messaging.src.js | 23 +-
.../plugins/core/messaging/messaging.src.js | 70 +--
.../core/messaging/q-chat/q-chat.src.js | 68 +--
.../plugins/core/minting/minting-info.src.js | 14 +-
.../name-registration.src.js | 56 +--
.../core/names-market/names-market.src.js | 57 +--
.../node-management/node-management.src.js | 107 +---
plugins/plugins/core/puzzles/puzzles.src.js | 112 +----
plugins/plugins/core/q-app/q-apps.src.js | 56 +--
.../plugins/core/qdn/browser/browser.src.js | 110 ++---
.../data-management/data-management.src.js | 55 +--
.../plugins/core/qdn/publish/publish.src.js | 54 +--
plugins/plugins/core/qdn/websites.src.js | 56 +--
.../core/reward-share/reward-share.src.js | 111 +----
.../sponsorship-list/sponsorship-list.src.js | 8 +
.../core/trade-bot/trade-bot-portal.src.js | 60 +--
.../core/trade-portal/trade-portal.src.js | 60 +--
plugins/plugins/core/wallet/wallet-app.src.js | 455 +-----------------
36 files changed, 311 insertions(+), 1722 deletions(-)
diff --git a/core/config/default.build.options.js b/core/config/default.build.options.js
index 31a247e9..0ad66df8 100644
--- a/core/config/default.build.options.js
+++ b/core/config/default.build.options.js
@@ -11,12 +11,12 @@ const options = {
}
const aliases = {
- 'qortal-ui-crypto': 'node_modules/qortal-ui-crypto/api.js'
+ 'qortal-ui-crypto': '../../crypto/api.js'
}
const apiComponents = {
api: {
- file: 'api/api.js',
+ file: '../../crypto/api.js',
className: 'api'
}
}
diff --git a/core/src/components/main-app.js b/core/src/components/main-app.js
index 36574cea..9720e568 100644
--- a/core/src/components/main-app.js
+++ b/core/src/components/main-app.js
@@ -3,6 +3,7 @@ import { installRouter } from 'pwa-helpers/router.js'
import { connect } from 'pwa-helpers'
import { store } from '../store.js'
import { doNavigate } from '../redux/app/app-actions.js'
+import isElectron from 'is-electron'
import '../plugins/streams.js'
import { loadPlugins } from '../plugins/load-plugins.js'
@@ -11,9 +12,6 @@ import '../styles/app-styles.js'
import './login-view/login-view.js'
import './app-view.js'
-import copyTextMenu from '../functional-components/copy-text-menu.js'
-import framePasteMenu from '../functional-components/frame-paste-menu.js'
-
installRouter((location) => store.dispatch(doNavigate(location)))
class MainApp extends connect(store)(LitElement) {
@@ -66,46 +64,14 @@ class MainApp extends connect(store)(LitElement) {
super.connectedCallback()
this.initial = 0
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault();
- this._textMenu(event);
- })
-
- window.addEventListener('click', () => {
- copyTextMenu.close()
- framePasteMenu.close()
- })
-
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- copyTextMenu.close()
- framePasteMenu.close()
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.electronAPI.showMyMenu()
+ })
}
}
-
- _textMenu(event) {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection !== 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection !== 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- const selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
-
- const textMenuObject = { selectedText, eventObject: event }
- copyTextMenu.open(textMenuObject)
- }
- }
-
- checkSelectedTextAndShowMenu()
- }
}
window.customElements.define('main-app', MainApp)
diff --git a/core/src/components/show-plugin.js b/core/src/components/show-plugin.js
index 91531756..06529e97 100644
--- a/core/src/components/show-plugin.js
+++ b/core/src/components/show-plugin.js
@@ -10,7 +10,8 @@ class ShowPlugin extends connect(store)(LitElement) {
app: { type: Object },
pluginConfig: { type: Object },
url: { type: String },
- linkParam: { type: String }
+ linkParam: { type: String },
+ registeredUrls: { type: Array }
}
}
@@ -50,13 +51,19 @@ class ShowPlugin extends connect(store)(LitElement) {
`
}
+ constructor() {
+ super()
+ this.registeredUrls = []
+ }
+
render() {
+ const plugArr = []
+
const plugSrc = (myPlug) => {
return myPlug === undefined ? 'about:blank' : `${window.location.origin}/plugin/${myPlug.domain}/${myPlug.page}${this.linkParam}`
}
- const plugArr = []
- this.app.registeredUrls.forEach(myPlugArr => {
+ this.registeredUrls.forEach(myPlugArr => {
myPlugArr.menus.length === 0 ? plugArr.push(myPlugArr) : myPlugArr.menus.forEach(i => plugArr.push(myPlugArr, i))
})
@@ -75,6 +82,7 @@ class ShowPlugin extends connect(store)(LitElement) {
type: 'WINDOW',
source: this.shadowRoot.getElementById('showPluginFrame').contentWindow
})
+
addPluginRoutes(showingPluginEpml)
showingPluginEpml.imReady()
this.showingPluginEpml = showingPluginEpml
@@ -94,23 +102,35 @@ class ShowPlugin extends connect(store)(LitElement) {
}
stateChanged(state) {
- this.app = state.app
- this.config = state.config
-
const split = state.app.url.split('/')
+ const newRegisteredUrls = state.app.registeredUrls
+
+ let newUrl, newLinkParam
+
+ if (newRegisteredUrls !== this.registeredUrls) {
+ this.registeredUrls = newRegisteredUrls
+ }
if (split[0] === '' && split[1] === 'app' && split[2] === undefined) {
- this.url = 'wallet'
- this.linkParam = ''
+ newUrl = 'wallet'
+ newLinkParam = ''
} else if (split.length === 5 && split[1] === 'app') {
- this.url = split[2]
- this.linkParam = split[3] === undefined ? '' : '?' + split[3] + '/' + split[4]
+ newUrl = split[2]
+ newLinkParam = split[3] === undefined ? '' : '?' + split[3] + '/' + split[4]
} else if (split[1] === 'app') {
- this.url = split[2]
- this.linkParam = ''
+ newUrl = split[2]
+ newLinkParam = ''
} else {
- this.url = '404'
- this.linkParam = ''
+ newUrl = '404'
+ newLinkParam = ''
+ }
+
+ if (newUrl !== this.url) {
+ this.url = newUrl
+ }
+
+ if (newLinkParam !== this.linkParam) {
+ this.linkParam = newLinkParam
}
}
}
diff --git a/core/src/plugins/routes.js b/core/src/plugins/routes.js
index 09bdf52e..62358413 100644
--- a/core/src/plugins/routes.js
+++ b/core/src/plugins/routes.js
@@ -17,8 +17,6 @@ import {
loadStateFromLocalStorage,
saveStateToLocalStorage,
} from '../localStorageHelpers.js'
-import copyTextMenu from '../functional-components/copy-text-menu.js'
-import framePasteMenu from '../functional-components/frame-paste-menu.js'
const createTransaction = api.createTransaction
const processTransaction = api.processTransaction
@@ -39,10 +37,6 @@ const sendRvn = api.sendRvn
const sendArrr = api.sendArrr
export const routes = {
- hello: async (req) => {
- return 'Hello from awesomeness'
- },
-
registerUrl: async (req) => {
store.dispatch(doAddPluginUrl(req.data))
},
@@ -95,27 +89,6 @@ export const routes = {
return saveStateToLocalStorage(req.data.key, req.data.dataObj)
},
- openCopyTextMenu: async (req) => {
- const textMenuObject = {
- selectedText: req.data.selectedText,
- eventObject: req.data.eventObject,
- isFrame: req.data.isFrame,
- }
- copyTextMenu.open(textMenuObject)
- },
-
- closeCopyTextMenu: async (req) => {
- copyTextMenu.close()
- },
-
- openFramePasteMenu: async (req) => {
- framePasteMenu.open(req.data)
- },
-
- closeFramePasteMenu: async (req) => {
- framePasteMenu.close()
- },
-
apiCall: async (req) => {
const url = req.data.url
delete req.data.url
diff --git a/core/src/plugins/streams.js b/core/src/plugins/streams.js
index 9cb6c3f7..8aee79d3 100644
--- a/core/src/plugins/streams.js
+++ b/core/src/plugins/streams.js
@@ -7,8 +7,6 @@ const SELECTED_ADDRESS_STREAM_NAME = 'selected_address'
const APP_INFO_STATE = 'app_info_state'
const CHAT_HEADS_STREAM_NAME = 'chat_heads'
const NODE_CONFIG_STREAM_NAME = 'node_config'
-const COPY_MENU_SWITCH = 'copy_menu_switch'
-const FRAME_PASTE_MENU_SWITCH = 'frame_paste_menu_switch'
const CHAT_LAST_SEEN = 'chat_last_seen'
export const loggedInStream = new EpmlStream(LOGIN_STREAM_NAME, () => store.getState().app.loggedIn)
@@ -17,8 +15,6 @@ export const selectedAddressStream = new EpmlStream(SELECTED_ADDRESS_STREAM_NAME
export const appInfoStateStream = new EpmlStream(APP_INFO_STATE, () => store.getState().app.appInfo)
export const chatHeadsStateStream = new EpmlStream(CHAT_HEADS_STREAM_NAME, () => store.getState().app.chatHeads)
export const nodeConfigStream = new EpmlStream(NODE_CONFIG_STREAM_NAME, () => store.getState().app.nodeConfig)
-export const copyMenuSwitchStream = new EpmlStream(COPY_MENU_SWITCH, () => store.getState().app.copyMenuSwitch)
-export const framePasteMenuSwitchStream = new EpmlStream(FRAME_PASTE_MENU_SWITCH, () => store.getState().app.framePasteMenuSwitch)
export const chatLastSeenStream = new EpmlStream(CHAT_LAST_SEEN, () => store.getState().app.chatLastSeen)
@@ -32,7 +28,7 @@ store.subscribe(() => {
if (oldState.app.loggedIn !== state.app.loggedIn) {
loggedInStream.emit(state.app.loggedIn)
}
- // This one may be a little on the heavy side...AHHH, NEED TO MOVE STORAGE OF ENCRYPTED SEED. DONE <3
+
if (oldState.config !== state.config) {
configStream.emit(state.config)
}
@@ -41,13 +37,6 @@ store.subscribe(() => {
nodeConfigStream.emit(state.app.nodeConfig)
}
- if (oldState.app.copyMenuSwitch !== state.app.copyMenuSwitch) {
- copyMenuSwitchStream.emit(state.app.copyMenuSwitch)
- }
-
- if (oldState.app.framePasteMenuSwitch !== state.app.framePasteMenuSwitch) {
- framePasteMenuSwitchStream.emit(state.app.framePasteMenuSwitch)
- }
if (oldState.app.chatLastSeen !== state.app.chatLastSeen) {
chatLastSeenStream.emit(state.app.chatLastSeen)
}
diff --git a/core/src/redux/app/actions/app-core.js b/core/src/redux/app/actions/app-core.js
index 35767dae..6ae7984f 100644
--- a/core/src/redux/app/actions/app-core.js
+++ b/core/src/redux/app/actions/app-core.js
@@ -1,5 +1,5 @@
// Core App Actions here...
-import { UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, CHAT_HEADS, ACCOUNT_INFO, COPY_MENU_SWITCH, PASTE_MENU_SWITCH, FRAME_PASTE_MENU_SWITCH, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS } from '../app-action-types.js'
+import { UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, CHAT_HEADS, ACCOUNT_INFO, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS } from '../app-action-types.js'
export const doUpdateBlockInfo = (blockObj) => {
return (dispatch, getState) => {
@@ -66,46 +66,6 @@ const updateAccountInfo = (payload) => {
}
}
-export const doCopyMenuSwitch = (value) => {
- return (dispatch, getState) => {
- dispatch(copyMenuSwitch(value))
- }
-}
-
-const copyMenuSwitch = (payload) => {
- return {
- type: COPY_MENU_SWITCH,
- payload
- }
-}
-
-export const doPasteMenuSwitch = (value) => {
- return (dispatch, getState) => {
- dispatch(pasteMenuSwitch(value))
- }
-}
-
-const pasteMenuSwitch = (payload) => {
- return {
- type: PASTE_MENU_SWITCH,
- payload
- }
-}
-
-
-export const doFramePasteMenuSwitch = (value) => {
- return (dispatch, getState) => {
- dispatch(framePasteMenuSwitch(value))
- }
-}
-
-const framePasteMenuSwitch = (payload) => {
- return {
- type: FRAME_PASTE_MENU_SWITCH,
- payload
- }
-}
-
export const addAutoLoadImageChat = (payload) => {
return {
type: ADD_AUTO_LOAD_IMAGES_CHAT,
diff --git a/core/src/redux/app/app-action-types.js b/core/src/redux/app/app-action-types.js
index 5ace372c..1a59767e 100644
--- a/core/src/redux/app/app-action-types.js
+++ b/core/src/redux/app/app-action-types.js
@@ -17,9 +17,6 @@ export const PAGE_URL = 'PAGE_URL'
export const CHAT_HEADS = 'CHAT_HEADS'
export const ACCOUNT_INFO = 'ACCOUNT_INFO'
export const ADD_NEW_PLUGIN_URL = 'ADD_NEW_PLUGIN_URL'
-export const COPY_MENU_SWITCH = 'COPY_MENU_SWITCH'
-export const PASTE_MENU_SWITCH = 'PASTE_MENU_SWITCH'
-export const FRAME_PASTE_MENU_SWITCH = 'FRAME_PASTE_MENU_SWITCH'
export const ADD_AUTO_LOAD_IMAGES_CHAT = 'ADD_AUTO_LOAD_IMAGES_CHAT'
export const REMOVE_AUTO_LOAD_IMAGES_CHAT = 'REMOVE_AUTO_LOAD_IMAGES_CHAT'
export const ALLOW_QAPP_AUTO_AUTH = 'ALLOW_QAPP_AUTO_AUTH'
diff --git a/core/src/redux/app/app-reducer.js b/core/src/redux/app/app-reducer.js
index 0855ecbf..0801780e 100644
--- a/core/src/redux/app/app-reducer.js
+++ b/core/src/redux/app/app-reducer.js
@@ -1,6 +1,6 @@
// Loading state, login state, isNavDrawOpen state etc. None of this needs to be saved to localstorage.
import { loadStateFromLocalStorage, saveStateToLocalStorage } from '../../localStorageHelpers.js'
-import { LOG_IN, LOG_OUT, NETWORK_CONNECTION_STATUS, INIT_WORKERS, ADD_PLUGIN_URL, ADD_PLUGIN, ADD_NEW_PLUGIN_URL, NAVIGATE, SELECT_ADDRESS, ACCOUNT_INFO, CHAT_HEADS, UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, LOAD_NODE_CONFIG, SET_NODE, ADD_NODE, PAGE_URL, COPY_MENU_SWITCH, PASTE_MENU_SWITCH, FRAME_PASTE_MENU_SWITCH, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS } from './app-action-types.js'
+import { LOG_IN, LOG_OUT, NETWORK_CONNECTION_STATUS, INIT_WORKERS, ADD_PLUGIN_URL, ADD_PLUGIN, ADD_NEW_PLUGIN_URL, NAVIGATE, SELECT_ADDRESS, ACCOUNT_INFO, CHAT_HEADS, UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, LOAD_NODE_CONFIG, SET_NODE, ADD_NODE, PAGE_URL, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS } from './app-action-types.js'
import { initWorkersReducer } from './reducers/init-workers.js'
import { loginReducer } from './reducers/login-reducer.js'
import { setNode, addNode } from './reducers/manage-node.js'
@@ -43,12 +43,6 @@ const INITIAL_STATE = {
nodeInfo: {},
nodeStatus: {},
pageUrl: '',
- copyMenuSwitch: false,
- pasteMenuSwitch: false,
- framePasteMenuSwitch: {
- isOpen: false,
- elementId: ''
- },
autoLoadImageChats: loadStateFromLocalStorage('autoLoadImageChats') || [],
qAPPAutoAuth: loadStateFromLocalStorage('qAPPAutoAuth') || false,
qAPPAutoLists: loadStateFromLocalStorage('qAPPAutoLists') || false,
@@ -141,21 +135,6 @@ export default (state = INITIAL_STATE, action) => {
...state,
networkIsConnected: action.payload
}
- case COPY_MENU_SWITCH:
- return {
- ...state,
- copyMenuSwitch: action.payload
- }
- case PASTE_MENU_SWITCH:
- return {
- ...state,
- pasteMenuSwitch: action.payload
- }
- case FRAME_PASTE_MENU_SWITCH:
- return {
- ...state,
- framePasteMenuSwitch: action.payload
- }
case ADD_AUTO_LOAD_IMAGES_CHAT: {
const findChat = state.autoLoadImageChats.findIndex((chat)=> chat === action.payload)
console.log({findChat})
diff --git a/core/src/tradebot/trade-bot-routes.js b/core/src/tradebot/trade-bot-routes.js
index d15156ec..aecb989f 100644
--- a/core/src/tradebot/trade-bot-routes.js
+++ b/core/src/tradebot/trade-bot-routes.js
@@ -1,8 +1,6 @@
import { store } from '../store.js'
import * as api from 'qortal-ui-crypto'
import snackbar from '../functional-components/snackbar.js'
-import copyTextMenu from '../functional-components/copy-text-menu.js';
-import framePasteMenu from '../functional-components/frame-paste-menu.js';
const createTransaction = api.createTransaction
const processTransaction = api.processTransaction
@@ -25,27 +23,6 @@ export const routes = {
return api.request(url, req.data)
},
- openCopyTextMenu: async (req) => {
- const textMenuObject = {
- selectedText: req.data.selectedText,
- eventObject: req.data.eventObject,
- isFrame: req.data.isFrame,
- };
- copyTextMenu.open(textMenuObject);
- },
-
- closeCopyTextMenu: async (req) => {
- copyTextMenu.close();
- },
-
- openFramePasteMenu: async (req) => {
- framePasteMenu.open(req.data);
- },
-
- closeFramePasteMenu: async (req) => {
- framePasteMenu.close();
- },
-
transaction: async (req) => {
let response
try {
diff --git a/electron.js b/electron.js
index 09e4ea8a..20a51d93 100644
--- a/electron.js
+++ b/electron.js
@@ -768,7 +768,7 @@ function createWindow() {
autoHideMenuBar: true,
webPreferences: {
partition: 'persist:webviewsession',
- nodeIntegration: false,
+ nodeIntegration: true,
contextIsolation: true,
enableRemoteModule: false,
allowRunningInsecureContent: false,
@@ -933,6 +933,20 @@ if (!isLock) {
ipcMain.on('check-for-update', (event) => {
autoUpdater.checkForUpdatesAndNotify()
})
+ ipcMain.on('show-my-menu', (event) => {
+ log.info("RIGHT CLICKED")
+ let homePageOptions = Menu.buildFromTemplate([
+ {
+ label: 'Copy',
+ role: 'copy'
+ },
+ {
+ label: 'Paste',
+ role: 'paste'
+ }
+ ])
+ homePageOptions.popup(myWindow)
+ })
autoUpdater.on('update-available', (event) => {
const downloadOpts = {
type: 'info',
diff --git a/lib/preload.js b/lib/preload.js
index bfc335b7..a1cce15c 100644
--- a/lib/preload.js
+++ b/lib/preload.js
@@ -2,5 +2,6 @@ const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI', {
setStartCore: () => ipcRenderer.send('set-start-core'),
- checkForUpdate: () => ipcRenderer.send('check-for-update')
+ checkForUpdate: () => ipcRenderer.send('check-for-update'),
+ showMyMenu: () => ipcRenderer.send('show-my-menu')
})
\ No newline at end of file
diff --git a/package.json b/package.json
index 67147d22..d22ddc1f 100644
--- a/package.json
+++ b/package.json
@@ -73,7 +73,7 @@
},
"devDependencies": {
"axios": "1.4.0",
- "electron": "24.2.0",
+ "electron": "24.3.0",
"electron-builder": "23.6.0",
"electron-packager": "17.1.1",
"epml": "0.3.3",
@@ -83,12 +83,11 @@
"is-electron": "2.2.2",
"lit": "2.7.4",
"lit-translate": "2.0.1",
- "localforage": "1.10.0",
"pwa-helpers": "0.9.1",
"passive-events-support": "1.0.33",
"redux": "4.2.1",
"redux-thunk": "2.4.2",
- "rollup": "3.21.5",
+ "rollup": "3.21.6",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-scss": "3.0.0",
@@ -135,13 +134,13 @@
"@rollup/plugin-node-resolve": "15.0.2",
"@rollup/plugin-replace": "5.0.2",
"@rollup/plugin-terser": "0.4.1",
- "@vaadin/avatar": "24.0.4",
- "@vaadin/button": "24.0.4",
- "@vaadin/grid": "24.0.4",
- "@vaadin/icons": "24.0.4",
- "@vaadin/password-field": "24.0.4",
- "@vaadin/tooltip": "24.0.4",
- "@zip.js/zip.js": "2.7.6"
+ "@vaadin/avatar": "24.0.5",
+ "@vaadin/button": "24.0.5",
+ "@vaadin/grid": "24.0.5",
+ "@vaadin/icons": "24.0.5",
+ "@vaadin/password-field": "24.0.5",
+ "@vaadin/tooltip": "24.0.5",
+ "@zip.js/zip.js": "2.7.13"
},
"engines": {
"node": ">=18.14.0"
diff --git a/plugins/plugins/core/become-minter/become-minter.src.js b/plugins/plugins/core/become-minter/become-minter.src.js
index a42a76cb..d8a10ca0 100644
--- a/plugins/plugins/core/become-minter/become-minter.src.js
+++ b/plugins/plugins/core/become-minter/become-minter.src.js
@@ -1,21 +1,22 @@
-import { LitElement, html } from 'lit';
-import { Epml } from '../../../epml.js';
-import '../components/ButtonIconCopy.js';
-import { use, translate, registerTranslateConfig } from 'lit-translate';
-import { blocksNeed } from '../../utils/blocks-needed.js';
+import { LitElement, html } from 'lit'
+import { Epml } from '../../../epml.js'
+import '../components/ButtonIconCopy.js'
+import { use, translate, registerTranslateConfig } from 'lit-translate'
+import { blocksNeed } from '../../utils/blocks-needed.js'
registerTranslateConfig({
loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()),
-});
+})
-import '@polymer/paper-spinner/paper-spinner-lite.js';
-import '@material/mwc-button';
-import '@material/mwc-textfield';
-import '@vaadin/button';
-import { pageStyles } from './become-minter-css.src.js';
-import './components/not-sponsored.src';
-import './components/yes-sponsored.src';
-const parentEpml = new Epml({ type: 'WINDOW', source: window.parent });
+import '@polymer/paper-spinner/paper-spinner-lite.js'
+import '@material/mwc-button'
+import '@material/mwc-textfield'
+import '@vaadin/button'
+import { pageStyles } from './become-minter-css.src.js'
+import './components/not-sponsored.src'
+import './components/yes-sponsored.src'
+
+const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
class BecomeMinter extends LitElement {
static get properties() {
@@ -27,77 +28,77 @@ class BecomeMinter extends LitElement {
addressInfo: { type: Object },
rewardSharePublicKey: { type: String },
mintingAccountData: { type: Array },
- };
+ }
}
- static styles = [pageStyles];
+ static styles = [pageStyles]
constructor() {
- super();
- this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light';
- this.sponsorshipKeyValue = '';
- this.isPageLoading = true;
- this.nodeInfo = {};
- this.addressInfo = {};
- this.rewardSharePublicKey = '';
- this.mintingAccountData = null;
+ super()
+ this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
+ this.sponsorshipKeyValue = ''
+ this.isPageLoading = true
+ this.nodeInfo = {}
+ this.addressInfo = {}
+ this.rewardSharePublicKey = ''
+ this.mintingAccountData = null
}
changeLanguage() {
- const checkLanguage = localStorage.getItem('qortalLanguage');
+ const checkLanguage = localStorage.getItem('qortalLanguage')
if (checkLanguage === null || checkLanguage.length === 0) {
- localStorage.setItem('qortalLanguage', 'us');
- use('us');
+ localStorage.setItem('qortalLanguage', 'us')
+ use('us')
} else {
- use(checkLanguage);
+ use(checkLanguage)
}
}
_handleStorage() {
- const checkLanguage = localStorage.getItem('qortalLanguage');
- const checkTheme = localStorage.getItem('qortalTheme');
+ const checkLanguage = localStorage.getItem('qortalLanguage')
+ const checkTheme = localStorage.getItem('qortalTheme')
- use(checkLanguage);
+ use(checkLanguage)
if (checkTheme === 'dark') {
- this.theme = 'dark';
+ this.theme = 'dark'
} else {
- this.theme = 'light';
+ this.theme = 'light'
}
- document.querySelector('html').setAttribute('theme', this.theme);
+ document.querySelector('html').setAttribute('theme', this.theme)
}
connectedCallback() {
- super.connectedCallback();
- window.addEventListener('storage', this._handleStorage);
+ super.connectedCallback()
+ window.addEventListener('storage', this._handleStorage)
}
disconnectedCallback() {
- window.removeEventListener('storage', this._handleStorage);
- super.disconnectedCallback();
+ window.removeEventListener('storage', this._handleStorage)
+ super.disconnectedCallback()
}
async getNodeInfo() {
const nodeInfo = await parentEpml.request('apiCall', {
url: `/admin/status`,
- });
+ })
- return nodeInfo;
+ return nodeInfo
}
async getMintingAcccounts() {
const mintingAccountData = await parentEpml.request('apiCall', {
url: `/admin/mintingaccounts`,
- });
- return mintingAccountData;
+ })
+ return mintingAccountData
}
async atMount() {
- this.changeLanguage();
+ this.changeLanguage()
- this.isPageLoading = true;
+ this.isPageLoading = true
try {
const [nodeInfo, myRewardShareArray, mintingaccounts] =
await Promise.all([
@@ -107,33 +108,33 @@ class BecomeMinter extends LitElement {
?.address
),
this.getMintingAcccounts(),
- ]);
+ ])
- this.nodeInfo = nodeInfo;
+ this.nodeInfo = nodeInfo
this.rewardSharePublicKey =
- myRewardShareArray[0]?.rewardSharePublicKey;
- this.isPageLoading = false;
- this.mintingAccountData = mintingaccounts;
+ myRewardShareArray[0]?.rewardSharePublicKey
+ this.isPageLoading = false
+ this.mintingAccountData = mintingaccounts
this.addressInfo =
- window.parent.reduxStore.getState().app.accountInfo.addressInfo;
+ window.parent.reduxStore.getState().app.accountInfo.addressInfo
} catch (error) {
- console.error(error);
+ console.error(error)
- this.isPageLoading = false;
+ this.isPageLoading = false
}
}
async firstUpdated() {
- await this.atMount();
+ await this.atMount()
}
async getRewardShareRelationship(recipientAddress) {
const myRewardShareArray = await parentEpml.request('apiCall', {
type: 'api',
url: `/addresses/rewardshares?recipients=${recipientAddress}`,
- });
+ })
- return myRewardShareArray;
+ return myRewardShareArray
}
_levelUpBlocks() {
@@ -141,8 +142,8 @@ class BecomeMinter extends LitElement {
blocksNeed(0) -
(this.addressInfo?.blocksMinted +
this.addressInfo?.blocksMintedAdjustment)
- ).toString();
- return countBlocksString;
+ ).toString()
+ return countBlocksString
}
render() {
@@ -150,7 +151,7 @@ class BecomeMinter extends LitElement {
const findMintingAccount = this.mintingAccountData?.find(
(ma) => ma.recipientAccount === window.parent.reduxStore.getState().app?.selectedAddress
?.address
- );
+ )
const isAlreadySponsored =
this.addressInfo?.error !== 124 &&
@@ -196,8 +197,8 @@ class BecomeMinter extends LitElement {
`}
- `;
+ `
}
}
-window.customElements.define('become-minter', BecomeMinter);
+window.customElements.define('become-minter', BecomeMinter)
diff --git a/plugins/plugins/core/become-minter/components/yes-sponsored.src.js b/plugins/plugins/core/become-minter/components/yes-sponsored.src.js
index 13ab1faa..901c48d3 100644
--- a/plugins/plugins/core/become-minter/components/yes-sponsored.src.js
+++ b/plugins/plugins/core/become-minter/components/yes-sponsored.src.js
@@ -6,8 +6,8 @@ import { use, translate, registerTranslateConfig } from 'lit-translate';
registerTranslateConfig({
loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()),
});
-import '@polymer/paper-spinner/paper-spinner-lite.js';
+import '@polymer/paper-spinner/paper-spinner-lite.js';
import '@material/mwc-button';
import '@material/mwc-textfield';
import '@vaadin/button';
diff --git a/plugins/plugins/core/components/ChatWelcomePage.js b/plugins/plugins/core/components/ChatWelcomePage.js
index 58bc2ce5..9ba5f212 100644
--- a/plugins/plugins/core/components/ChatWelcomePage.js
+++ b/plugins/plugins/core/components/ChatWelcomePage.js
@@ -478,31 +478,6 @@ class ChatWelcomePage extends LitElement {
getAddressPublicKey()
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
-
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
_textArea(e) {
if (e.keyCode === 13 && !e.shiftKey) this._sendMessage()
}
diff --git a/plugins/plugins/core/components/LevelFounder.js b/plugins/plugins/core/components/LevelFounder.js
index 4895357e..bab9cd8e 100644
--- a/plugins/plugins/core/components/LevelFounder.js
+++ b/plugins/plugins/core/components/LevelFounder.js
@@ -106,6 +106,7 @@ class LevelFounder extends LitElement {
}
firstUpdated() {
+ this.changeLanguage()
this.checkAddressInfo()
window.addEventListener('storage', () => {
@@ -167,28 +168,6 @@ class LevelFounder extends LitElement {
` : ''
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
diff --git a/plugins/plugins/core/components/qortal-info-view.js b/plugins/plugins/core/components/qortal-info-view.js
index 98b17540..080e71aa 100644
--- a/plugins/plugins/core/components/qortal-info-view.js
+++ b/plugins/plugins/core/components/qortal-info-view.js
@@ -1252,6 +1252,13 @@ class QortalInfoView extends LitElement {
`
}
+ firstUpdated() {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
+ }
+
openUserInfo(userData) {
if (userData.startsWith('Q') && userData.length == 34) {
this.getAddressUserResult(userData)
diff --git a/plugins/plugins/core/group-management/group-management.src.js b/plugins/plugins/core/group-management/group-management.src.js
index 2216124b..a3c3bb26 100644
--- a/plugins/plugins/core/group-management/group-management.src.js
+++ b/plugins/plugins/core/group-management/group-management.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -1798,14 +1799,13 @@ class GroupManagement extends LitElement {
setTimeout(getOpen_JoinedGroups, 600000)
}
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault();
- this._textMenu(event)
- })
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- })
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
+ }
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
@@ -1821,12 +1821,6 @@ class GroupManagement extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
- }
-
let configLoaded = false
parentEpml.ready().then(() => {
@@ -1844,11 +1838,6 @@ class GroupManagement extends LitElement {
}
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
@@ -2732,28 +2721,6 @@ class GroupManagement extends LitElement {
return html``
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
async createGroup(e) {
this.resetDefaultSettings()
const createFeeInput = this.createFee
@@ -3650,11 +3617,6 @@ class GroupManagement extends LitElement {
return apiKey
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
diff --git a/plugins/plugins/core/messaging/chain-messaging/chain-messaging.src.js b/plugins/plugins/core/messaging/chain-messaging/chain-messaging.src.js
index c95668ef..7b38cd56 100644
--- a/plugins/plugins/core/messaging/chain-messaging/chain-messaging.src.js
+++ b/plugins/plugins/core/messaging/chain-messaging/chain-messaging.src.js
@@ -1,4 +1,5 @@
import { LitElement, html, css } from 'lit'
+import isElectron from 'is-electron'
class ChainMessaging extends LitElement {
static get properties() {
@@ -46,20 +47,16 @@ class ChainMessaging extends LitElement {
this.changeTheme()
- setInterval(() => {
- this.changeTheme();
- }, 100)
+ setInterval(() => {
+ this.changeTheme();
+ }, 100)
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault();
- });
-
- window.addEventListener("click", () => {
- });
-
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
}
diff --git a/plugins/plugins/core/messaging/messaging.src.js b/plugins/plugins/core/messaging/messaging.src.js
index 5b49c265..8a3b093f 100644
--- a/plugins/plugins/core/messaging/messaging.src.js
+++ b/plugins/plugins/core/messaging/messaging.src.js
@@ -1,5 +1,6 @@
import { LitElement, html, css } from 'lit'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
@@ -140,26 +141,16 @@ class Messaging extends LitElement {
this.changeTheme()
- setInterval(() => {
- this.changeTheme();
- }, 100)
+ setInterval(() => {
+ this.changeTheme();
+ }, 100)
- window.addEventListener("contextmenu", (event) => {
-
- event.preventDefault();
- this._textMenu(event)
- });
-
- window.addEventListener("click", () => {
-
- parentEpml.request('closeCopyTextMenu', null)
- });
-
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
-
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
let configLoaded = false
@@ -177,13 +168,6 @@ class Messaging extends LitElement {
}
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async value => {
-
- if (value === 'false' && window.getSelection().toString().length !== 0) {
-
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
@@ -205,40 +189,6 @@ class Messaging extends LitElement {
onPageNavigation(pageUrl) {
parentEpml.request('setPageUrl', pageUrl)
}
-
- _textMenu(event) {
-
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
-
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
-
- checkSelectedTextAndShowMenu()
- }
-
- clearSelection() {
-
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
}
window.customElements.define('q-messaging', Messaging)
diff --git a/plugins/plugins/core/messaging/q-chat/q-chat.src.js b/plugins/plugins/core/messaging/q-chat/q-chat.src.js
index b7492f5c..6f4bd9a4 100644
--- a/plugins/plugins/core/messaging/q-chat/q-chat.src.js
+++ b/plugins/plugins/core/messaging/q-chat/q-chat.src.js
@@ -9,6 +9,7 @@ import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } fro
import { qchatStyles } from './q-chat-css.src.js'
import WebWorker from 'web-worker:./computePowWorker.src.js';
import {repeat} from 'lit/directives/repeat.js';
+import isElectron from 'is-electron'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
@@ -419,8 +420,6 @@ class Chat extends LitElement {
this.shadowRoot.getElementById('messageBox').addEventListener('keydown', stopKeyEventPropagation);
-
-
const runFunctionsAfterPageLoad = () => {
// Functions to exec after render while waiting for page info...
// getDataFromURL()
@@ -443,16 +442,6 @@ class Chat extends LitElement {
let runFunctionsAfterPageLoadInterval = setInterval(runFunctionsAfterPageLoad, 100);
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault()
- this._textMenu(event)
- })
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- parentEpml.request('closeFramePasteMenu', null)
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -467,11 +456,12 @@ class Chat extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- parentEpml.request('closeFramePasteMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
let configLoaded = false
@@ -499,20 +489,11 @@ class Chat extends LitElement {
}).then(res => {
this.balance = res
})
- parentEpml.subscribe('copy_menu_switch', async value => {
-
- if (value === 'false' && window.getSelection().toString().length !== 0) {
-
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
-
-
setOpenPrivateMessage(props) {
this.openPrivateMessage = props.open;
this.shadowRoot.getElementById("sendTo").value = props.name
@@ -549,8 +530,6 @@ class Chat extends LitElement {
window.location.href = `../../group-management/index.html`
}
-
-
async _sendMessage(outSideMsg, msg) {
this.isLoading = true;
@@ -914,44 +893,11 @@ class Chat extends LitElement {
}
}
- _textMenu(event) {
-
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
-
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
-
- checkSelectedTextAndShowMenu()
- }
-
_textArea(e) {
if (e.keyCode === 13 && !e.shiftKey) this._sendMessage()
}
- clearSelection() {
-
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
onPageNavigation(pageUrl) {
parentEpml.request('setPageUrl', pageUrl)
}
diff --git a/plugins/plugins/core/minting/minting-info.src.js b/plugins/plugins/core/minting/minting-info.src.js
index a5d7c70d..fab86ced 100644
--- a/plugins/plugins/core/minting/minting-info.src.js
+++ b/plugins/plugins/core/minting/minting-info.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -396,7 +397,15 @@ class MintingInfo extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- let configLoaded = false;
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
+ }
+
+ let configLoaded = false
parentEpml.ready().then(() => {
parentEpml.subscribe('selected_address', async selectedAddress => {
@@ -418,9 +427,6 @@ class MintingInfo extends LitElement {
}
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) this.clearSelection()
- })
})
parentEpml.imReady()
}
diff --git a/plugins/plugins/core/name-registration/name-registration.src.js b/plugins/plugins/core/name-registration/name-registration.src.js
index 007a66b5..7e1e3f01 100644
--- a/plugins/plugins/core/name-registration/name-registration.src.js
+++ b/plugins/plugins/core/name-registration/name-registration.src.js
@@ -2,6 +2,7 @@ import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
+import isElectron from 'is-electron'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
@@ -562,15 +563,6 @@ class NameRegistration extends LitElement {
setTimeout(fetchMarketSellNames, 180000)
}
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault()
- this._textMenu(event)
- })
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -585,10 +577,12 @@ class NameRegistration extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
let configLoaded = false
@@ -608,11 +602,6 @@ class NameRegistration extends LitElement {
}
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
@@ -870,11 +859,6 @@ class NameRegistration extends LitElement {
return apiKey
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
async registerName(e) {
this.error = false
this.message = ''
@@ -1178,32 +1162,6 @@ class NameRegistration extends LitElement {
validateReceiver()
}
- _textMenu(event) {
-
- const getSelectedText = () => {
- var text = ""
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
-
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
round(number) {
let result = (Math.round(parseFloat(number) * 1e8) / 1e8).toFixed(8)
return result
diff --git a/plugins/plugins/core/names-market/names-market.src.js b/plugins/plugins/core/names-market/names-market.src.js
index ff5e72b8..d020f297 100644
--- a/plugins/plugins/core/names-market/names-market.src.js
+++ b/plugins/plugins/core/names-market/names-market.src.js
@@ -2,7 +2,9 @@ import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
+import isElectron from 'is-electron'
import '../components/qortal-info-view.js'
+
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
})
@@ -566,15 +568,6 @@ class NamesMarket extends LitElement {
setTimeout(fetchMarketSoldNames, 300000)
}
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault()
- this._textMenu(event)
- })
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -589,10 +582,12 @@ class NamesMarket extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
let configLoaded = false
@@ -612,11 +607,6 @@ class NamesMarket extends LitElement {
}
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
@@ -1026,11 +1016,6 @@ class NamesMarket extends LitElement {
return apiKey
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
async createCancelSellName() {
const name = this.shadowRoot.getElementById("toCancelSellName").value
const cancelSellFeeInput = this.cancelSellFee
@@ -1171,32 +1156,6 @@ class NamesMarket extends LitElement {
validateReceiver()
}
- _textMenu(event) {
-
- const getSelectedText = () => {
- var text = ""
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
-
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
round(number) {
let result = (Math.round(parseFloat(number) * 1e8) / 1e8).toFixed(8)
return result
diff --git a/plugins/plugins/core/node-management/node-management.src.js b/plugins/plugins/core/node-management/node-management.src.js
index 17efaf20..341ad989 100644
--- a/plugins/plugins/core/node-management/node-management.src.js
+++ b/plugins/plugins/core/node-management/node-management.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -283,22 +284,8 @@ class NodeManagement extends LitElement {
this.changeTheme()
this.changeLanguage()
-
- // Call updateMintingAccounts
this.updateMintingAccounts()
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault()
- this.isTextMenuOpen = true
- this._textMenu(event)
- })
-
- window.addEventListener('click', () => {
- if (this.isTextMenuOpen) {
- parentEpml.request('closeCopyTextMenu', null)
- }
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -313,37 +300,14 @@ class NodeManagement extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
- this.shadowRoot.getElementById('addMintingAccountKey').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'addMintingAccountKey')
- this.myElementId = this.shadowRoot.getElementById('addMintingAccountKey')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
// Calculate HH MM SS from Milliseconds...
const convertMsToTime = (milliseconds) => {
let day, hour, minute, seconds;
@@ -414,21 +378,6 @@ class NodeManagement extends LitElement {
}
this.config = JSON.parse(c);
})
-
- parentEpml.subscribe('copy_menu_switch', async (value) => {
- if (value === 'false' && this.isTextMenuOpen === true) {
- this.clearSelection()
- this.isTextMenuOpen = false
- }
- })
-
- parentEpml.subscribe('frame_paste_menu_switch', async res => {
- res = JSON.parse(res)
- if (res.isOpen === false && this.isPasteMenuOpen === true) {
- this.pasteToTextBox(this.myElementId)
- this.isPasteMenuOpen = false
- }
- })
})
parentEpml.imReady()
}
@@ -558,43 +507,6 @@ class NodeManagement extends LitElement {
});
}
- pasteToTextBox(elementId) {
- window.focus()
- navigator.clipboard.readText().then((clipboardText) => {
- elementId.value += clipboardText
- elementId.focus()
- })
- }
-
- pasteMenu(event, elementId) {
- let eventObject = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY, elementId }
- parentEpml.request('openFramePasteMenu', eventObject)
- }
-
- _textMenu(event) {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
removeMintingAccount(publicKey) {
this.removeMintingAccountLoading = true;
@@ -622,11 +534,6 @@ class NodeManagement extends LitElement {
return apiKey;
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
isEmptyArray(arr) {
if (!arr) return true;
return arr.length === 0;
diff --git a/plugins/plugins/core/puzzles/puzzles.src.js b/plugins/plugins/core/puzzles/puzzles.src.js
index 08ed7397..ff3da640 100644
--- a/plugins/plugins/core/puzzles/puzzles.src.js
+++ b/plugins/plugins/core/puzzles/puzzles.src.js
@@ -1,13 +1,13 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
})
-// Not sure if these are imported in the proper way:
import nacl from '../../../../crypto/api/deps/nacl-fast.js'
import Base58 from '../../../../crypto/api/deps/Base58.js'
import publicKeyToAddress from '../../../../crypto/api/wallet/publicKeyToAddress.js'
@@ -184,15 +184,6 @@ class Puzzles extends LitElement {
this.changeTheme()
this.changeLanguage()
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault();
- this._textMenu(event)
- })
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -207,10 +198,12 @@ class Puzzles extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
const textBox = this.shadowRoot.getElementById("puzzleGuess")
@@ -335,55 +328,8 @@ class Puzzles extends LitElement {
}
this.config = JSON.parse(c)
})
-
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
-
- parentEpml.subscribe('frame_paste_menu_switch', async res => {
- res = JSON.parse(res)
-
- if (res.isOpen === false && this.isPasteMenuOpen === true) {
- this.pasteToTextBox(textBox)
- this.isPasteMenuOpen = false
- }
- })
})
-
parentEpml.imReady()
-
- textBox.addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = "";
-
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
-
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
-
- if (selectedText && typeof selectedText === 'string') {
- // ...
- } else {
- this.pasteMenu(event)
- this.isPasteMenuOpen = true
-
- // Prevent Default and Stop Event Bubbling
- event.preventDefault()
- event.stopPropagation()
- }
- }
-
- checkSelectedTextAndShowMenu()
- })
}
changeTheme() {
@@ -486,54 +432,10 @@ class Puzzles extends LitElement {
this.loading = false
}
- pasteToTextBox(textBox) {
- // Return focus to the window
- window.focus()
-
- navigator.clipboard.readText().then(clipboardText => {
-
- textBox.value += clipboardText
- textBox.focus()
- });
- }
-
- pasteMenu(event) {
- let eventObject = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- parentEpml.request('openFramePasteMenu', eventObject)
- }
-
- _textMenu(event) {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
-
- checkSelectedTextAndShowMenu()
- }
-
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
}
-
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
}
window.customElements.define('puzzles-info', Puzzles)
diff --git a/plugins/plugins/core/q-app/q-apps.src.js b/plugins/plugins/core/q-app/q-apps.src.js
index fd90bb76..94d0ab29 100644
--- a/plugins/plugins/core/q-app/q-apps.src.js
+++ b/plugins/plugins/core/q-app/q-apps.src.js
@@ -3,6 +3,7 @@ import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
import { columnBodyRenderer, gridRowDetailsRenderer } from '@vaadin/grid/lit.js'
+import isElectron from 'is-electron'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
@@ -589,21 +590,6 @@ class QApps extends LitElement {
setTimeout(getRelayMode, 600000)
}
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault();
- this._textMenu(event)
- });
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- });
-
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
- }
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -618,6 +604,14 @@ class QApps extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
+ }
+
let configLoaded = false
parentEpml.ready().then(() => {
@@ -639,11 +633,6 @@ class QApps extends LitElement {
}
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
@@ -1197,39 +1186,12 @@ class QApps extends LitElement {
return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i]
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
getApiKey() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
let apiKey = myNode.apiKey
return apiKey
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js
index c01bd5d5..ce9355a0 100644
--- a/plugins/plugins/core/qdn/browser/browser.src.js
+++ b/plugins/plugins/core/qdn/browser/browser.src.js
@@ -1,31 +1,29 @@
-import { LitElement, html, css } from 'lit';
-import { render } from 'lit/html.js';
-import { Epml } from '../../../../epml';
-import {
- use,
- get,
- translate,
- translateUnsafeHTML,
- registerTranslateConfig,
-} from 'lit-translate';
+import { LitElement, html, css } from 'lit'
+import { render } from 'lit/html.js'
+import { Epml } from '../../../../epml'
+import isElectron from 'is-electron'
+import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
+
registerTranslateConfig({
- loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()),
-});
+ loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json())
+})
+
import FileSaver from 'file-saver'
-import * as actions from '../../components/qdn-action-types';
-import '@material/mwc-button';
-import '@material/mwc-icon';
+import * as actions from '../../components/qdn-action-types'
+import '@material/mwc-button'
+import '@material/mwc-icon'
import '@material/mwc-checkbox'
-import WebWorker from 'web-worker:./computePowWorkerFile.src.js';
-import WebWorkerChat from 'web-worker:./computePowWorker.src.js';
-import { publishData } from '../../../utils/publish-image.js';
+import WebWorker from 'web-worker:./computePowWorkerFile.src.js'
+import WebWorkerChat from 'web-worker:./computePowWorker.src.js'
+import { publishData } from '../../../utils/publish-image.js'
import { Loader } from '../../../utils/loader.js';
-import { QORT_DECIMALS } from '../../../../../crypto/api/constants';
+import { QORT_DECIMALS } from '../../../../../crypto/api/constants'
import nacl from '../../../../../crypto/api/deps/nacl-fast.js'
import ed2curve from '../../../../../crypto/api/deps/ed2curve.js'
-import { mimeToExtensionMap } from '../../components/qdn-action-constants';
-import { base64ToUint8Array, encryptData, fileToBase64, uint8ArrayToBase64 } from '../../components/qdn-action-encryption';
-const parentEpml = new Epml({ type: 'WINDOW', source: window.parent });
+import { mimeToExtensionMap } from '../../components/qdn-action-constants'
+import { base64ToUint8Array, encryptData, fileToBase64, uint8ArrayToBase64 } from '../../components/qdn-action-encryption'
+
+const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
class WebBrowser extends LitElement {
static get properties() {
@@ -235,14 +233,6 @@ class WebBrowser extends LitElement {
configLoaded = true;
}
})
- parentEpml.subscribe('copy_menu_switch', async (value) => {
- if (
- value === 'false' &&
- window.getSelection().toString().length !== 0
- ) {
- this.clearSelection();
- }
- })
})
}
@@ -487,15 +477,6 @@ class WebBrowser extends LitElement {
this.rvnWallet = window.parent.reduxStore.getState().app.selectedAddress.rvnWallet
this.arrrWallet = window.parent.reduxStore.getState().app.selectedAddress.arrrWallet
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault();
- this._textMenu(event);
- });
-
- window.addEventListener('click', () => {
- parentEpml.request('closeCopyTextMenu', null);
- });
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage');
const checkTheme = localStorage.getItem('qortalTheme');
@@ -510,11 +491,13 @@ class WebBrowser extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme);
});
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null);
- }
- };
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
+ }
window.addEventListener('message', async (event) => {
if (
@@ -2814,40 +2797,6 @@ class WebBrowser extends LitElement {
return ret;
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = '';
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString();
- } else if (
- typeof this.shadowRoot.selection != 'undefined' &&
- this.shadowRoot.selection.type == 'Text'
- ) {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- };
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
- let _eve = {
- pageX: event.pageX,
- pageY: event.pageY,
- clientX: event.clientX,
- clientY: event.clientY,
- };
- let textMenuObject = {
- selectedText: selectedText,
- eventObject: _eve,
- isFrame: true,
- };
- parentEpml.request('openCopyTextMenu', textMenuObject);
- }
- };
- checkSelectedTextAndShowMenu();
- }
-
getApiKey() {
const myNode =
window.parent.reduxStore.getState().app.nodeConfig.knownNodes[
@@ -2856,11 +2805,6 @@ class WebBrowser extends LitElement {
let apiKey = myNode.apiKey;
return apiKey;
}
-
- clearSelection() {
- window.getSelection().removeAllRanges();
- window.parent.getSelection().removeAllRanges();
- }
}
window.customElements.define('web-browser', WebBrowser);
diff --git a/plugins/plugins/core/qdn/data-management/data-management.src.js b/plugins/plugins/core/qdn/data-management/data-management.src.js
index ff650b0c..4107fe94 100644
--- a/plugins/plugins/core/qdn/data-management/data-management.src.js
+++ b/plugins/plugins/core/qdn/data-management/data-management.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../../epml'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -445,15 +446,6 @@ class DataManagement extends LitElement {
this.changeLanguage()
this.showManagement()
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault()
- this._textMenu(event)
- })
-
- window.addEventListener('click', () => {
- parentEpml.request('closeCopyTextMenu', null)
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -468,10 +460,12 @@ class DataManagement extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
let configLoaded = false
@@ -498,13 +492,6 @@ class DataManagement extends LitElement {
configLoaded = true
}
})
- parentEpml.subscribe('copy_menu_switch', async value => {
-
- if (value === 'false' && window.getSelection().toString().length !== 0) {
-
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
@@ -980,29 +967,6 @@ class DataManagement extends LitElement {
return ret
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
-
- checkSelectedTextAndShowMenu()
- }
-
async getResourcesGrid() {
this.resourcesGrid = this.shadowRoot.querySelector(`#resourcesGrid`)
this.pagesControl = this.shadowRoot.querySelector('#pages')
@@ -1123,11 +1087,6 @@ class DataManagement extends LitElement {
return apiKey;
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
diff --git a/plugins/plugins/core/qdn/publish/publish.src.js b/plugins/plugins/core/qdn/publish/publish.src.js
index bd7e9c85..06cc2514 100644
--- a/plugins/plugins/core/qdn/publish/publish.src.js
+++ b/plugins/plugins/core/qdn/publish/publish.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../../epml'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -241,12 +242,6 @@ class PublishData extends LitElement {
}
this.config = JSON.parse(c)
})
-
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
})
}
@@ -327,15 +322,6 @@ class PublishData extends LitElement {
this.changeTheme()
this.changeLanguage()
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault()
- this._textMenu(event)
- })
-
- window.addEventListener('click', () => {
- parentEpml.request('closeCopyTextMenu', null)
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -350,10 +336,12 @@ class PublishData extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
}
@@ -679,29 +667,6 @@ class PublishData extends LitElement {
validate()
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
-
fetchResourceMetadata() {
let identifier = this.identifier != null ? this.identifier : "default"
@@ -736,11 +701,6 @@ class PublishData extends LitElement {
let apiKey = myNode.apiKey
return apiKey
}
-
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
}
window.customElements.define('publish-data', PublishData)
diff --git a/plugins/plugins/core/qdn/websites.src.js b/plugins/plugins/core/qdn/websites.src.js
index e7c3a252..dcdf4187 100644
--- a/plugins/plugins/core/qdn/websites.src.js
+++ b/plugins/plugins/core/qdn/websites.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -426,21 +427,6 @@ class Websites extends LitElement {
setTimeout(getRelayMode, 600000)
}
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault();
- this._textMenu(event)
- });
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- });
-
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
- }
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -455,6 +441,14 @@ class Websites extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
+ }
+
let configLoaded = false
parentEpml.ready().then(() => {
@@ -476,11 +470,6 @@ class Websites extends LitElement {
}
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
})
parentEpml.imReady()
}
@@ -1101,39 +1090,12 @@ class Websites extends LitElement {
return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i]
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
getApiKey() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
let apiKey = myNode.apiKey
return apiKey
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
diff --git a/plugins/plugins/core/reward-share/reward-share.src.js b/plugins/plugins/core/reward-share/reward-share.src.js
index ce0d7e59..2ee29c18 100644
--- a/plugins/plugins/core/reward-share/reward-share.src.js
+++ b/plugins/plugins/core/reward-share/reward-share.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -214,15 +215,6 @@ class RewardShare extends LitElement {
this.changeTheme()
this.changeLanguage()
- window.addEventListener("contextmenu", (event) => {
- event.preventDefault()
- this._textMenu(event)
- })
-
- window.addEventListener("click", () => {
- parentEpml.request('closeCopyTextMenu', null)
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -237,14 +229,14 @@ class RewardShare extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
- const textBox = this.shadowRoot.getElementById("recipientPublicKey")
-
const updateRewardshares = () => {
parentEpml.request('apiCall', {
url: `/addresses/rewardshares?involving=${this.selectedAddress.address}`
@@ -271,51 +263,9 @@ class RewardShare extends LitElement {
}
this.config = JSON.parse(c)
})
-
- parentEpml.subscribe('copy_menu_switch', async value => {
- if (value === 'false' && window.getSelection().toString().length !== 0) {
- this.clearSelection()
- }
- })
-
- parentEpml.subscribe('frame_paste_menu_switch', async res => {
- res = JSON.parse(res)
- if (res.isOpen === false && this.isPasteMenuOpen === true) {
- this.pasteToTextBox(textBox)
- this.isPasteMenuOpen = false
- }
- })
})
parentEpml.imReady()
-
- textBox.addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
- // ...
- } else {
- this.pasteMenu(event)
- this.isPasteMenuOpen = true
-
- // Prevent Default and Stop Event Bubbling
- event.preventDefault()
- event.stopPropagation()
-
- }
- }
- checkSelectedTextAndShowMenu()
- })
}
changeTheme() {
@@ -733,57 +683,10 @@ class RewardShare extends LitElement {
removeReceiver()
}
- pasteToTextBox(textBox) {
- // Return focus to the window
- window.focus()
-
- navigator.clipboard.readText().then(clipboardText => {
-
- textBox.value += clipboardText
- textBox.focus()
- });
- }
-
- pasteMenu(event) {
- let eventObject = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
- parentEpml.request('openFramePasteMenu', eventObject)
- }
-
- _textMenu(event) {
- const getSelectedText = () => {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString();
- } else if (typeof this.shadowRoot.selection != "undefined" && this.shadowRoot.selection.type == "Text") {
- text = this.shadowRoot.selection.createRange().text;
- }
- return text;
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText();
- if (selectedText && typeof selectedText === 'string') {
-
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
-
- checkSelectedTextAndShowMenu()
- }
-
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
}
-
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
}
window.customElements.define('reward-share', RewardShare)
diff --git a/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js b/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js
index a4cf94e0..7e565213 100644
--- a/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js
+++ b/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js
@@ -4,6 +4,7 @@ import "../components/ButtonIconCopy.js"
import { use, get, translate, registerTranslateConfig } from "lit-translate"
import { blocksNeed } from "../../utils/blocks-needed.js"
import "../components/ButtonIconCopy.js"
+import isElectron from 'is-electron'
registerTranslateConfig({
loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()),
@@ -226,6 +227,13 @@ class SponsorshipList extends LitElement {
async firstUpdated() {
await this.atMount()
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
+ }
}
async getRewardShareRelationship(recipientAddress) {
diff --git a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js
index 16044c60..fad9a474 100644
--- a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js
+++ b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -2036,17 +2037,6 @@ class TradeBotPortal extends LitElement {
setTimeout(getQortArrrPrice, 300000)
}
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault()
- this._textMenu(event)},
- { passive: true }
- )
-
- window.addEventListener('click', () => {
- parentEpml.request('closeCopyTextMenu', null)},
- { passive: true }
- )
-
window.addEventListener('storage', () => {
this.tradeBotBtcBook = JSON.parse(localStorage.getItem(this.btcWallet) || "[]")
this.tradeBotLtcBook = JSON.parse(localStorage.getItem(this.ltcWallet) || "[]")
@@ -2063,8 +2053,12 @@ class TradeBotPortal extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) parentEpml.request('closeCopyTextMenu', null)
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
this.btcWallet = window.parent.reduxStore.getState().app.selectedAddress.btcWallet.address
@@ -2106,10 +2100,6 @@ class TradeBotPortal extends LitElement {
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async (value) => {
- if (value === 'false' && window.getSelection().toString().length !== 0) this.clearSelection()
- })
-
let coinSelectionMenu = this.shadowRoot.getElementById("coinSelectionMenu")
coinSelectionMenu.addEventListener('change', function () {
@@ -3352,42 +3342,6 @@ class TradeBotPortal extends LitElement {
return apiKey;
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
- _textMenu(event) {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- let _eve = {
- pageX: event.pageX,
- pageY: event.pageY,
- clientX: event.clientX,
- clientY: event.clientY,
- }
- let textMenuObject = {
- selectedText: selectedText,
- eventObject: _eve,
- isFrame: true,
- }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
clearTradeBotForm() {
this.shadowRoot.getElementById('autoBuy' + this.listedCoins.get(this.selectedCoin).coinCode + 'QortAmountInput').value = this.initialAmount
this.shadowRoot.getElementById('autoBuy' + this.listedCoins.get(this.selectedCoin).coinCode + 'PriceInput').value = this.initialAmount
diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js
index f3b7a741..1339711b 100644
--- a/plugins/plugins/core/trade-portal/trade-portal.src.js
+++ b/plugins/plugins/core/trade-portal/trade-portal.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -1378,17 +1379,6 @@ class TradePortal extends LitElement {
setTimeout(getQortArrrPrice, 300000)
}
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault()
- this._textMenu(event)},
- { passive: true }
- )
-
- window.addEventListener('click', () => {
- parentEpml.request('closeCopyTextMenu', null)},
- { passive: true }
- )
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -1399,8 +1389,12 @@ class TradePortal extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) parentEpml.request('closeCopyTextMenu', null)
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
this.btcWallet = window.parent.reduxStore.getState().app.selectedAddress.btcWallet.address
@@ -1443,10 +1437,6 @@ class TradePortal extends LitElement {
this.config = JSON.parse(c)
})
- parentEpml.subscribe('copy_menu_switch', async (value) => {
- if (value === 'false' && window.getSelection().toString().length !== 0) this.clearSelection()
- })
-
let coinSelectionMenu = this.shadowRoot.getElementById("coinSelectionMenu")
coinSelectionMenu.addEventListener('change', function () {
@@ -2790,42 +2780,6 @@ class TradePortal extends LitElement {
return apiKey;
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
- _textMenu(event) {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- let _eve = {
- pageX: event.pageX,
- pageY: event.pageY,
- clientX: event.clientX,
- clientY: event.clientY,
- }
- let textMenuObject = {
- selectedText: selectedText,
- eventObject: _eve,
- isFrame: true,
- }
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
clearBuyForm() {
this.shadowRoot.getElementById('buyAmountInput').value = this.initialAmount
this.shadowRoot.getElementById('buyPriceInput').value = this.initialAmount
diff --git a/plugins/plugins/core/wallet/wallet-app.src.js b/plugins/plugins/core/wallet/wallet-app.src.js
index 3a2ba5d4..ceedf181 100644
--- a/plugins/plugins/core/wallet/wallet-app.src.js
+++ b/plugins/plugins/core/wallet/wallet-app.src.js
@@ -1,6 +1,7 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
+import isElectron from 'is-electron'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
@@ -756,21 +757,6 @@ class MultiWallet extends LitElement {
this.wallets.get('rvn').wallet = window.parent.reduxStore.getState().app.selectedAddress.rvnWallet
this.wallets.get('arrr').wallet = window.parent.reduxStore.getState().app.selectedAddress.arrrWallet
})
-
- parentEpml.subscribe('copy_menu_switch', async (value) => {
- if (value === 'false' && this.isTextMenuOpen === true) {
- this.clearSelection()
- this.isTextMenuOpen = false
- }
- })
-
- parentEpml.subscribe('frame_paste_menu_switch', async res => {
- res = JSON.parse(res)
- if (res.isOpen === false && this.isPasteMenuOpen === true) {
- this.pasteToTextBox(this.myElementId)
- this.isPasteMenuOpen = false
- }
- })
})
}
@@ -2660,18 +2646,6 @@ class MultiWallet extends LitElement {
this.showWallet()
- window.addEventListener('contextmenu', (event) => {
- event.preventDefault()
- this.isTextMenuOpen = true
- this._textMenu(event)
- })
-
- window.addEventListener('click', () => {
- if (this.isTextMenuOpen) {
- parentEpml.request('closeCopyTextMenu', null)
- }
- })
-
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
const checkTheme = localStorage.getItem('qortalTheme')
@@ -2686,386 +2660,13 @@ class MultiWallet extends LitElement {
document.querySelector('html').setAttribute('theme', this.theme)
})
- window.onkeyup = (e) => {
- if (e.keyCode === 27) {
- parentEpml.request('closeCopyTextMenu', null)
- }
+ if (!isElectron()) {
+ } else {
+ window.addEventListener('contextmenu', (event) => {
+ event.preventDefault()
+ window.parent.electronAPI.showMyMenu()
+ })
}
-
- this.shadowRoot.getElementById('amountInput').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'amountInput')
- this.myElementId = this.shadowRoot.getElementById('amountInput')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('recipient').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'recipient')
- this.myElementId = this.shadowRoot.getElementById('recipient')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('btcAmountInput').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'btcAmountInput')
- this.myElementId = this.shadowRoot.getElementById('btcAmountInput')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('btcRecipient').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'btcRecipient')
- this.myElementId = this.shadowRoot.getElementById('btcRecipient')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('ltcAmountInput').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'ltcAmountInput')
- this.myElementId = this.shadowRoot.getElementById('ltcAmountInput')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('ltcRecipient').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'ltcRecipient')
- this.myElementId = this.shadowRoot.getElementById('ltcRecipient')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('dogeAmountInput').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'dogeAmountInput')
- this.myElementId = this.shadowRoot.getElementById('dogeAmountInput')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('dogeRecipient').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'dogeRecipient')
- this.myElementId = this.shadowRoot.getElementById('dogeRecipient')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('dgbAmountInput').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'dgbAmountInput')
- this.myElementId = this.shadowRoot.getElementById('dgbAmountInput')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('dgbRecipient').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'dgbRecipient')
- this.myElementId = this.shadowRoot.getElementById('dgbRecipient')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('rvnAmountInput').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'rvnAmountInput')
- this.myElementId = this.shadowRoot.getElementById('rvnAmountInput')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('rvnRecipient').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'rvnRecipient')
- this.myElementId = this.shadowRoot.getElementById('rvnRecipient')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('arrrAmountInput').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'arrrAmountInput')
- this.myElementId = this.shadowRoot.getElementById('arrrAmountInput')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('arrrRecipient').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'arrrRecipient')
- this.myElementId = this.shadowRoot.getElementById('arrrRecipient')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
-
- this.shadowRoot.getElementById('arrrMemo').addEventListener('contextmenu', (event) => {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- } else {
- this.myElementId = ''
- this.pasteMenu(event, 'arrrMemo')
- this.myElementId = this.shadowRoot.getElementById('arrrMemo')
- this.isPasteMenuOpen = true
- event.preventDefault()
- event.stopPropagation()
- }
- }
- checkSelectedTextAndShowMenu()
- })
}
renderWarning() {
@@ -4210,19 +3811,6 @@ class MultiWallet extends LitElement {
}
}
- pasteToTextBox(elementId) {
- window.focus()
- navigator.clipboard.readText().then((clipboardText) => {
- elementId.value += clipboardText
- elementId.focus()
- })
- }
-
- pasteMenu(event, elementId) {
- let eventObject = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY, elementId }
- parentEpml.request('openFramePasteMenu', eventObject)
- }
-
async sendQort() {
const amount = this.shadowRoot.getElementById('amountInput').value
let recipient = this.shadowRoot.getElementById('recipient').value
@@ -5649,41 +5237,12 @@ class MultiWallet extends LitElement {
this.transactionsGrid.items = this.wallets.get(this._selectedWallet).transactions.slice(start, end)
}
- _textMenu(event) {
- const getSelectedText = () => {
- var text = ''
- if (typeof window.getSelection != 'undefined') {
- text = window.getSelection().toString()
- } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
- text = this.shadowRoot.selection.createRange().text
- }
- return text
- }
-
- const checkSelectedTextAndShowMenu = () => {
- let selectedText = getSelectedText()
- if (selectedText && typeof selectedText === 'string') {
- let _eve = { pageX: event.pageX, pageY: event.pageY, clientX: event.clientX, clientY: event.clientY }
-
- let textMenuObject = { selectedText: selectedText, eventObject: _eve, isFrame: true }
-
- parentEpml.request('openCopyTextMenu', textMenuObject)
- }
- }
- checkSelectedTextAndShowMenu()
- }
-
getApiKey() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
let apiKey = myNode.apiKey;
return apiKey;
}
- clearSelection() {
- window.getSelection().removeAllRanges()
- window.parent.getSelection().removeAllRanges()
- }
-
transactionItem(transactionObject) {
return `