skins: elegir el aspecto en el movil con tarjetas de un toque
En Ajustes del movil, Tema y Flujos de trabajo dejan de ser desplegables: cada skin es una tarjeta con su miniatura y cada workflow un boton grande, y se aplican al tocarlos. Solo se ofrecen los skins que tienen maqueta de movil (Acampada y Oasis Mobile); el servidor rechaza un tema de escritorio, que dejaba la app sin maqueta. La bienvenida tambien ofrece elegir skin. Aplicar un workflow ya no cambia el skin: se queda el que haya elegido cada cual. OasisMobile.css se carga con su propio <link> versionado antes de Acampada.css, en vez de con @import: el @import sin ?v= se quedaba en la cache del WebView y tras actualizar se veia la maqueta vieja.
This commit is contained in:
parent
ac921c9d56
commit
0baf85faa9
9 changed files with 103 additions and 17 deletions
|
|
@ -89,10 +89,14 @@ const WORKFLOWS = [
|
|||
const WORKFLOW_KEYS = WORKFLOWS.map(w => w.key);
|
||||
|
||||
const isMobile = () => process.env.OASIS_MOBILE === '1';
|
||||
// en el movil todos los workflows llevan el tema Acampada; quien venga de OasisMobile
|
||||
// sigue reconociendo su workflow (Acampada es OasisMobile con otros colores)
|
||||
// en el movil el workflow no toca el skin: se queda el que haya elegido cada cual
|
||||
// (Acampada u OasisMobile); si no hay ninguno de movil, Acampada
|
||||
const MOBILE_THEMES = ['Acampada', 'OasisMobile'];
|
||||
const themeOf = (workflow) => (isMobile() ? 'Acampada' : workflow.theme);
|
||||
const mobileSkin = (cfg) => {
|
||||
const cur = cfg && cfg.themes && cfg.themes.current;
|
||||
return MOBILE_THEMES.includes(cur) ? cur : 'Acampada';
|
||||
};
|
||||
const themeOf = (workflow, cfg) => (isMobile() ? mobileSkin(cfg) : workflow.theme);
|
||||
const sameTheme = (theme, workflow) => (isMobile() ? MOBILE_THEMES.includes(theme) : theme === workflow.theme);
|
||||
|
||||
const getWorkflow = (key) => WORKFLOWS.find(w => w.key === String(key || '')) || null;
|
||||
|
|
@ -117,7 +121,7 @@ const applyWorkflow = (cfg, workflow) => {
|
|||
const enabled = new Set(modulesOf(workflow));
|
||||
cfg.modules = cfg.modules || {};
|
||||
ALL_MODULES.forEach(mod => { cfg.modules[`${mod}Mod`] = enabled.has(mod) ? 'on' : 'off'; });
|
||||
if (workflow.theme) cfg.themes = { ...(cfg.themes || {}), current: themeOf(workflow) };
|
||||
if (workflow.theme) cfg.themes = { ...(cfg.themes || {}), current: themeOf(workflow, cfg) };
|
||||
if (workflow.homePage) cfg.homePage = workflow.homePage;
|
||||
return cfg;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue