diff --git a/src/components/modals/Settings.jsx b/src/components/modals/Settings.jsx
index 4764c1a7..690fc85e 100644
--- a/src/components/modals/Settings.jsx
+++ b/src/components/modals/Settings.jsx
@@ -1,10 +1,15 @@
import React from 'react';
-import ExpandMore from '@material-ui/icons/ExpandMore';
import SettingsFunctions from '../../modules/settingsFunctions';
import Checkbox from './settings/Checkbox';
import Slider from './settings/Slider';
+import Section from './settings/Section';
import { toast } from 'react-toastify';
+import BackgroundSettings from './settings/sections/BackgroundSettings';
+import ExperimentalSettings from './settings/sections/ExperimentalSettings';
+import SearchSettings from './settings/sections/SearchSettings';
+import LanguageSettings from './settings/sections/LanguageSettings';
+
export default class Settings extends React.PureComponent {
resetItem(key) {
switch (key) {
@@ -85,22 +90,6 @@ export default class Settings extends React.PureComponent {
};
};
- document.getElementById('bg-input').onchange = (e) => {
- const reader = new FileReader();
- const file = e.target.files[0];
-
- if (file.size > 2000000) return toast('File is over 2MB', '#ff0000', '#ffffff');
-
- reader.addEventListener('load', (e) => {
- localStorage.setItem('customBackground', e.target.result);
- document.getElementById('customBackground').src = e.target.result;
- document.getElementById('customBackground').value = e.target.result;
- document.getElementById('backgroundImage').setAttribute('style', `-webkit-filter:blur(${localStorage.getItem('blur')}px); background-image: url(${localStorage.getItem('customBackground')}`);
- document.getElementById('backgroundImage').style.backgroundImage = `url(${localStorage.getItem('customBackground')})`;
- });
-
- reader.readAsDataURL(file);
- };
/*const hex = localStorage.getItem('customBackgroundColour');
if (!hex === '') {
document.getElementById('customBackgroundColour').value = hex;
@@ -128,151 +117,44 @@ export default class Settings extends React.PureComponent {
-
+
+
-
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[0], document.getElementsByClassName('expandIcons')[0])}>{this.props.language.time.title}
- SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[0], document.getElementsByClassName('expandIcons')[0])} />
-
-
+
-
-
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[1], document.getElementsByClassName('expandIcons')[1])}>{this.props.language.greeting.title}
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[1], document.getElementsByClassName('expandIcons')[1])} />
-
-
+
+
-
-
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[2], document.getElementsByClassName('expandIcons')[2])}>{this.props.language.quote.title}
- SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[2], document.getElementsByClassName('expandIcons')[2])} />
-
-
-
-
-
-
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[3], document.getElementsByClassName('expandIcons')[3])}>{this.props.language.background.title}
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[3], document.getElementsByClassName('expandIcons')[3])} />
-
-
-
-
-
-
-
-
-
- { /* */ }
-
-
-
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[4], document.getElementsByClassName('expandIcons')[4])}>{this.props.language.searchbar.title}
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[4], document.getElementsByClassName('expandIcons')[4])} />
-
-
-
-
-
-
-
-
-
+
{this.props.language.greeting.name} this.resetItem('greetingName')}>{this.props.language.reset}
+
+
+
+
+
+ this.resetItem(item)}/>
+
+
+ this.resetItem(item)}/>
+
{this.props.language.offline}
-
+
-
{this.props.language.experimental.dark}
-
-
-
-
{this.props.language.experimental.title}
-
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[5], document.getElementsByClassName('expandIcons')[5])} />
-
-
-
{this.props.language.experimental.webp}
-
-
-
-
{this.props.language.experimental.animations}
-
-
-
-
View
-
-
-
-
Favourite
-
-
-
-
Refresh
-
-
-
+ {this.props.language.experimental.dark}
+
+
+
-
-
{this.props.language.language}
-
-
diff --git a/src/components/modals/marketplace/Item.jsx b/src/components/modals/marketplace/Item.jsx
index 5499bbfb..5cec02b9 100644
--- a/src/components/modals/marketplace/Item.jsx
+++ b/src/components/modals/marketplace/Item.jsx
@@ -4,6 +4,15 @@ import ArrowBackIcon from '@material-ui/icons/ArrowBack';
export default class Item extends React.PureComponent {
render() {
if (!this.props.data.icon) return null;
+ let warningHTML = '';
+ if (this.props.data.quote_api) {
+ warningHTML =
+
+ - Warning
+ - This quote pack requests to external servers that may track you!
+
+
+ }
return (
@@ -34,6 +43,7 @@ export default class Item extends React.PureComponent {
{this.props.language.notice.description}
+ {warningHTML}
{this.props.language.overview}
diff --git a/src/components/modals/settings/Section.jsx b/src/components/modals/settings/Section.jsx
new file mode 100644
index 00000000..98532e6a
--- /dev/null
+++ b/src/components/modals/settings/Section.jsx
@@ -0,0 +1,26 @@
+import React from 'react';
+import SettingsFunctions from '../../../modules/settingsFunctions';
+import Slider from './Slider';
+import ExpandMore from '@material-ui/icons/ExpandMore';
+
+export default class Section extends React.PureComponent {
+ render() {
+ let extraHTML, expandMore = '';
+ if (this.props.children) {
+ extraHTML = {this.props.children}
+ expandMore = SettingsFunctions.toggleExtra(document.getElementsByClassName(this.props.title)[0], document.getElementsByClassName('expand' + this.props.title)[0])}
+ />
+ }
+ return (
+
+
SettingsFunctions.toggleExtra(document.getElementsByClassName(this.props.title)[0], document.getElementsByClassName('expand' + this.props.title)[0])}>{this.props.title}
+ {expandMore}
+
+ {extraHTML}
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/src/components/modals/settings/sections/BackgroundSettings.jsx b/src/components/modals/settings/sections/BackgroundSettings.jsx
new file mode 100644
index 00000000..b50c68af
--- /dev/null
+++ b/src/components/modals/settings/sections/BackgroundSettings.jsx
@@ -0,0 +1,61 @@
+import React from 'react';
+import { toast } from 'react-toastify';
+
+export default class BackgroundSettings extends React.PureComponent {
+ componentDidMount() {
+ document.getElementById('bg-input').onchange = (e) => {
+ const reader = new FileReader();
+ const file = e.target.files[0];
+
+ if (file.size > 2000000) return toast('File is over 2MB', '#ff0000', '#ffffff');
+
+ reader.addEventListener('load', (e) => {
+ localStorage.setItem('customBackground', e.target.result);
+ document.getElementById('customBackground').src = e.target.result;
+ document.getElementById('customBackground').value = e.target.result;
+ document.getElementById('backgroundImage').setAttribute('style', `-webkit-filter:blur(${localStorage.getItem('blur')}px); background-image: url(${localStorage.getItem('customBackground')}`);
+ document.getElementById('backgroundImage').style.backgroundImage = `url(${localStorage.getItem('customBackground')})`;
+ });
+
+ reader.readAsDataURL(file);
+ };
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
+ { /*
*/ }
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/src/components/modals/settings/sections/ExperimentalSettings.jsx b/src/components/modals/settings/sections/ExperimentalSettings.jsx
new file mode 100644
index 00000000..117158da
--- /dev/null
+++ b/src/components/modals/settings/sections/ExperimentalSettings.jsx
@@ -0,0 +1,37 @@
+import React from 'react';
+import Slider from '../Slider';
+import ExpandMore from '@material-ui/icons/ExpandMore';
+import SettingsFunctions from '../../../../modules/settingsFunctions';
+
+export default class ExperimentalSettings extends React.PureComponent {
+ render() {
+ return (
+
+
{this.props.language.experimental.title}
+
SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[5], document.getElementsByClassName('expandIcons')[5])} />
+
+
+
{this.props.language.experimental.webp}
+
+
+
+
{this.props.language.experimental.animations}
+
+
+
+
View
+
+
+
+
Favourite
+
+
+
+
Refresh
+
+
+
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/src/components/modals/settings/sections/LanguageSettings.jsx b/src/components/modals/settings/sections/LanguageSettings.jsx
new file mode 100644
index 00000000..896ebc3a
--- /dev/null
+++ b/src/components/modals/settings/sections/LanguageSettings.jsx
@@ -0,0 +1,18 @@
+import React from 'react';
+
+export default class LanguageSettings extends React.PureComponent {
+ render() {
+ return (
+
+
{this.props.language.language}
+
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/src/components/modals/settings/sections/SearchSettings.jsx b/src/components/modals/settings/sections/SearchSettings.jsx
new file mode 100644
index 00000000..cde6bfdb
--- /dev/null
+++ b/src/components/modals/settings/sections/SearchSettings.jsx
@@ -0,0 +1,30 @@
+import React from 'react';
+import SettingsFunctions from '../../../../modules/settingsFunctions';
+
+export default class SearchSettings extends React.PureComponent {
+ render() {
+ return (
+
+
+
+
+
+
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/src/components/widgets/Background.jsx b/src/components/widgets/Background.jsx
index fc7d997b..a06c3916 100644
--- a/src/components/widgets/Background.jsx
+++ b/src/components/widgets/Background.jsx
@@ -50,7 +50,7 @@ export default class Background extends React.PureComponent {
this.setBackground(null, customBackgroundColour, 'false');
} else if (favourited) {
this.setBackground(favourited.url, null, 'true');
- this.setCredit(favourited.credit)
+ this.setCredit(favourited.credit);
document.getElementById('location').textContent = favourited.location;
} else if (customBackground !== '') { // Local
this.setBackground(customBackground, null, 'false');