diff --git a/.editorconfig b/.editorconfig
index 3274ec36..1923d410 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -5,4 +5,4 @@ indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
-insert_final_newline = true
\ No newline at end of file
+insert_final_newline = true
diff --git a/.eslintrc.js b/.eslintrc.js
index 473457c0..59e8ed8b 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,4 +1,4 @@
module.exports = {
- extends: 'react-app',
- parser: '@babel/eslint-parser'
+ extends: 'react-app',
+ parser: '@babel/eslint-parser'
};
diff --git a/package.json b/package.json
index ab54f4eb..2b4dab4c 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"license": "BSD-3-Clause",
"version": "5.1.1",
"dependencies": {
+ "@emotion/react": "11.4.0",
"@fontsource/lexend-deca": "^4.4.5",
"@fontsource/montserrat": "^4.4.5",
"@material-ui/core": "5.0.0-beta.0",
@@ -41,11 +42,11 @@
"eslint": "^7.30.0",
"eslint-config-react-app": "^6.0.0",
"html-webpack-plugin": "^5.3.2",
- "mini-css-extract-plugin": "^2.0.0",
+ "mini-css-extract-plugin": "^2.1.0",
"sass": "^1.35.1",
"sass-loader": "^12.1.0",
"source-map-loader": "^3.0.0",
- "webpack": "^5.42.0",
+ "webpack": "^5.42.1",
"webpack-cli": "^4.7.2",
"webpack-dev-server": "^4.0.0-beta.3"
},
diff --git a/src/App.jsx b/src/App.jsx
index 72a40f0b..6eacfe23 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -14,7 +14,7 @@ export default class App extends React.PureComponent {
// 4.0 -> 5.0 (the key below is only on 5.0)
// now featuring 5.0 -> 5.1
// the firstRun check was moved here because the old function was useless
- if (!localStorage.getItem('firstRun') || !localStorage.getItem('order') || !localStorage.getItem('backgroundFilterAmount')) {
+ if (!localStorage.getItem('firstRun') || !localStorage.getItem('stats')) {
SettingsFunctions.moveSettings();
window.location.reload();
}
diff --git a/src/components/modals/main/marketplace/sections/Marketplace.jsx b/src/components/modals/main/marketplace/sections/Marketplace.jsx
index 614c1e02..c8d18801 100644
--- a/src/components/modals/main/marketplace/sections/Marketplace.jsx
+++ b/src/components/modals/main/marketplace/sections/Marketplace.jsx
@@ -77,7 +77,7 @@ export default class Marketplace extends React.PureComponent {
}
async getItems() {
- const { data } = await (await fetch(window.constants.MARKETPLACE_URL + '/all', { signal: this.controller.signal })).json();
+ const { data } = await (await fetch(window.constants.MARKETPLACE_URL + '/items/' + this.props.type, { signal: this.controller.signal })).json();
const featured = await (await fetch(window.constants.MARKETPLACE_URL + '/featured', { signal: this.controller.signal })).json();
if (this.controller.signal.aborted === true) {
@@ -85,8 +85,8 @@ export default class Marketplace extends React.PureComponent {
}
this.setState({
- items: data[this.props.type],
- oldItems: data[this.props.type],
+ items: data,
+ oldItems: data,
featured: featured.data,
done: true
});
diff --git a/src/components/modals/main/scss/index.scss b/src/components/modals/main/scss/index.scss
index 2c2cdd73..8853a52d 100644
--- a/src/components/modals/main/scss/index.scss
+++ b/src/components/modals/main/scss/index.scss
@@ -358,6 +358,9 @@ li {
.resetfooter {
position: absolute;
bottom: 20px;
+ width: 300px;
+ justify-content: center;
+ display: flex;
button.reset {
margin-right: 43px;
diff --git a/src/components/modals/main/scss/marketplace/_buttons.scss b/src/components/modals/main/scss/marketplace/_buttons.scss
index c2f95ee2..01220689 100644
--- a/src/components/modals/main/scss/marketplace/_buttons.scss
+++ b/src/components/modals/main/scss/marketplace/_buttons.scss
@@ -46,3 +46,14 @@
display: inline;
margin-top: 0px;
}
+
+button.round {
+ margin-left: 5px;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ text-align: center;
+ line-height: 3px;
+ vertical-align: middle;
+ padding: 10px;
+}
diff --git a/src/components/modals/main/scss/settings/_dropdown.scss b/src/components/modals/main/scss/settings/_dropdown.scss
index fb0bfd67..6281e0c4 100644
--- a/src/components/modals/main/scss/settings/_dropdown.scss
+++ b/src/components/modals/main/scss/settings/_dropdown.scss
@@ -24,7 +24,6 @@ select {
}
}
-
// safari dropdown
@supports (-webkit-hyphens: none) {
select {
diff --git a/src/components/modals/main/settings/ResetModal.jsx b/src/components/modals/main/settings/ResetModal.jsx
index bb63079a..805035b7 100644
--- a/src/components/modals/main/settings/ResetModal.jsx
+++ b/src/components/modals/main/settings/ResetModal.jsx
@@ -1,3 +1,6 @@
+import CloseIcon from '@material-ui/icons/Close';
+import DeleteIcon from '@material-ui/icons/Delete';
+
import SettingsFunctions from '../../../../modules/helpers/settings';
export default function ResetModal(props) {
@@ -11,12 +14,17 @@ export default function ResetModal(props) {
return (
<>
-
{language.title}
- {language.question}
- {language.information}
+ {language.title}
+ {language.question}
+
+ {language.information}
-
-
+
+
>
);
diff --git a/src/components/modals/main/settings/sections/Search.jsx b/src/components/modals/main/settings/sections/Search.jsx
index 9ab1e62f..ea05d387 100644
--- a/src/components/modals/main/settings/sections/Search.jsx
+++ b/src/components/modals/main/settings/sections/Search.jsx
@@ -20,7 +20,6 @@ export default class SearchSettings extends React.PureComponent {
customDisplay: 'none',
customValue: localStorage.getItem('customSearchEngine') || ''
};
- this.language = window.language.modals.main.settings;
}
resetSearch() {
diff --git a/src/components/modals/main/settings/sections/background/Background.jsx b/src/components/modals/main/settings/sections/background/Background.jsx
index 55e60744..78b43b85 100644
--- a/src/components/modals/main/settings/sections/background/Background.jsx
+++ b/src/components/modals/main/settings/sections/background/Background.jsx
@@ -114,7 +114,7 @@ export default class BackgroundSettings extends React.PureComponent {
const APISettings = (
<>
-
+
{this.state.backgroundCategories.map((category) => (
@@ -152,7 +152,7 @@ export default class BackgroundSettings extends React.PureComponent {
return (
<>
{background.title}
-
+
@@ -174,17 +174,17 @@ export default class BackgroundSettings extends React.PureComponent {
{background.effects.title}
-
-
+
+
-
+
-
+
>
);
}
diff --git a/src/components/modals/main/tabs/backend/Tab.jsx b/src/components/modals/main/tabs/backend/Tab.jsx
index 1ea71343..be9ce3ad 100644
--- a/src/components/modals/main/tabs/backend/Tab.jsx
+++ b/src/components/modals/main/tabs/backend/Tab.jsx
@@ -64,12 +64,14 @@ function Tab(props) {
case settings.changelog: icon = ; break;
case settings.about.title: icon = ; break;
- // Store
+ // Addons
+ case addons.added: icon = ; break;
+ case addons.sideload: icon = ; break;
+
+ // Marketplace
case marketplace.photo_packs: icon = ; break;
case marketplace.quote_packs: icon =
; break;
case marketplace.preset_settings: icon = ; break;
- case addons.added: icon = ; break;
- case addons.sideload: icon = ; break;
default: break;
}
diff --git a/src/components/modals/welcome/Welcome.jsx b/src/components/modals/welcome/Welcome.jsx
index d3e60c14..87159fb4 100644
--- a/src/components/modals/welcome/Welcome.jsx
+++ b/src/components/modals/welcome/Welcome.jsx
@@ -51,7 +51,7 @@ export default class WelcomeModal extends React.PureComponent {
return (
-
+
this.switchTab(tab)}/>
diff --git a/src/components/modals/welcome/WelcomeSections.jsx b/src/components/modals/welcome/WelcomeSections.jsx
index 67c5d8b2..a1c27292 100644
--- a/src/components/modals/welcome/WelcomeSections.jsx
+++ b/src/components/modals/welcome/WelcomeSections.jsx
@@ -1,8 +1,9 @@
import React from 'react';
import Radio from '../main/settings/Radio';
-//import Checkbox from '../main/settings/Checkbox';
+import Checkbox from '../main/settings/Checkbox';
import FileUpload from '../main/settings/FileUpload';
+
import UploadIcon from '@material-ui/icons/CloudUpload';
import AutoIcon from '@material-ui/icons/AutoAwesome';
import LightModeIcon from '@material-ui/icons/LightMode';
@@ -79,9 +80,11 @@ export default class WelcomeSections extends React.Component {
changeWelcomeImg() {
let welcomeImage = this.state.welcomeImage;
+
this.setState({
welcomeImage: ++welcomeImage % this.welcomeImages.length
});
+
this.timeout = setTimeout(this.changeWelcomeImg, 3 * 1000);
}
@@ -125,7 +128,7 @@ export default class WelcomeSections extends React.Component {
>
);
- const { appearance } = window.language.modals.main.settings.sections;
+ const { appearance, advanced } = window.language.modals.main.settings.sections;
const languageSettings = window.language.modals.main.settings.sections.language;
const theme = (
@@ -139,12 +142,12 @@ export default class WelcomeSections extends React.Component {
this.changeTheme('light')}>
-
- {appearance.theme.light}
+
+ {appearance.theme.light}
this.changeTheme('dark')}>
-
- {appearance.theme.dark}
+
+ {appearance.theme.dark}
{language.tip}
@@ -172,6 +175,10 @@ export default class WelcomeSections extends React.Component {
<>
{language.sections.privacy.title}
{language.sections.privacy.description}
+
+ {language.sections.privacy.offline_mode_description}
+ {language.sections.privacy.links.title}
+ {language.sections.privacy.links.privacy_policy}
>
);
diff --git a/src/components/modals/welcome/welcome.scss b/src/components/modals/welcome/welcome.scss
index 368bfb26..7f89631b 100644
--- a/src/components/modals/welcome/welcome.scss
+++ b/src/components/modals/welcome/welcome.scss
@@ -24,10 +24,6 @@
justify-content: center;
align-items: center;
- img {
- height: 300px;
- width: 400px;
- }
}
section:nth-child(2) {
@@ -82,20 +78,6 @@
}
}
-.examples {
- display: flex;
- flex-wrap: wrap;
- flex-direction: column;
- align-items: center;
-
- img {
- width: 30rem;
- height: auto;
- display: block;
- margin: 30px;
- border-radius: 12px;
- }
-}
.themesToggleArea {
.active {
@@ -146,3 +128,23 @@ a.privacy {
color: #5352ed;
}
}
+
+.examples {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: column;
+ align-items: center;
+
+ img {
+ width: 30rem !important;
+ height: auto !important;
+ display: block;
+ margin: 30px;
+ border-radius: 12px;
+ }
+}
+
+.showcaseimg {
+ width: 350px;
+ height: auto;
+}
\ No newline at end of file
diff --git a/src/components/widgets/quicklinks/QuickLinks.jsx b/src/components/widgets/quicklinks/QuickLinks.jsx
index e9fb1274..0dc71d0f 100644
--- a/src/components/widgets/quicklinks/QuickLinks.jsx
+++ b/src/components/widgets/quicklinks/QuickLinks.jsx
@@ -100,6 +100,10 @@ export default class QuickLinks extends React.PureComponent {
}
componentDidMount() {
+ if (localStorage.getItem('offlineMode') === 'true') {
+ return;
+ }
+
EventBus.on('refresh', (data) => {
if (data === 'quicklinks') {
const element = document.querySelector('.quicklinks-container');
@@ -144,6 +148,10 @@ export default class QuickLinks extends React.PureComponent {
}
render() {
+ if (localStorage.getItem('offlineMode') === 'true') {
+ return null;
+ }
+
let target, rel = null;
if (localStorage.getItem('quicklinksnewtab') === 'true') {
target = '_blank';
diff --git a/src/modules/default_settings.json b/src/modules/default_settings.json
index f8e85d3e..abb192e9 100644
--- a/src/modules/default_settings.json
+++ b/src/modules/default_settings.json
@@ -238,5 +238,9 @@
{
"name": "statsData",
"value": "{}"
+ },
+ {
+ "name": "offlineMode",
+ "value": false
}
]
diff --git a/src/modules/helpers/stats.js b/src/modules/helpers/stats.js
index 4bcbf13b..cab54432 100644
--- a/src/modules/helpers/stats.js
+++ b/src/modules/helpers/stats.js
@@ -2,13 +2,13 @@ export default class Stats {
constructor(id) {
this.id = id;
this.url = window.constants.UMAMI_DOMAIN + '/api/collect';
- this.offline = (localStorage.getItem('offlineMode') !== 'true');
+ this.online = (localStorage.getItem('offlineMode') === 'false');
}
async postEvent(type, name) {
const value = name.toLowerCase().replaceAll(' ', '-');
- if (!this.offline) {
+ if (this.online) {
// umami
await fetch(this.url, {
method: 'POST',
@@ -46,7 +46,7 @@ export default class Stats {
}
async tabLoad() {
- if (!this.offline) {
+ if (this.online) {
// umami
await fetch(this.url, {
method: 'POST',
diff --git a/src/translations/de_DE.json b/src/translations/de_DE.json
index 07283a82..7d1a9d8a 100644
--- a/src/translations/de_DE.json
+++ b/src/translations/de_DE.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/en_GB.json b/src/translations/en_GB.json
index de617fa6..bd44398a 100644
--- a/src/translations/en_GB.json
+++ b/src/translations/en_GB.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/en_US.json b/src/translations/en_US.json
index 665020e0..f13cf31c 100644
--- a/src/translations/en_US.json
+++ b/src/translations/en_US.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/es.json b/src/translations/es.json
index c90d697e..f49febdb 100644
--- a/src/translations/es.json
+++ b/src/translations/es.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/fr.json b/src/translations/fr.json
index 9c040a52..cfeef7c5 100644
--- a/src/translations/fr.json
+++ b/src/translations/fr.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/nl.json b/src/translations/nl.json
index 6442a0de..d03118c8 100644
--- a/src/translations/nl.json
+++ b/src/translations/nl.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/no.json b/src/translations/no.json
index efce45eb..d957c493 100644
--- a/src/translations/no.json
+++ b/src/translations/no.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/ru.json b/src/translations/ru.json
index 53290977..c68108d7 100644
--- a/src/translations/ru.json
+++ b/src/translations/ru.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/src/translations/zh_CN.json b/src/translations/zh_CN.json
index 866ec11e..7f782fc0 100644
--- a/src/translations/zh_CN.json
+++ b/src/translations/zh_CN.json
@@ -398,7 +398,12 @@
},
"privacy": {
"title": "Privacy Options",
- "description": "to be added"
+ "description": "Enable settings to further protect your privacy with Mue.",
+ "offline_mode_description": "Enabling offline mode will disable all requests to any service. This will result in online backgrounds, online quotes, marketplace, weather, quick links, change log and some about tab information to be disabled.",
+ "links": {
+ "title": "Links",
+ "privacy_policy": "Privacy Policy"
+ }
},
"final": {
"title": "Final step",
diff --git a/vercel.json b/vercel.json
index 0cae358a..7ae9a3de 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1,5 +1,5 @@
{
- "github": {
- "silent": true
- }
+ "github": {
+ "silent": true
+ }
}
diff --git a/webpack.config.js b/webpack.config.js
index 1e6e6e74..a21a2072 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -76,4 +76,4 @@ module.exports = {
chunkFilename: '[id].[chunkhash].chunk.css'
}),
]
-};
\ No newline at end of file
+};