fix: custom js, reminder on reset button etc

This commit is contained in:
David Ralph
2021-06-13 13:47:18 +01:00
parent 1f6dc34ee6
commit 335a6864b1
11 changed files with 50 additions and 38 deletions

View File

@@ -11,8 +11,8 @@
"license": "BSD-3-Clause",
"version": "5.0.1",
"dependencies": {
"@fontsource/lexend-deca": "^4.3.0",
"@fontsource/montserrat": "^4.3.0",
"@fontsource/lexend-deca": "^4.4.5",
"@fontsource/montserrat": "^4.4.5",
"@material-ui/core": "4.11.4",
"@material-ui/icons": "4.11.2",
"fetch-jsonp": "^1.1.3",
@@ -28,26 +28,26 @@
"weather-icons-react": "1.2.0"
},
"devDependencies": {
"@babel/core": "^7.14.3",
"@babel/eslint-parser": "^7.14.3",
"@babel/plugin-proposal-class-properties": "^7.13.0",
"@babel/plugin-transform-react-constant-elements": "^7.13.13",
"@babel/plugin-transform-runtime": "^7.14.3",
"@babel/preset-env": "^7.14.2",
"@babel/preset-react": "^7.13.13",
"@babel/core": "^7.14.5",
"@babel/eslint-parser": "^7.14.5",
"@babel/plugin-proposal-class-properties": "^7.14.5",
"@babel/plugin-transform-react-constant-elements": "^7.13.15",
"@babel/plugin-transform-runtime": "^7.14.5",
"@babel/preset-env": "^7.14.5",
"@babel/preset-react": "^7.14.5",
"babel-loader": "^8.2.2",
"babel-plugin-transform-react-class-to-function": "^1.2.2",
"copy-webpack-plugin": "^9.0.0",
"css-loader": "^5.2.5",
"eslint": "^7.27.0",
"css-loader": "^5.2.6",
"eslint": "^7.28.0",
"eslint-config-react-app": "^6.0.0",
"html-webpack-plugin": "^5.3.1",
"mini-css-extract-plugin": "^1.6.0",
"sass": "^1.34.0",
"sass-loader": "^12.0.0",
"sass": "^1.34.1",
"sass-loader": "^12.1.0",
"source-map-loader": "^3.0.0",
"webpack": "^5.37.1",
"webpack-cli": "^4.7.0",
"webpack": "^5.38.1",
"webpack-cli": "^4.7.2",
"webpack-dev-server": "^3.11.2"
},
"scripts": {

View File

@@ -1,5 +1,3 @@
import React from 'react';
import LocalMallIcon from '@material-ui/icons/LocalMall';
import FileUpload from '../../settings/FileUpload';

View File

@@ -41,18 +41,23 @@ export default class Slider extends React.PureComponent {
numberWidth: ((value.length + 1) * this.widthCalculation)
});
if (this.props.element) {
if (!document.querySelector(this.props.element)) {
document.querySelector('.reminder-info').style.display = 'block';
return localStorage.setItem('showReminder', true);
}
}
EventBus.dispatch('refresh', this.props.category);
}
resetItem = () => {
localStorage.setItem(this.props.name, this.props.default);
this.setState({
value: this.props.default,
numberWidth: ((this.props.default.length + 1) * this.widthCalculation)
this.handleChange({
target: {
value: this.props.default || ''
}
});
toast(window.language.toasts.reset);
EventBus.dispatch('refresh', this.props.category);
}
render() {

View File

@@ -37,13 +37,12 @@ export default class Text extends React.PureComponent {
}
resetItem = () => {
localStorage.setItem(this.props.name, this.props.default || '');
this.setState({
value: this.props.default || ''
this.handleChange({
target: {
value: this.props.default || ''
}
});
toast(window.language.toasts.reset);
EventBus.dispatch('refresh', this.props.category);
}
render() {

View File

@@ -46,7 +46,7 @@ export default class AdvancedSettings extends React.PureComponent {
<h3>{advanced.customisation}</h3>
<Text title={advanced.tab_name} name='tabName' default={window.language.tabname} category='other'/>
<Text title={advanced.custom_js} name='customjs' textarea={true} category='other'/>
<Text title={advanced.custom_js} name='customjs' textarea={true} category='other' element='other'/>
<Text title={advanced.custom_css} name='customcss' textarea={true} category='other'/>
<h3>{this.language.sections.experimental.title}</h3>

View File

@@ -24,7 +24,7 @@ export default class BackgroundSettings extends React.PureComponent {
}
let array = [];
data.forEach(item => {
data.forEach((item) => {
array.push({
name: item,
value: item
@@ -45,6 +45,7 @@ export default class BackgroundSettings extends React.PureComponent {
}]
});
}
this.getQuoteLanguages();
}

View File

@@ -1,4 +1,3 @@
/* eslint-disable no-useless-escape */
import React from 'react';
import EventBus from '../../../modules/helpers/eventbus';
@@ -44,6 +43,7 @@ export default class QuickLinks extends React.PureComponent {
}
// regex: https://ihateregex.io/expr/url/
// eslint-disable-next-line no-useless-escape
if (url.length <= 0 || /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/.test(url) === false) {
urlError = this.language.url_error;
}

View File

@@ -39,6 +39,12 @@
"settingsName": "startpage",
"url": "https://www.startpage.com/sp/search"
},
{
"name": "Yahoo! JAPAN",
"settingsName": "yahoojp",
"url": "https://search.yahoo.co.jp/search",
"query": "p"
},
{
"name": "Яндекс",
"settingsName": "yandex",

View File

@@ -3,10 +3,12 @@ export default function ExperimentalInit() {
if (localStorage.getItem('debug') === 'true') {
document.onkeydown = (e) => {
e = e || window.event;
if (!e.ctrlKey) {
return;
}
let code = e.which || e.keyCode;
const code = e.which || e.keyCode;
switch (code) {
case 222:

View File

@@ -83,7 +83,7 @@ export default class MarketplaceFunctions {
break;
}
let installed = JSON.parse(localStorage.getItem('installed'));
const installed = JSON.parse(localStorage.getItem('installed'));
if (sideload) {
installed.push({

View File

@@ -104,11 +104,6 @@ export default class SettingsFunctions {
document.head.insertAdjacentHTML('beforeend', '<style id="customcss">' + css + '</style>');
}
const js = localStorage.getItem('customjs');
if (js) {
document.head.insertAdjacentHTML('beforeend', '<script id="customjs">' + js + '</script>');
}
const font = localStorage.getItem('font');
if (font) {
const google = localStorage.getItem('fontGoogle');
@@ -147,6 +142,12 @@ export default class SettingsFunctions {
return;
}
const js = localStorage.getItem('customjs');
if (js) {
// eslint-disable-next-line no-eval
eval(js);
}
if (localStorage.getItem('experimental') === 'true') {
experimentalInit();
}