Co-authored-by: Alex Sparkes <turbomarshmello@gmail.com>
Co-authored-by: Wessel Tip <discord@go2it.eu>
Co-authored-by: Isaac Saunders <contact@eartharoid.me>
This commit is contained in:
David Ralph
2020-08-26 14:32:52 +01:00
parent 21ae1ff461
commit 91fefbf73c
54 changed files with 2044 additions and 513 deletions

View File

@@ -1,2 +1,4 @@
export const API_URL = 'https://api.muetab.xyz';
export const UNSPLASH_URL = 'https://unsplash.muetab.xyz';
export const MARKETPLACE_URL = 'https://marketplace.muetab.xyz';
export const OFFLINE_IMAGES = 20;

View File

@@ -43,10 +43,6 @@
"name": "defaultGreetingMessage",
"value": true
},
{
"name": "language",
"value": "en"
},
{
"name": "backgroundAPI",
"value": "mue"
@@ -58,5 +54,13 @@
{
"name": "copyButton",
"value": false
},
{
"name": "installed",
"value": "[]"
},
{
"name": "searchEngine",
"value": "duckduckgo"
}
]

View File

@@ -0,0 +1,6 @@
export default class MarketplaceFunctions {
static urlParser (input) { // based on https://stackoverflow.com/questions/37684/how-to-replace-plain-urls-with-links
let urlPattern = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_+.~#?&//=]*)/;
return input.replace(urlPattern, '<a href="$&" target="_blank">$&</a>');
}
}

View File

@@ -1,4 +1,6 @@
function saveFile(data, filename = 'file') {
import detectBrowserLanguage from 'detect-browser-language';
const saveFile = (data, filename = 'file') => {
if (!data) return console.error('No data');
if (typeof data === 'object') data = JSON.stringify(data, undefined, 4);
@@ -14,47 +16,78 @@ function saveFile(data, filename = 'file') {
a.dispatchEvent(e);
}
export function exportSettings() {
let settings = {};
for (const key of Object.keys(localStorage)) settings[key] = localStorage.getItem(key);
saveFile(settings, 'mue-settings.json');
}
const defaultSettings = require('./defaultSettings.json');
export function setItem(key, value) {
let old = localStorage.getItem(key);
let val = true;
if (old !== null && !value) {
if (old === 'true') val = false;
if (old === 'false') val = true;
export default class SettingsFunctions {
static exportSettings() {
let settings = {};
for (const key of Object.keys(localStorage)) settings[key] = localStorage.getItem(key);
saveFile(settings, 'mue-settings.json');
}
localStorage.setItem(key, val);
}
static setItem(key, value) {
let old = localStorage.getItem(key);
let val = true;
export function toggleExtra(element, element2) {
(element.style.display === 'none' || !element.style.display) ? element.style.display = 'block' : element.style.display = 'none';
(element2.style.transform === 'rotate(-180deg)') ? element2.style.transform = 'rotate(0)' : element2.style.transform = 'rotate(-180deg)';
}
if (old !== null && !value) {
if (old === 'true') val = false;
if (old === 'false') val = true;
}
export function setSearchEngine(input) {
const searchEngineInput = document.getElementById('searchEngineInput');
if (input === 'custom') {
searchEngineInput.enabled = 'false';
searchEngineInput.style.display = 'block';
} else {
searchEngineInput.style.display = 'none';
searchEngineInput.enabled = 'true';
localStorage.setItem('searchEngine', input);
localStorage.setItem(key, val);
}
}
export function saveStuff() {
localStorage.setItem('blur', document.getElementById('blurRange').value); // this is better than inline onChange for performance
localStorage.setItem('greetingName', document.getElementById('greetingName').value);
localStorage.setItem('customBackground', document.getElementById('customBackground').value);
if (!document.getElementById('searchEngineInput').enabled === 'false') {
localStorage.setItem('customSearchEngine', document.getElementById('searchEngineInput').value);
static toggleExtra(element, element2) {
(element.style.display === 'none' || !element.style.display) ? element.style.display = 'block' : element.style.display = 'none';
(element2.style.transform === 'rotate(-180deg)') ? element2.style.transform = 'rotate(0)' : element2.style.transform = 'rotate(-180deg)';
}
static setSearchEngine(input) {
const searchEngineInput = document.getElementById('searchEngineInput');
if (input === 'custom') {
searchEngineInput.enabled = 'false';
searchEngineInput.style.display = 'block';
} else {
searchEngineInput.style.display = 'none';
searchEngineInput.enabled = 'true';
localStorage.setItem('searchEngine', input);
}
}
static saveStuff() {
localStorage.setItem('blur', document.getElementById('blurRange').value); // this is better than inline onChange for performance
localStorage.setItem('greetingName', document.getElementById('greetingName').value);
localStorage.setItem('customBackground', document.getElementById('customBackground').value);
if (!document.getElementById('searchEngineInput').enabled === 'false') {
localStorage.setItem('customSearchEngine', document.getElementById('searchEngineInput').value);
}
window.location.reload();
}
static setDefaultSettings() {
localStorage.clear();
defaultSettings.forEach(element => localStorage.setItem(element.name, element.value));
// Set theme depending on user preferred
// if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) localStorage.setItem('darkTheme', true);
//else localStorage.setItem('darkTheme', false);
switch(detectBrowserLanguage()) {
case 'nl':
localStorage.setItem('language', 'nl');
break;
case 'no':
localStorage.setItem('language', 'no');
break;
case 'fr':
localStorage.setItem('language', 'fr');
break;
default:
localStorage.setItem('language', 'en');
}
// Finally we set this to true so it doesn't run the function on every load
localStorage.setItem('firstRun', true);
window.location.reload();
}
window.location.reload();
}