From 92701e8a168ca6bdda9fda45e9b2ecfd92303ebc Mon Sep 17 00:00:00 2001 From: julio Date: Sun, 11 Oct 2026 18:13:26 -0300 Subject: [PATCH] =?UTF-8?q?feat(pessoas):=20cart=C3=A3o=20"Quem=20=C3=A9?= =?UTF-8?q?=3F"=20com=20o=20rosto,=20no=20Ao=20vivo=20e=20em=20Pessoas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Um cartão por pessoa desconhecida (grupo de rostos parecidos), com o rosto grande: toca no nome de quem já conhece ou digita um novo, e a resposta vale para todas as fotos do grupo. Não é ninguém / Pular. No Ao vivo só aparece de quem ele já viu 3 vezes ou mais. Co-Authored-By: Claude Opus 5.5 --- web/src/lib/componentes/QuemE.svelte | 147 +++++++++++++++++++++++++++ web/src/telas/AoVivo.svelte | 4 + web/src/telas/Pessoas.svelte | 2 + 3 files changed, 153 insertions(+) create mode 100644 web/src/lib/componentes/QuemE.svelte diff --git a/web/src/lib/componentes/QuemE.svelte b/web/src/lib/componentes/QuemE.svelte new file mode 100644 index 0000000..9f13c4f --- /dev/null +++ b/web/src/lib/componentes/QuemE.svelte @@ -0,0 +1,147 @@ + + +{#if grupo && capa} +
+ Rosto que ele viu e ainda não conhece +
+

Quem é?

+

Ele viu esta pessoa {grupo.length} {grupo.length === 1 ? 'vez' : 'vezes'} desde {quando}.

+ {#if rostos.length > 1} +
+ {#each rostos.slice(1, 7) as r (r.id)}{/each} + {#if rostos.length > 7}+{rostos.length - 7}{/if} +
+ {/if} + {#if st?.pessoas.length} +
+ {#each st.pessoas as p (p.id)} + + {/each} +
+ {/if} +
+ + +
+
+ + + {#if restantes > 1}mais {restantes - 1} para conhecer{/if} +
+
+
+{/if} + + diff --git a/web/src/telas/AoVivo.svelte b/web/src/telas/AoVivo.svelte index cbf3d91..1f31d24 100644 --- a/web/src/telas/AoVivo.svelte +++ b/web/src/telas/AoVivo.svelte @@ -15,6 +15,7 @@ import PresencaPir from '../lib/componentes/PresencaPir.svelte'; import RostoPrevia from '../lib/componentes/RostoPrevia.svelte'; import VidaCartao from '../lib/componentes/VidaCartao.svelte'; + import QuemE from '../lib/componentes/QuemE.svelte'; import AprendizadoCartao from '../lib/componentes/AprendizadoCartao.svelte'; import { estado } from '../lib/estado.svelte'; import { Rastreamento } from '../lib/rastreamento.svelte'; @@ -128,6 +129,7 @@ const pirAtivo = $derived(
+
{#if estado.vida?.config.ligado}
{/if} @@ -394,6 +396,8 @@ const pirAtivo = $derived( min-width: 0; } .palco { order: 0; } + .c-quem { order: 1; } + .c-quem:empty { display: none; } .c-vida { order: 1; } .c-aprendizado { order: 2; } .c-celular { order: 3; } diff --git a/web/src/telas/Pessoas.svelte b/web/src/telas/Pessoas.svelte index 2f99646..2a5699e 100644 --- a/web/src/telas/Pessoas.svelte +++ b/web/src/telas/Pessoas.svelte @@ -2,6 +2,7 @@ import { Check, Pencil, ScanFace, ShieldCheck, Trash2, UserPlus, X } from '@lucide/svelte'; import { onMount } from 'svelte'; import Card from '../lib/componentes/Card.svelte'; + import QuemE from '../lib/componentes/QuemE.svelte'; import Selo from '../lib/componentes/Selo.svelte'; import Toggle from '../lib/componentes/Toggle.svelte'; import { estado } from '../lib/estado.svelte'; @@ -48,6 +49,7 @@
+ {#snippet acoes()}