feat(components): ActionButton stopAlert + typography type fixes
This commit is contained in:
1 parent
2c51fd2623
commit
bbe2919c2c
89 files changed
+75993
-9961
No files matched your search
@@ -0,0 +1,54 @@
|
||||
# FightRate — Sensor contínuo e histórico geral
|
||||
|
||||
## Objetivo
|
||||
Separar claramente três conceitos:
|
||||
|
||||
1. **Sensor**: descobrir, mostrar disponibilidade e permitir conexão ao sensor BLE.
|
||||
2. **Monitoramento contínuo**: depois de conectado, receber, mostrar e salvar BPM real o tempo todo no app.
|
||||
3. **Janela de treino**: ação disponível somente em Captura; marca um intervalo dentro do fluxo contínuo para destaque no histórico.
|
||||
|
||||
## Critérios de sucesso
|
||||
- A tela Sensor não mostra botão de abrir/iniciar janela de treino.
|
||||
- A tela Sensor mostra se o sensor está disponível/conectado e permite conectar/desconectar/monitorar pelo fluxo de sensor.
|
||||
- Conectar o sensor inicia o recebimento contínuo via serviço nativo e os dados alimentam Captura, Sensor, Histórico e Insights.
|
||||
- A janela de treino continua existindo apenas na tela Captura e não interrompe o monitoramento ao fechar.
|
||||
- Histórico mantém a lista de janelas de treino e adiciona uma visão de **uso total** baseada em `continuous_heart_rate_samples`.
|
||||
- O histórico geral não usa dados falsos: se não houver amostras contínuas, mostra estado vazio honesto.
|
||||
- BLE services/characteristics ficam mais legíveis, com hierarquia compacta e sem espaçamento excessivo.
|
||||
- Código visível ao usuário em PT-BR; identificadores em inglês.
|
||||
|
||||
## Arquitetura recomendada
|
||||
- Reusar `FightRateCaptureStore` como fonte local-first.
|
||||
- Reusar `continuous_heart_rate_samples` como verdade para histórico geral.
|
||||
- Criar uma pequena camada de domínio TS para agrupar amostras contínuas em blocos de uso por lacunas de tempo. Essa lógica é pura e testável.
|
||||
- Expor do módulo nativo um método de leitura paginada/resumida das amostras contínuas, sem mudar o contrato BLE.
|
||||
- Manter `workout_sessions` apenas para janelas destacadas.
|
||||
|
||||
## Responsabilidades
|
||||
### Reusar
|
||||
- `useHeartRateMonitor`: estado app-wide recebido do módulo nativo.
|
||||
- `TrainingChart`: gráfico real e interativo com amostras timestampadas.
|
||||
- `FightRateCaptureStore`: persistência SQLite local.
|
||||
- `HistoryScreen`: entrada natural para alternar entre janelas e uso total.
|
||||
|
||||
### Criar/alterar
|
||||
- `src/training/continuousUsage.ts`: agrupar amostras contínuas em blocos de uso e sumarizar BPM/duração.
|
||||
- Teste Jest para `continuousUsage`.
|
||||
- API nativa `getContinuousSamples(limit?)`.
|
||||
- Wrapper TS para `getContinuousSamples`.
|
||||
- UI de Histórico com seção/alternância para “Janelas” e “Uso total”.
|
||||
- UI de Sensor sem ação de treino e com diagnóstico BLE mais claro.
|
||||
|
||||
## Fora de escopo
|
||||
- Não trocar biblioteca BLE.
|
||||
- Não adicionar dependências.
|
||||
- Não mudar o design aprovado fora dos pontos pedidos.
|
||||
- Não criar dados demo/fake.
|
||||
- Não mexer no app Android legado.
|
||||
|
||||
## Verificação
|
||||
- `npm run typecheck`
|
||||
- `npm run lint`
|
||||
- `npm test -- --runInBand`
|
||||
- `npm audit --audit-level=moderate`
|
||||
- `./gradlew assembleRelease -PreactNativeArchitectures=arm64-v8a`
|
||||
Reference in new issue
Block a user