Compare commits

...

9 Commits
6.0.0 ... 6.0.2

Author SHA1 Message Date
David Ralph
bd941896aa chore: release 6.0.2 2021-11-23 18:39:43 +00:00
David Ralph
d9563ce343 build: fix demo 2021-11-23 18:22:24 +00:00
David Ralph
af2edeb737 fix: various ui fixes, fix create tab
Co-authored-by: Alex Sparkes <turbomarshmello@gmail.com>
2021-11-23 18:11:36 +00:00
David Ralph
f8ee23eb40 fix: notes breaking mue when there are many rows 2021-11-22 22:41:17 +00:00
dependabot[bot]
234d489a29 chore(deps-dev): bump copy-webpack-plugin from 9.1.0 to 10.0.0 (#209)
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 9.1.0 to 10.0.0.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v9.1.0...v10.0.0)

---
updated-dependencies:
- dependency-name: copy-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-22 14:02:54 +00:00
Vicente
7881e47590 fix(translations): fix typo (#211) 2021-11-18 17:59:03 +00:00
Vicente
40397ac33c feat(translations): update spanish translation (#210)
* feat(translations): update spanish translations

* feat(translations): update spanish translations
2021-11-18 17:58:24 +00:00
David Ralph
9da0cb611e chore: release 6.0.1 2021-11-18 15:08:33 +00:00
David Ralph
7c7994c63f fix: greeting date picker, addons sort dropdown 2021-11-18 14:49:20 +00:00
25 changed files with 122 additions and 83 deletions

View File

@@ -4,7 +4,7 @@
"default_locale": "en",
"name": "__MSG_name__",
"description": "__MSG_description__",
"version": "6.0.0",
"version": "6.0.2",
"homepage_url": "https://muetab.com",
"browser_action": {
"default_icon": "icons/128x128.png"

View File

@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Mue",
"description": "Fast, open and free-to-use new tab page for modern browsers.",
"version": "6.0.0",
"version": "6.0.2",
"homepage_url": "https://muetab.com",
"browser_action": {
"default_icon": "icons/128x128.png"

View File

@@ -9,7 +9,7 @@
"homepage": "https://muetab.com",
"bugs": "https://github.com/mue/mue/issues/new?assignees=&labels=bug&template=bug-report.md&title=%5BBUG%5D",
"license": "BSD-3-Clause",
"version": "6.0.0",
"version": "6.0.2",
"dependencies": {
"@eartharoid/i18n": "^1.0.2",
"@emotion/react": "^11.5.0",
@@ -40,7 +40,7 @@
"@eartharoid/deep-merge": "^0.0.2",
"babel-loader": "^8.2.3",
"babel-plugin-transform-react-class-to-function": "^1.2.2",
"copy-webpack-plugin": "^9.0.1",
"copy-webpack-plugin": "9.1.0",
"css-loader": "^6.5.1",
"eslint": "^8.2.0",
"eslint-config-react-app": "^6.0.0",

View File

@@ -3,7 +3,9 @@ import { PureComponent } from 'react';
import {
SettingsRounded as Settings,
PhotoOutlined as Photos,
FormatQuoteOutlined as Quotes
FormatQuoteOutlined as Quotes,
Upload as ImportIcon,
Download as ExportIcon,
} from '@mui/icons-material';
import { TextField } from '@mui/material';
import { toast } from 'react-toastify';
@@ -119,9 +121,7 @@ export default class Create extends PureComponent {
importQuotes() {
this.setState({
addonData: {
quotes: JSON.parse(localStorage.getItem('customQuote')) || []
}
addonData: JSON.parse(localStorage.getItem('customQuote')) || []
});
toast(variables.language.getMessage(variables.languagecode, 'toasts.imported'));
@@ -130,7 +130,16 @@ export default class Create extends PureComponent {
importPhotos() {
let data = [];
try {
data = JSON.parse(localStorage.getItem('customBackground'));
const current = JSON.parse(localStorage.getItem('customBackground')) || [];
data = current.map((item) => {
return {
photographer: '???',
location: '???',
url: {
default: item
}
}
});
toast(variables.language.getMessage(variables.languagecode, 'toasts.imported'));
} catch (e) {
console.log(e);
@@ -138,9 +147,7 @@ export default class Create extends PureComponent {
}
this.setState({
addonData: {
photos: data
}
addonData: data
});
}
@@ -228,17 +235,19 @@ export default class Create extends PureComponent {
<div className='themesToggleArea'>
<div className='options'>
<div className={this.state.settingsClasses.current} onClick={() => this.importSettings()}>
<ExportIcon/>
<span>{getMessage('modals.main.addons.create.settings.current')}</span>
</div>
<div className={this.state.settingsClasses.json} onClick={() => document.getElementById('file-input').click()}>
<ImportIcon/>
<span>{getMessage('modals.main.addons.create.settings.json')}</span>
</div>
</div>
</div>
<FileUpload id='file-input' type='settings' accept='application/json' loadFunction={(e) => this.importSettings(JSON.parse(e.target.result))} />
<br/><br/>
<button onClick={() => this.changeTab(2)} className='uploadbg' style={{ marginRight: '10px' }}>{getMessage('modals.welcome.buttons.previous')}</button>
<button onClick={() => this.changeTab(3)} className='uploadbg' disabled={nextSettingsDisabled}>{getMessage('modals.welcome.buttons.next')}</button>
<button onClick={() => this.changeTab(2)} className='uploadbg' style={{ margin: '10px' }}>{getMessage('modals.welcome.buttons.previous')}</button>
<button onClick={() => this.changeTab(3)} className='uploadbg' style={{ margin: '10px' }} disabled={nextSettingsDisabled}>{getMessage('modals.welcome.buttons.next')}</button>
</>
);
@@ -253,18 +262,16 @@ export default class Create extends PureComponent {
<option value='quote_api'>{getMessage('modals.main.addons.create.quotes.api.title')}</option>
</Dropdown>
{this.state.addonMetadata.type === 'quote_api' ? <>
<h3>{getMessage('modals.main.addons.create.quotes.api.title')}</h3>
<TextField label={getMessage('modals.main.addons.create.quotes.api.url')} varient='outlined' InputLabelProps={{ shrink: true }} value={this.state.addonData.url} onInput={(e) => this.updateQuotePack(e.target.value, 'url')}/>
<TextField label={getMessage('modals.main.addons.create.quotes.api.name')} varient='outlined' InputLabelProps={{ shrink: true }} value={this.state.addonData.name} onInput={(e) => this.updateQuotePack(e.target.value, 'name')}/>
<TextField label={getMessage('modals.main.addons.create.quotes.api.author')} varient='outlined' InputLabelProps={{ shrink: true }} value={this.state.addonData.author} onInput={(e) => this.updateQuotePack(e.target.value, 'author')}/>
<br/><br/>
</> : <>
<h3>{getMessage('modals.main.addons.create.quotes.local.title')}</h3>
<button onClick={() => this.importQuotes()} className='uploadbg' style={{ marginRight: '10px' }}>{getMessage('modals.main.addons.create.settings.current')}</button>
<button onClick={() => this.importQuotes()} className='uploadbg' style={{ margin: '10px' }}>{getMessage('modals.main.addons.create.settings.current')}</button>
<br/><br/>
</>}
<button onClick={() => this.changeTab(2)} className='uploadbg' style={{ marginRight: '10px' }}>{getMessage('modals.welcome.buttons.previous')}</button>
<button onClick={() => this.changeTab(3)} className='uploadbg' disabled={nextQuotesDisabled}>{getMessage('modals.welcome.buttons.next')}</button>
<button onClick={() => this.changeTab(2)} className='uploadbg' style={{ margin: '10px' }}>{getMessage('modals.welcome.buttons.previous')}</button>
<button onClick={() => this.changeTab(3)} className='uploadbg' style={{ margin: '10px' }}disabled={nextQuotesDisabled}>{getMessage('modals.welcome.buttons.next')}</button>
</>
);
@@ -273,11 +280,10 @@ export default class Create extends PureComponent {
const addPhotos = (
<>
<h3>{getMessage('modals.main.addons.create.photos.title')}</h3>
<h3>{getMessage('modals.main.addons.create.quotes.local.title')}</h3>
<button onClick={() => this.importPhotos()} className='uploadbg' style={{ marginRight: '10px' }}>{getMessage('modals.main.addons.create.settings.current')}</button>
<br/><br/>
<button onClick={() => this.changeTab(2)} className='uploadbg' style={{ marginRight: '10px' }}>{getMessage('modals.welcome.buttons.previous')}</button>
<button onClick={() => this.changeTab(3)} className='uploadbg' disabled={nextPhotosDisabled}>{getMessage('modals.welcome.buttons.next')}</button>
<button onClick={() => this.changeTab(2)} className='uploadbg' style={{ margin: '10px' }}>{getMessage('modals.welcome.buttons.previous')}</button>
<button onClick={() => this.changeTab(3)} className='uploadbg' style={{ margin: '10px' }} disabled={nextPhotosDisabled}>{getMessage('modals.welcome.buttons.next')}</button>
</>
);

View File

@@ -31,7 +31,7 @@ export default class Sideload extends PureComponent {
failedReason = this.getMessage('modals.main.addons.sideload.errors.no_type');
} else if (!input.version) {
failedReason = this.getMessage('modals.main.addons.sideload.errors.no_version');
} else if (input.type === 'photos' && (!input.photos || !input.photos.length || !input.photos[0].url.default || !input.photos[0].photographer || !input.photos[0].location)) {
} else if (input.type === 'photos' && (!input.photos || !input.photos.length || !input.photos[0].url || !input.photos[0].url.default || !input.photos[0].photographer || !input.photos[0].location)) {
failedReason = this.getMessage('modals.main.addons.sideload.errors.invalid_photos');
} else if (input.type === 'quotes' && (!input.quotes || !input.quotes.length || !input.quotes[0].quote || !input.quotes[0].author)) {
failedReason = this.getMessage('modals.main.addons.sideload.errors.invalid_quotes');

View File

@@ -121,3 +121,9 @@ p.author {
max-width: 250px;
overflow-x: hidden;
}
@media (max-height: 1080px) {
.dropdownsortAddons {
margin-top: 40px !important;
}
}

View File

@@ -53,6 +53,7 @@ p.description {
background: var(--sidebar);
width: 350px;
border-radius: 12px;
min-height: 180px;
h4 {
cursor: initial !important;
@@ -74,4 +75,5 @@ p.description {
.overview {
font-size: 30px !important;
margin-top: 33px;
}

View File

@@ -54,6 +54,9 @@
margin-right: 25px;
width: 220px;
cursor: pointer;
border-radius: 24px;
border: 3px solid var(--tab-active);
font-size: 1rem;
&:hover {
background-color: var(--tab-active);

View File

@@ -25,3 +25,8 @@
border-radius: 50%;
padding-right: 5px;
}
.contacth3 {
font-size: 1.5rem;
margin-bottom: 0.8em !important;
}

View File

@@ -50,7 +50,7 @@ export default class Dropdown extends PureComponent {
const label = this.props.label || '';
return (
<FormControl fullWidth>
<FormControl fullWidth className={id}>
<InputLabel id={id}>{label}</InputLabel>
<Select labelId={id} id={this.props.name} value={this.state.value} label={label} onChange={this.onChange} ref={this.dropdown} key={id}>
{this.props.manual ? this.props.children : this.props.children.map((e, index) => {

View File

@@ -93,7 +93,7 @@ export default class About extends PureComponent {
<p>{this.getMessage('modals.main.settings.sections.about.version.title')} {variables.constants.VERSION} ({this.state.update})</p>
<a href={variables.constants.PRIVACY_URL} className='aboutLink' target='_blank' rel='noopener noreferrer' style={{ fontSize: '1rem' }}>{this.getMessage('modals.welcome.sections.privacy.links.privacy_policy')}</a>
<h3>{this.getMessage('modals.main.settings.sections.about.contact_us')}</h3>
<h3 className='contacth3'>{this.getMessage('modals.main.settings.sections.about.contact_us')}</h3>
<a href={'mailto:' + variables.constants.EMAIL} className='aboutIcon' target='_blank' rel='noopener noreferrer'><Email/></a>
<a href={'https://twitter.com/' + variables.constants.TWITTER_HANDLE} className='aboutIcon' target='_blank' rel='noopener noreferrer'><Twitter/></a>
<a href={'https://instagram.com/' + variables.constants.INSTAGRAM_HANDLE} className='aboutIcon' target='_blank' rel='noopener noreferrer'><Instagram/></a>

View File

@@ -15,10 +15,10 @@ export default class GreetingSettings extends PureComponent {
}
changeDate = (e) => {
localStorage.setItem('birthday', e.target.value);
localStorage.setItem('birthday', e.target.value || new Date());
this.setState({
birthday: new Date(e.target.value)
birthday: e.target.value ? new Date(e.target.value) : new Date()
});
}

View File

@@ -90,6 +90,12 @@
margin: 10px;
border: 3px solid var(--tab-active);
display: flex;
flex-direction: column;
align-items: center;
align-content: center;
justify-content: center;
&:hover {
background: var(--tab-active);
cursor: pointer;
@@ -98,6 +104,10 @@
span {
font-size: 1rem;
}
svg {
font-size: 2.5em;
}
}
.auto {

View File

@@ -51,7 +51,7 @@ export default class Notes extends PureComponent {
<NotesRounded/>
<h3>{variables.language.getMessage(variables.languagecode, 'widgets.navbar.notes.title')}</h3>
</div>
<TextareaAutosize rowsmax={50} placeholder={variables.language.getMessage(variables.languagecode, 'widgets.navbar.notes.placeholder')} value={this.state.notes} onChange={this.setNotes}/>
<TextareaAutosize placeholder={variables.language.getMessage(variables.languagecode, 'widgets.navbar.notes.placeholder')} value={this.state.notes} onChange={this.setNotes}/>
<button onClick={() => this.pin()} className='pinNote'><PushPin/></button>
<button onClick={() => this.copy()} className='copyNote'><FileCopyRounded/></button>
{/*variables.keybinds.pinNotes && variables.keybinds.pinNotes !== '' ? <Hotkeys keyName={variables.keybinds.pinNotes} onKeyDown={() => this.pin()}/> : null*/}

View File

@@ -23,6 +23,13 @@
position: absolute;
top: 80%;
margin-left: -150px;
max-height: 80vh !important;
font-size: 1rem !important;
textarea {
max-height: 65vh !important;
overflow-y: visible !important;
}
svg {
float: left;

View File

@@ -29,4 +29,4 @@ export const DONATE_USERNAME = 'davidcralph'; // this only works if you use the
export const OFFLINE_IMAGES = 20;
export const VERSION = '6.0.0';
export const VERSION = '6.0.2';

View File

@@ -423,7 +423,7 @@
"added": "Hinzugefügt",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "Hier ist es leer",
"description": "Gehen Sie zum Marktplatz, um einige hinzuzufügen"

View File

@@ -422,7 +422,7 @@
"added": "Added",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "Empty",
"description": "No addons are installed"

View File

@@ -422,7 +422,7 @@
"added": "Added",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "Empty",
"description": "No addons are installed"

View File

@@ -22,7 +22,7 @@
"new": "Nuevo enlace",
"name": "Nombre",
"url": "URL",
"icon": "Icon (optional)",
"icon": "Icono (opcional)",
"add": "Añadir",
"name_error": "Debe indicar el nombre",
"url_error": "Debe indicar la URL"
@@ -111,7 +111,7 @@
"author_link": "Enlace del autor",
"custom": "Cita personalizada",
"custom_author": "Autor personalizado",
"add": "Add quote",
"add": "Añadir cita",
"buttons": {
"title": "Botones",
"copy": "Botón de copiar",
@@ -133,7 +133,7 @@
"ddg_image_proxy": "Utilizar el proxy de imágenes de DuckDuckGo",
"transition": "Transición fade-in",
"photo_information": "Ver información de la foto",
"show_map": "Show location map on photo information if available",
"show_map": "Mostrar el mapa de la ubicación en la información de la foto si está disponible",
"category": "Categoría",
"buttons": {
"title": "Botones",
@@ -160,8 +160,8 @@
"api": "API",
"custom_image": "Imagen personalizada",
"custom_colour": "Color/degradado personalizado",
"random_colour": "Random colour",
"random_gradient": "Random gradient"
"random_colour": "Color aleatorio",
"random_gradient": "Degradado aleatorio"
},
"source": {
"title": "Fuente",
@@ -170,8 +170,8 @@
"custom_colour": "Color del fondo personalizado",
"upload": "Subir",
"add_colour": "Añadir color",
"add_background": "Add background",
"add_url": "Add URL",
"add_background": "Añadir fondo",
"add_url": "Añadir URL",
"disabled": "Desactivado",
"loop_video": "Vídeo en bucle",
"mute_video": "Silenciar video",
@@ -229,12 +229,12 @@
"title": "Enlaces rápidos",
"open_new": "Abrir en una nueva pestaña",
"tooltip": "Descripción emergente",
"text_only": "Show text only"
"text_only": "Mostrar solo texto"
},
"message": {
"title": "Message",
"add": "Add message",
"text": "Text"
"title": "Mensaje",
"add": "Añadir mensaje",
"text": "Texto"
},
"appearance": {
"title": "Apariencia",
@@ -248,9 +248,9 @@
"title": "Barra de búsqueda",
"notes": "Notas",
"refresh": "Botón de recargar",
"hover": "Only display on hover",
"hover": "Solo mostrar al pasar el cursor",
"refresh_options": {
"none": "None",
"none": "Ninguno",
"page": "Página"
}
},
@@ -279,7 +279,7 @@
"accessibility": {
"title": "Accesibilidad",
"animations": "Animaciones",
"text_shadow": "Widget text shadow",
"text_shadow": "Sombra de texto del widget",
"widget_zoom": "Zoom del widget",
"toast_duration": "Duración de la notificación",
"milliseconds": "milisegundos"
@@ -323,27 +323,27 @@
"usage": "Estadísticas de uso"
},
"keybinds": {
"title": "Keybinds",
"recording": "Recording...",
"click_to_record": "Click to record",
"title": "Asignación de teclas",
"recording": "Grabando...",
"click_to_record": "Click para grabar",
"background": {
"favourite": "Favourite background",
"maximise": "Maximise background",
"download": "Download background",
"show_info": "Show background information"
"favourite": "Fondo favorito",
"maximise": "Maximizar fondo",
"download": "Descargar fondo",
"show_info": "Mostrar información del fondo"
},
"quote": {
"favourite": "Favourite quote",
"copy": "Copy quote",
"tweet": "Tweet quote"
"favourite": "Marcar la cita como favorita",
"copy": "Copiar cita",
"tweet": "Tuitear la cita"
},
"notes": {
"pin": "Pin notes",
"copy": "Copy notes"
"pin": "Fijar notas",
"copy": "Copiar notas"
},
"search": "Focus search",
"quicklinks": "Toggle add quick link",
"modal": "Toggle modal"
"search": "Enfocar búsqueda",
"quicklinks": "Alternar añadir enlace rápido",
"modal": "Alternal modal"
},
"experimental": {
"title": "Experimental",
@@ -356,7 +356,7 @@
},
"changelog": {
"title": "Registro de cambios",
"by": "By {author}"
"by": "Por {author}"
},
"about": {
"title": "Acerca de",
@@ -382,7 +382,7 @@
},
"contributors": "Contribuyentes",
"supporters": "Partidarios",
"no_supporters": "There are currently no Mue supporters",
"no_supporters": "Actualmente no hay partidarios de Mue",
"photographers": "Fotógrafos"
}
},
@@ -406,7 +406,7 @@
"buttons": {
"addtomue": "Añadir a Mue",
"remove": "Desinstalar",
"update_addon": "Update Add-on"
"update_addon": "Actualizar complemento"
},
"quote_warning": {
"title": "Advertencia",
@@ -420,22 +420,22 @@
},
"addons": {
"added": "Añadidos",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"check_updates": "Comprobar actualizaciones",
"no_updates": "No hay actualizaciones disponibles",
"updates_available": "Actualizaciones disponibles {amount}",
"empty": {
"title": "Vacío",
"description": "Dirígete a la tienda para agregar algunos."
},
"sideload": {
"title": "Cargar localmente",
"failed": "Failed to sideload addon",
"failed": "Fallo en la carga lateral del complemento",
"errors": {
"no_name": "No name provided",
"no_author": "No author provided",
"no_type": "No type provided",
"invalid_photos": "Invalid photos object",
"invalid_quotes": "Invalid quotes object"
"no_name": "No se ha indicado el nombre",
"no_author": "No se ha indicado el autor",
"no_type": "No se ha indicado el tipo",
"invalid_photos": "Objeto de fotos inválido",
"invalid_quotes": "Objeto de citas inválido"
}
},
"sort": {
@@ -492,7 +492,7 @@
}
},
"welcome": {
"tip": "Truco",
"tip": "Consejo",
"sections": {
"intro": {
"title": "Bienvenido a Mue Tab",
@@ -533,13 +533,13 @@
},
"buttons": {
"next": "Siguiente",
"preview": "Preview",
"preview": "Vista previa",
"previous": "Anterior",
"close": "Cerrar"
},
"preview": {
"description": "You are currently in preview mode. Settings will be reset on closing this tab.",
"continue": "Continue setup"
"description": "Actualmente se encuentra en el modo de vista previa. La configuración se restablecerá al cerrar esta pestaña.",
"continue": "Continuar con la configuración"
}
}
},
@@ -549,7 +549,7 @@
"reset": "Restablecido correctamente",
"installed": "Instalado correctamente",
"uninstalled": "Desinstalado correctamente",
"updated": "Successfully updated",
"updated": "Actualizado correctamente",
"error": "Algo salió mal",
"imported": "Importado correctamente"
}

View File

@@ -422,7 +422,7 @@
"added": "Ajoutées",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "C'est vide par ici",
"description": "Dirigez vous vers le marché pour ajouter des options"

View File

@@ -422,7 +422,7 @@
"added": "Toegevoegd",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "Het is hier erg leeg",
"description": "Ga naar de marktplaats om een paar extensies toe te voegen"

View File

@@ -422,7 +422,7 @@
"added": "Lagt til",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "Det er tomt her.",
"description": "Gå til markedsplassen å legg til noe"

View File

@@ -422,7 +422,7 @@
"added": "Добавлен",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "Здесь пусто",
"description": "Зайдите в магазин, чтобы найти что-то интересное"

View File

@@ -422,7 +422,7 @@
"added": "已添加",
"check_updates": "Check for updates",
"no_updates": "No updates available",
"updates_available": "Updates avaialble {amount}",
"updates_available": "Updates available {amount}",
"empty": {
"title": "这里空空如也",
"description": "请访问插件市场来添加插件。"