diff --git a/src/components/modals/main/marketplace/sections/Added.jsx b/src/components/modals/main/marketplace/sections/Added.jsx
index 253b21b0..491603b5 100644
--- a/src/components/modals/main/marketplace/sections/Added.jsx
+++ b/src/components/modals/main/marketplace/sections/Added.jsx
@@ -30,8 +30,9 @@ export default class Added extends React.PureComponent {
button: ''
};
this.buttons = {
- uninstall: ,
+ uninstall: ,
}
+ this.language = window.language.modals.main.addons;
}
toggle(type, type2, data) {
@@ -106,8 +107,8 @@ export default class Added extends React.PureComponent {
-
Empty
-
No addons are installed
+
{this.language.empty.title}
+
{this.language.empty.description}
);
diff --git a/src/components/modals/main/marketplace/sections/Marketplace.jsx b/src/components/modals/main/marketplace/sections/Marketplace.jsx
index 9627445e..d5db4d9c 100644
--- a/src/components/modals/main/marketplace/sections/Marketplace.jsx
+++ b/src/components/modals/main/marketplace/sections/Marketplace.jsx
@@ -47,7 +47,7 @@ export default class Marketplace extends React.PureComponent {
try {
info = await (await fetch(`${window.constants.MARKETPLACE_URL}/item/${this.props.type}/${data}`)).json();
} catch (e) {
- return toast(this.props.toastLanguage.error);
+ return toast(window.language.toasts.error);
}
// check if already installed
@@ -131,35 +131,25 @@ export default class Marketplace extends React.PureComponent {
);
}
- if (navigator.onLine === false) {
+ if (navigator.onLine === false || localStorage.getItem('offlineMode') === 'true') {
return errorMessage(
<>
- Offline
- Mue down!
- >
- );
- }
-
- if (localStorage.getItem('offlineMode') === 'true') {
- return errorMessage(
- <>
-
- Offline mode is enabled
- Please turn off offline mode to access the marketplace
+ {this.language.offline.title}
+ {this.language.offline.description}
>
);
}
if (this.state.done === false) {
- return errorMessage(Loading
);
+ return errorMessage({window.language.modals.main.loading}
);
}
if (this.state.items.length === 0) {
return errorMessage(<>
- Empty
- No items in this category
+ {window.language.modals.main.addons.empty.title}
+ {this.language.no_items}
>)
}
diff --git a/src/components/modals/main/scss/index.scss b/src/components/modals/main/scss/index.scss
index 1e0f9f9a..054faab7 100644
--- a/src/components/modals/main/scss/index.scss
+++ b/src/components/modals/main/scss/index.scss
@@ -124,6 +124,7 @@ ul.sidebar {
h1 {
text-align: center;
+ font-size: 1.8em;
}
svg {
@@ -358,3 +359,7 @@ li {
color: var(--modal-text) !important;
padding-right: 10px;
}
+
+.MuiIconButton-root {
+ color: var(--modal-text) !important;
+}
\ No newline at end of file
diff --git a/src/components/modals/main/scss/settings/_buttons.scss b/src/components/modals/main/scss/settings/_buttons.scss
index e79246b5..2ec7d797 100644
--- a/src/components/modals/main/scss/settings/_buttons.scss
+++ b/src/components/modals/main/scss/settings/_buttons.scss
@@ -69,10 +69,12 @@
.import {
@extend %settingsButton;
background-color: map-get($button-colours, 'other');
- color: map-get($theme-colours, 'secondary');
+ color: map-get($theme-colours, 'primary');
+ border: 2px solid map-get($button-colours, 'other');
&:hover {
color: map-get($button-colours, 'other');
+ border: 2px solid map-get($button-colours, 'other');
}
}
diff --git a/src/components/modals/main/settings/ResetModal.jsx b/src/components/modals/main/settings/ResetModal.jsx
index fb039d0e..6c7c5fd9 100644
--- a/src/components/modals/main/settings/ResetModal.jsx
+++ b/src/components/modals/main/settings/ResetModal.jsx
@@ -11,8 +11,8 @@ export default function ResetModal(props) {
{language.question}
{language.information}
-
-
+
+
>
);
diff --git a/src/components/modals/main/settings/sections/background/Background.jsx b/src/components/modals/main/settings/sections/background/Background.jsx
index 5c34b7d3..99c044b7 100644
--- a/src/components/modals/main/settings/sections/background/Background.jsx
+++ b/src/components/modals/main/settings/sections/background/Background.jsx
@@ -119,6 +119,7 @@ export default class BackgroundSettings extends React.PureComponent {
{background.title}
+
{background.source.title}
this.setState({ backgroundType: value })}>
diff --git a/src/components/modals/main/tabs/Addons.jsx b/src/components/modals/main/tabs/Addons.jsx
index 084bcf71..45757ebb 100644
--- a/src/components/modals/main/tabs/Addons.jsx
+++ b/src/components/modals/main/tabs/Addons.jsx
@@ -5,10 +5,12 @@ import Added from '../marketplace/sections/Added';
import AddonsTabs from './backend/Tabs';
export default function Addons() {
+ const language = window.language.modals.main.addons;
+
return (
-
-
+
+
);
}
diff --git a/src/components/modals/main/tabs/Marketplace.jsx b/src/components/modals/main/tabs/Marketplace.jsx
index fd6f0f43..94d9d305 100644
--- a/src/components/modals/main/tabs/Marketplace.jsx
+++ b/src/components/modals/main/tabs/Marketplace.jsx
@@ -5,10 +5,12 @@ import MarketplaceTab from '../marketplace/sections/Marketplace';
import Tabs from './backend/Tabs';
export default function Marketplace() {
+ const language = window.language.modals.main.marketplace;
+
return (
-
-
+
+
);
}
diff --git a/src/components/modals/main/tabs/backend/Tab.jsx b/src/components/modals/main/tabs/backend/Tab.jsx
index e092a5a3..ec9b6562 100644
--- a/src/components/modals/main/tabs/backend/Tab.jsx
+++ b/src/components/modals/main/tabs/backend/Tab.jsx
@@ -40,6 +40,8 @@ function Tab(props) {
const language = window.language.modals.main.settings.sections;
const navbarlanguage = window.language.modals.main.navbar;
+ const marketplacelanguage = window.language.modals.main.marketplace;
+ const addonslanguage = window.language.modals.main.addons;
let icon, divider;
switch (props.label) {
@@ -65,10 +67,10 @@ function Tab(props) {
case language.about.title: icon = ; break;
// Store
- case 'Photo Packs': icon = ; break;
- case 'Quote Packs': icon =
; break;
- case 'Added': icon = ; break;
- case 'Sideload': icon = ; break;
+ case marketplacelanguage.photo_packs: icon = ; break;
+ case marketplacelanguage.quote_packs: icon =
; break;
+ case addonslanguage.added: icon = ; break;
+ case addonslanguage.sideload: icon = ; break;
default: break;
}
diff --git a/src/components/widgets/Widgets.jsx b/src/components/widgets/Widgets.jsx
index 2eb657d4..0509dcd1 100644
--- a/src/components/widgets/Widgets.jsx
+++ b/src/components/widgets/Widgets.jsx
@@ -75,7 +75,7 @@ export default class Widgets extends React.PureComponent {
{this.enabled('searchBar') ? : null}
{elements}
- {this.enabled('weatherEnabled') && (localStorage.getItem('offlineMode') === 'false') ? : null}
+ {this.enabled('weatherEnabled') && !localStorage.getItem('offlineMode') ? : null}
);
diff --git a/src/components/widgets/background/Background.jsx b/src/components/widgets/background/Background.jsx
index 8f698c90..9eafd333 100644
--- a/src/components/widgets/background/Background.jsx
+++ b/src/components/widgets/background/Background.jsx
@@ -61,8 +61,15 @@ export default class Background extends React.PureComponent {
setBackground() {
if (this.state.url !== '') {
const url = this.ddgproxy ? window.constants.DDG_PROXY + this.state.url : this.state.url;
-
const backgroundImage = document.querySelector('#backgroundImage');
+
+ if (localStorage.getItem('bgtransition') === 'false') {
+ return backgroundImage.setAttribute(
+ 'style',
+ `background-image: url(${url}); -webkit-filter: blur(${localStorage.getItem('blur')}px) brightness(${localStorage.getItem('brightness')}%);`
+ );
+ }
+
backgroundImage.classList.add('backgroundPreload');
// preloader for background transition
@@ -118,15 +125,16 @@ export default class Background extends React.PureComponent {
// API background
const backgroundAPI = localStorage.getItem('backgroundAPI');
+ const apiCategory = localStorage.getItem('apiCategory');
let requestURL, data;
switch (backgroundAPI) {
case 'unsplash':
- requestURL = `${window.constants.UNSPLASH_URL}/getImage`;
+ requestURL = `${window.constants.UNSPLASH_URL}/getImage?category=${apiCategory}`;
break;
// Defaults to Mue
default:
- requestURL = `${window.constants.API_URL}/getImage?category=Outdoors`;
+ requestURL = `${window.constants.API_URL}/images/random?category=${apiCategory}`;
break;
}
diff --git a/src/components/widgets/background/scss/index.scss b/src/components/widgets/background/scss/index.scss
index ed31a558..d6a9af04 100644
--- a/src/components/widgets/background/scss/index.scss
+++ b/src/components/widgets/background/scss/index.scss
@@ -34,14 +34,4 @@
to {
opacity: 1;
}
-}
-
-.backgroundEffects {
- opacity: 0.7;
- transition: ease 0.6s;
-}
-
-.creditlink {
- text-decoration: none;
- color: white;
-}
+}
\ No newline at end of file
diff --git a/src/components/widgets/navbar/Navbar.jsx b/src/components/widgets/navbar/Navbar.jsx
index e45be0b1..09a883b4 100644
--- a/src/components/widgets/navbar/Navbar.jsx
+++ b/src/components/widgets/navbar/Navbar.jsx
@@ -31,7 +31,7 @@ export default function Navbar(props) {
:null}
{(window.constants.BETA_VERSION === true) ?
-
+
props.openModal('feedbackModal')}/>
:null}
diff --git a/src/components/widgets/quicklinks/quicklinks.scss b/src/components/widgets/quicklinks/quicklinks.scss
index 41d5462e..dcdc3816 100644
--- a/src/components/widgets/quicklinks/quicklinks.scss
+++ b/src/components/widgets/quicklinks/quicklinks.scss
@@ -60,9 +60,10 @@ textarea {
.quicklinks {
border: none;
color: #fff;
- font-size: 22px;
+ font-size: 42px;
background: none;
cursor: pointer;
+ text-shadow: 0 0 10px rgb(0 0 0 / 60%);
}
.quicklinks-container>a,
diff --git a/src/components/widgets/quote/Quote.jsx b/src/components/widgets/quote/Quote.jsx
index 401f7cbd..a4b5b53d 100644
--- a/src/components/widgets/quote/Quote.jsx
+++ b/src/components/widgets/quote/Quote.jsx
@@ -16,9 +16,9 @@ export default class Quote extends React.PureComponent {
this.state = {
quote: '',
author: '',
- favourited: this.favourite()} />,
- tweet: this.tweetQuote()} />,
- copy: this.copyQuote()} />
+ favourited: ,
+ tweet: ,
+ copy:
};
this.language = window.language.widgets.quote;
@@ -92,7 +92,7 @@ export default class Quote extends React.PureComponent {
// First we try and get a quote from the API...
try {
- const data = await (await fetch(window.constants.API_URL + '/getQuote?language=' + localStorage.getItem('quotelanguage'))).json();
+ const data = await (await fetch(window.constants.API_URL + '/quotes/random?language=' + localStorage.getItem('quotelanguage'))).json();
// If we hit the ratelimit, we fallback to local quotes
if (data.statusCode === 429) {
@@ -115,25 +115,25 @@ export default class Quote extends React.PureComponent {
}
}
- copyQuote() {
+ copyQuote = () => {
navigator.clipboard.writeText(`${this.state.quote} - ${this.state.author}`);
- toast(this.language.quote);
+ toast(window.language.toasts.quote);
}
- tweetQuote() {
+ tweetQuote = () => {
window.open(`https://twitter.com/intent/tweet?text=${this.state.quote} - ${this.state.author} on @getmue`, '_blank').focus();
}
- favourite() {
+ favourite = () => {
if (localStorage.getItem('favouriteQuote')) {
localStorage.removeItem('favouriteQuote');
this.setState({
- favourited: this.favourite()} />
+ favourited:
});
} else {
localStorage.setItem('favouriteQuote', this.state.quote + ' - ' + this.state.author);
this.setState({
- favourited: this.favourite()} />
+ favourited:
});
}
}
@@ -141,7 +141,7 @@ export default class Quote extends React.PureComponent {
componentDidMount() {
let favouriteQuote = '';
if (localStorage.getItem('favouriteQuoteEnabled') === 'true') {
- favouriteQuote = localStorage.getItem('favouriteQuote') ? this.favourite()} /> : this.favourite()} />;
+ favouriteQuote = localStorage.getItem('favouriteQuote') ? : ;
}
this.setState({
@@ -158,7 +158,8 @@ export default class Quote extends React.PureComponent {
diff --git a/src/components/widgets/quote/quote.scss b/src/components/widgets/quote/quote.scss
index b348e406..288619fc 100644
--- a/src/components/widgets/quote/quote.scss
+++ b/src/components/widgets/quote/quote.scss
@@ -15,8 +15,10 @@
.quoteauthor {
font-size: 0.9em;
letter-spacing: 0.5px;
+
svg {
margin-left: 10px;
+ filter: drop-shadow(0 0 6px rgba(0, 0, 0, 0.3));
}
}
diff --git a/src/modules/constants.js b/src/modules/constants.js
index e7632142..f4fe7a13 100644
--- a/src/modules/constants.js
+++ b/src/modules/constants.js
@@ -1,7 +1,7 @@
export const API_URL = 'https://api.muetab.com';
export const UNSPLASH_URL = 'https://unsplash.muetab.com';
export const MARKETPLACE_URL = 'https://marketplace.muetab.com';
-export const WEATHER_URL = 'https://mueweather.ohlookitsderpy.workers.dev';
+export const WEATHER_URL = 'https://weather.muetab.com';
export const WEBSITE_URL = 'https://muetab.com';
export const SPONSORS_URL = 'https://sponsors.muetab.com';
export const GITHUB_URL = 'https://api.github.com';
diff --git a/src/modules/default_settings.json b/src/modules/default_settings.json
index d1224e6a..08f48a37 100644
--- a/src/modules/default_settings.json
+++ b/src/modules/default_settings.json
@@ -160,11 +160,15 @@
"value": false
},
{
- "name": "temperatureformat",
+ "name": "tempformat",
"value": "celsius"
},
{
"name": "authorLink",
"value": true
+ },
+ {
+ "name": "bgtransition",
+ "value": true
}
]
diff --git a/src/translations/en_GB.json b/src/translations/en_GB.json
index 6a87c4b5..18ee4eca 100644
--- a/src/translations/en_GB.json
+++ b/src/translations/en_GB.json
@@ -29,7 +29,8 @@
"navbar": {
"tooltips": {
"update": "Update Patch Notes",
- "refresh": "Refresh Page"
+ "refresh": "Refresh Page",
+ "feedback": "Feedback"
},
"notes": {
"title": "Notes",
@@ -120,6 +121,7 @@
"background": {
"title": "Background",
"ddg_proxy": "Use DuckDuckGo Image Proxy",
+ "transition": "Fade-in transition",
"buttons": {
"title": "Buttons",
"view": "Maximise",
@@ -295,6 +297,7 @@
"last_updated": "Last Updated",
"version": "Version",
"author": "Authour",
+ "no_items": "No items in this category",
"notice": {
"title": "Notice",
"description": "In order for the change to take place, the page must be refreshed."
@@ -317,9 +320,8 @@
"addons": {
"added": "Added",
"empty": {
- "title": "It's empty here",
- "description": "Head to the marketplace to add some.",
- "button": "Take me there"
+ "title": "Empty",
+ "description": "No addons are installed"
},
"sideload": "Sideload"
}