diff --git a/web/src/lib/comandos.svelte.ts b/web/src/lib/comandos.svelte.ts index 567fe94..8d8d33f 100644 --- a/web/src/lib/comandos.svelte.ts +++ b/web/src/lib/comandos.svelte.ts @@ -30,12 +30,24 @@ export const GESTOS_INFO: Record = { export const gestosDisponiveis = () => estado.gestos.filter((g) => g in GESTOS_INFO); const CHAVE_FAVORITOS = 'carinha_favoritos'; -const PADRAO_FAVORITOS = ['feliz', 'coracao', 'piscadinha', 'surpreso', 'triste', 'olhar_esq', 'olhar_dir', 'dormir', 'acordar']; +const CHAVE_MAOS = 'carinha_favoritos_maos'; // marca que os gestos com mãos já entraram +/** Até 12 favoritos; as teclas 1 a 9 valem para os nove primeiros. */ +export const MAX_FAVORITOS = 12; +const GESTOS_MAOS = ['acenar', 'esconder', 'espiar', 'pensar', 'musica']; +const PADRAO_FAVORITOS = ['feliz', 'coracao', 'acenar', 'esconder', 'espiar', 'pensar', 'musica', 'piscadinha', 'surpreso', 'triste', 'dormir', 'acordar']; function lerFavoritos(): string[] { try { const v = JSON.parse(localStorage.getItem(CHAVE_FAVORITOS) || 'null'); - if (Array.isArray(v) && v.every((x) => typeof x === 'string')) return v.slice(0, 9); + if (Array.isArray(v) && v.every((x) => typeof x === 'string')) { + if (localStorage.getItem(CHAVE_MAOS)) return v.slice(0, MAX_FAVORITOS); + // Quem já tinha favoritos salvos ganha os gestos com mãos logo depois dos dois primeiros. + const novos = GESTOS_MAOS.filter((g) => !v.includes(g)); + const lista = [...v.slice(0, 2), ...novos, ...v.slice(2)].slice(0, MAX_FAVORITOS); + localStorage.setItem(CHAVE_FAVORITOS, JSON.stringify(lista)); + localStorage.setItem(CHAVE_MAOS, '1'); + return lista; + } } catch { /* sem armazenamento */ } @@ -45,9 +57,10 @@ function lerFavoritos(): string[] { class Favoritos { lista = $state(lerFavoritos()); alternar(g: string) { - this.lista = this.lista.includes(g) ? this.lista.filter((x) => x !== g) : [...this.lista, g].slice(0, 9); + this.lista = this.lista.includes(g) ? this.lista.filter((x) => x !== g) : [...this.lista, g].slice(0, MAX_FAVORITOS); try { localStorage.setItem(CHAVE_FAVORITOS, JSON.stringify(this.lista)); + localStorage.setItem(CHAVE_MAOS, '1'); } catch { /* ok */ } diff --git a/web/src/lib/componentes/Gestos.svelte b/web/src/lib/componentes/Gestos.svelte index 515c0fe..feddd05 100644 --- a/web/src/lib/componentes/Gestos.svelte +++ b/web/src/lib/componentes/Gestos.svelte @@ -11,10 +11,10 @@ {#each lista as g, i (g)} {@const info = GESTOS_INFO[g]}
- {#if completo}
{:else if aba === 'gestos'} - + {:else}