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 {

{`${this.state.quote}`}

- {this.state.author} + {this.state.author} +
{this.state.copy} {this.state.tweet} {this.state.favourited}

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" }