fix(web): support for older browsers like Safari 11 on iOS 13.7
This commit is contained in:
@@ -60,7 +60,12 @@ export class ThemeManager extends AbstractService {
|
|||||||
}
|
}
|
||||||
case ApplicationEvent.Launched: {
|
case ApplicationEvent.Launched: {
|
||||||
if (!this.application.isNativeMobileWeb()) {
|
if (!this.application.isNativeMobileWeb()) {
|
||||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', this.colorSchemeEventHandler)
|
const mq = window.matchMedia('(prefers-color-scheme: dark)')
|
||||||
|
if (mq.addEventListener != undefined) {
|
||||||
|
mq.addEventListener('change', this.colorSchemeEventHandler)
|
||||||
|
} else {
|
||||||
|
mq.addListener(this.colorSchemeEventHandler)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@@ -131,7 +136,13 @@ export class ThemeManager extends AbstractService {
|
|||||||
;(this.unregisterDesktop as unknown) = undefined
|
;(this.unregisterDesktop as unknown) = undefined
|
||||||
;(this.unregisterStream as unknown) = undefined
|
;(this.unregisterStream as unknown) = undefined
|
||||||
|
|
||||||
window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', this.colorSchemeEventHandler)
|
const mq = window.matchMedia('(prefers-color-scheme: dark)')
|
||||||
|
if (mq.removeEventListener != undefined) {
|
||||||
|
mq.removeEventListener('change', this.colorSchemeEventHandler)
|
||||||
|
} else {
|
||||||
|
mq.removeListener(this.colorSchemeEventHandler)
|
||||||
|
}
|
||||||
|
|
||||||
;(this.application as unknown) = undefined
|
;(this.application as unknown) = undefined
|
||||||
|
|
||||||
this.unsubApp()
|
this.unsubApp()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"presets": ["@babel/preset-typescript", "@babel/preset-env"],
|
"presets": ["@babel/preset-typescript", "@babel/preset-env"],
|
||||||
"plugins": [["@babel/plugin-transform-react-jsx"]]
|
"plugins": [["@babel/plugin-transform-react-jsx"], "@babel/plugin-proposal-class-properties"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,3 +4,5 @@ last 2 Edge versions
|
|||||||
last 2 Safari versions
|
last 2 Safari versions
|
||||||
last 2 Opera versions
|
last 2 Opera versions
|
||||||
Firefox ESR
|
Firefox ESR
|
||||||
|
safari 11
|
||||||
|
safari 13
|
||||||
@@ -26,6 +26,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "*",
|
"@babel/core": "*",
|
||||||
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||||
"@babel/plugin-transform-react-jsx": "^7.19.0",
|
"@babel/plugin-transform-react-jsx": "^7.19.0",
|
||||||
"@babel/preset-env": "*",
|
"@babel/preset-env": "*",
|
||||||
"@babel/preset-typescript": "^7.18.6",
|
"@babel/preset-typescript": "^7.18.6",
|
||||||
|
|||||||
@@ -21,11 +21,21 @@ export class PaneController {
|
|||||||
setIsInMobileView: action,
|
setIsInMobileView: action,
|
||||||
})
|
})
|
||||||
|
|
||||||
window.matchMedia(MediaQueryBreakpoints.md).addEventListener('change', this.mediumScreenMQHandler)
|
const mediaQuery = window.matchMedia(MediaQueryBreakpoints.md)
|
||||||
|
if (mediaQuery?.addEventListener != undefined) {
|
||||||
|
mediaQuery.addEventListener('change', this.mediumScreenMQHandler)
|
||||||
|
} else {
|
||||||
|
mediaQuery.addListener(this.mediumScreenMQHandler)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deinit() {
|
deinit() {
|
||||||
window.matchMedia(MediaQueryBreakpoints.md).removeEventListener('change', this.mediumScreenMQHandler)
|
const mq = window.matchMedia(MediaQueryBreakpoints.md)
|
||||||
|
if (mq?.removeEventListener != undefined) {
|
||||||
|
mq.removeEventListener('change', this.mediumScreenMQHandler)
|
||||||
|
} else {
|
||||||
|
mq.removeListener(this.mediumScreenMQHandler)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mediumScreenMQHandler = (event: MediaQueryListEvent) => {
|
mediumScreenMQHandler = (event: MediaQueryListEvent) => {
|
||||||
|
|||||||
@@ -18,9 +18,21 @@ export const useMediaQuery = (mediaQuery: string) => {
|
|||||||
setMatches(event.matches)
|
setMatches(event.matches)
|
||||||
}
|
}
|
||||||
|
|
||||||
window.matchMedia(mediaQuery).addEventListener('change', handler)
|
const mq = window.matchMedia(mediaQuery)
|
||||||
|
if (mq.addEventListener != undefined) {
|
||||||
|
mq.addEventListener('change', handler)
|
||||||
|
} else {
|
||||||
|
mq.addListener(handler)
|
||||||
|
}
|
||||||
|
|
||||||
return () => window.matchMedia(mediaQuery).removeEventListener('change', handler)
|
return () => {
|
||||||
|
const mq = window.matchMedia(mediaQuery)
|
||||||
|
if (mq.removeEventListener != undefined) {
|
||||||
|
mq.removeEventListener('change', handler)
|
||||||
|
} else {
|
||||||
|
mq.removeListener(handler)
|
||||||
|
}
|
||||||
|
}
|
||||||
}, [mediaQuery])
|
}, [mediaQuery])
|
||||||
|
|
||||||
return matches
|
return matches
|
||||||
|
|||||||
@@ -47,9 +47,9 @@ module.exports = (env) => {
|
|||||||
{ from: 'src/500.html' },
|
{ from: 'src/500.html' },
|
||||||
{ from: 'src/index.html' },
|
{ from: 'src/index.html' },
|
||||||
{ from: 'src/manifest.webmanifest' },
|
{ from: 'src/manifest.webmanifest' },
|
||||||
{ from: 'src/robots.txt' }
|
{ from: 'src/robots.txt' },
|
||||||
]
|
],
|
||||||
})
|
}),
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: ['.ts', '.tsx', '.js'],
|
extensions: ['.ts', '.tsx', '.js'],
|
||||||
@@ -67,7 +67,10 @@ module.exports = (env) => {
|
|||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.(js|tsx?)$/,
|
test: /\.(js|tsx?)$/,
|
||||||
exclude: /(node_modules)/,
|
/**
|
||||||
|
* @standardnotes/common uses class properties which we need to run through our babel rules.
|
||||||
|
*/
|
||||||
|
exclude: /node_modules\/(?!(@standardnotes\/common))/,
|
||||||
use: [
|
use: [
|
||||||
'babel-loader',
|
'babel-loader',
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7521,6 +7521,7 @@ __metadata:
|
|||||||
resolution: "@standardnotes/web@workspace:packages/web"
|
resolution: "@standardnotes/web@workspace:packages/web"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/core": "*"
|
"@babel/core": "*"
|
||||||
|
"@babel/plugin-proposal-class-properties": ^7.18.6
|
||||||
"@babel/plugin-transform-react-jsx": ^7.19.0
|
"@babel/plugin-transform-react-jsx": ^7.19.0
|
||||||
"@babel/preset-env": "*"
|
"@babel/preset-env": "*"
|
||||||
"@babel/preset-typescript": ^7.18.6
|
"@babel/preset-typescript": ^7.18.6
|
||||||
|
|||||||
Reference in New Issue
Block a user