Skip to content

Commit 33aadba

Browse files
author
Mukul Mehta
committed
Bump version to 0.7.1
1 parent 9b77e2f commit 33aadba

File tree

5 files changed

+127
-4
lines changed

5 files changed

+127
-4
lines changed

apps/extension/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "mexit",
33
"description": "Mexit - Augment your thoughts, Automate your tasks",
4-
"version": "0.7.0",
4+
"version": "0.7.1",
55
"private": true,
66
"dependencies": {
77
"@iconify/react": "^3.1.3",

apps/extension/src/manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "Mexit",
33
"description": "Mexit - Augment your thoughts, Automate your tasks",
44
"manifest_version": 3,
5-
"version": "0.7.0",
5+
"version": "0.7.1",
66
"icons": {
77
"16": "Assets/icon16x16.png",
88
"48": "Assets/icon48x48.png",

apps/webapp/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mexit-webapp",
3-
"version": "0.7.0",
3+
"version": "0.7.1",
44
"license": "MIT",
55
"scripts": {
66
"dev": "NX_BUILD_MODE=development vite",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
export const _registerEvent = (target, eventType, callback) => {
2+
if (target.addEventListener) {
3+
target.addEventListener(eventType, callback)
4+
return {
5+
remove: () => {
6+
target.removeEventListener(eventType, callback)
7+
}
8+
}
9+
} else {
10+
target.attachEvent(eventType, callback)
11+
return {
12+
remove: () => {
13+
target.detachEvent(eventType, callback)
14+
}
15+
}
16+
}
17+
}
18+
19+
const _createHiddenIFrame = (target, url: string) => {
20+
const iframe = document.createElement('iframe')
21+
iframe.src = url
22+
iframe.id = 'hiddenIFrameVeryHiddenHaha'
23+
iframe.style.display = 'none'
24+
25+
target.appendChild(iframe)
26+
return iframe
27+
}
28+
29+
const openUriWithHiddenFrame = (uri, failCb, successCb) => {
30+
const timeout = setTimeout(function () {
31+
failCb()
32+
handler.remove()
33+
}, 500)
34+
35+
let iframe: HTMLIFrameElement = document.querySelector('#hiddenIFrameVeryHiddenHaha')
36+
if (!iframe) {
37+
iframe = _createHiddenIFrame(document.body, 'about:blank')
38+
}
39+
40+
const handler = _registerEvent(window, 'blur', onBlur)
41+
function onBlur() {
42+
clearTimeout(timeout)
43+
handler.remove()
44+
successCb()
45+
}
46+
47+
iframe.contentWindow.location.href = uri
48+
}
49+
50+
const openUriWithTimeoutHack = (uri, failCb, successCb) => {
51+
const timeout = setTimeout(function () {
52+
failCb()
53+
handler.remove()
54+
}, 500)
55+
56+
//handle page running in an iframe (blur must be registered with top level window)
57+
let target: any = window
58+
while (target !== target.parent) {
59+
target = target.parent
60+
}
61+
62+
const handler = _registerEvent(target, 'blur', onBlur)
63+
64+
function onBlur() {
65+
clearTimeout(timeout)
66+
handler.remove()
67+
successCb()
68+
}
69+
70+
window.location = uri
71+
}
72+
73+
const openUriUsingFirefox = (uri, failCb, successCb) => {
74+
let iframe: HTMLIFrameElement = document.querySelector('#hiddenIFrameVeryHiddenHaha')
75+
76+
if (!iframe) {
77+
iframe = _createHiddenIFrame(document.body, 'about:blank')
78+
}
79+
80+
try {
81+
iframe.contentWindow.location.href = uri
82+
successCb()
83+
} catch (e) {
84+
if (e.name === 'NS_ERROR_UNKNOWN_PROTOCOL') {
85+
failCb()
86+
}
87+
}
88+
}
89+
90+
const checkBrowser = () => {
91+
// eslint-disable-next-line
92+
// @ts-ignore
93+
const isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0
94+
const ua = navigator.userAgent.toLowerCase()
95+
96+
return {
97+
isOpera: isOpera,
98+
// eslint-disable-next-line
99+
// @ts-ignore
100+
isFirefox: typeof InstallTrigger !== 'undefined',
101+
isSafari:
102+
(~ua.indexOf('safari') && !~ua.indexOf('chrome')) ||
103+
Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0,
104+
// eslint-disable-next-line
105+
// @ts-ignore
106+
isIOS: /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream,
107+
// eslint-disable-next-line
108+
// @ts-ignore
109+
110+
isChrome: !!window.chrome && !isOpera
111+
}
112+
}
113+
114+
export const checkCustomProtocolHandler = (url, fallbackCallback, successCallback) => {
115+
const browser = checkBrowser()
116+
if (browser.isFirefox) {
117+
openUriUsingFirefox(url, fallbackCallback, successCallback)
118+
} else if (browser.isChrome || browser.isIOS) {
119+
openUriWithTimeoutHack(url, fallbackCallback, successCallback)
120+
} else if (browser.isSafari) {
121+
openUriWithHiddenFrame(url, fallbackCallback, successCallback)
122+
}
123+
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mexit",
3-
"version": "0.7.0",
3+
"version": "0.7.1",
44
"license": "MIT",
55
"scripts": {
66
"start": "nx serve",

0 commit comments

Comments
 (0)