Add CatIcon component and update app icon

- Introduced a new CatIcon component in TypeScript using React Native and SVG.
- The CatIcon supports customizable size, color, and optional background.
- Updated the app's icon image located at mobile/assets/icon.png.
This commit is contained in:
2026-03-14 15:07:55 -03:00
parent 73289b461f
commit d1eabfb690
8 changed files with 264 additions and 14 deletions
+37
View File
@@ -392,6 +392,7 @@ Base: `EXPO_PUBLIC_API_URL` (padrão: `http://localhost:3000/api/v1`)
- **Arquivo**: `app/(app)/inventory/[id]/edit.tsx`
- **Mudança**: `onSubmit()` agora chama `updateFilamentUseCase.execute()` em vez de apenas atualizar o store local
- **Código**:
```typescript
const onSubmit = async () => {
try {
@@ -415,6 +416,7 @@ Base: `EXPO_PUBLIC_API_URL` (padrão: `http://localhost:3000/api/v1`)
}
};
```
- **Impacto**: Edições de filamento agora persistem no servidor
#### 4. **Custom Color Picker — Hex Input com Validação**
@@ -473,6 +475,41 @@ Base: `EXPO_PUBLIC_API_URL` (padrão: `http://localhost:3000/api/v1`)
- Refresh: `listFilamentsUseCase` → `setFilaments(result)`
- Create: `createFilamentUseCase` → `addFilament(result)`
#### 6. **CatIcon com Fundo Turquesa — Design Integration**
- **Arquivos**: `src/presentation/components/icons/CatIcon.tsx`, `app/(auth)/login.tsx`
- **Mudança**: Implementação de suporte a fundo turquesa no ícone CatIcon conforme design Paper
- **Novas Props**:
```typescript
interface CatIconProps {
size?: number; // tamanho do SVG (padrão: 48px)
color?: string; // cor do ícone (padrão: #14120F)
withBackground?: boolean; // ativar fundo (padrão: false)
backgroundColor?: string; // cor do fundo (padrão: #38BCC2 — accent turquesa)
}
```
- **Implementação**: Quando `withBackground={true}`, o componente envolve o SVG em um `View` com:
- Tamanho: 80×80px
- Background color: `#38BCC2` (accent turquesa)
- Border radius: 24px
- Flexbox centered
- **Uso na tela de Login** (G3-0):
```typescript
// Antes:
<View style={styles.logoContainer}>
<CatIcon size={48} color={colors.accent} />
</View>
// Depois:
<CatIcon size={48} color="#1E1B18" withBackground backgroundColor={colors.accent} />
```
- **Remoção**: Deletado `logoContainer` style antigo do `StyleSheet`
- **Resultado**: Ícone agora exibe com fundo turquesa arredondado, alinhado com design do Paper
- **Impacto**: Visual correto da tela de login (G3-0) sincronizado com mockups
### Arquitetura Mantida
- Todos use cases injetados via `container.ts` (Dependency Injection)