Skip to content

Conversation

@JoaoGW
Copy link
Owner

@JoaoGW JoaoGW commented Dec 2, 2025

Correções de Inicialização, Favoritos, Calendário, Exportações e Melhorias Gerais

Description

Este Pull Request reúne diversas correções, melhorias de UX, implementação de novas telas e ajustes funcionais importantes para garantir estabilidade, modernidade e melhor experiência do usuário no aplicativo.

Main Changes

  • Correção da falha de inicialização do app causada pela ausência do módulo responseCache.
  • Correção no RecenterButton da tela MapsExpanded, que agora retorna corretamente o usuário à sua posição real.
  • Atualização das URLs de API para endereço local e ajuste das datas padrão de itinerários.
  • Criação da tela de Locais Favoritados e implementação da funcionalidade de Favoritar Local em um Roteiro.
  • Substituição da biblioteca de Calendário por uma mais moderna, personalizável e clean.
  • Atualização da visualização do calendário na tela Criar Itinerário.
  • Criação da tela de Controle de Gastos, testada e confirmada funcional.
  • Retorno da funcionalidade de Exportar Roteiros em PDF originalmente criada por @FenixReloaded, agora com UI moderna e integrada ao Expo-Sharing.
  • Persistência de imagem aplicada ao background da tela de Stats do itinerário.
  • Ajustes finos nas telas ItineraryMap e ExpensesControl, incluindo melhorias na visualização de valores.
  • Limitação de até 45 dias para roteiros gerados via IA.
  • Filtros de roteiros (Planejados, Rascunhos e Passados) agora completamente funcionais.
  • Criação de dialogs de confirmação de ações para evitar erros de navegação.
  • Os itinerários agora são salvos ao serem modificados e fechados corretamente.
  • Ajuste da mensagem exibida quando não existem roteiros passados.
  • Criação dos cards exibidos nos filtros.
  • Atualização da documentação de GPT-Requests, incluindo URL oficial do Vercel para manter APIs ativas.
  • Correção de URL que estava duplicada com HTTP, evitando erro de Network Request.

Details of the Changes

  • Inclusão correta do módulo responseCache para impedir falhas na inicialização.
  • Correção da função de recentralização do mapa, agora utilizando localização real do usuário.
  • Adaptação de requisições para ambiente local durante desenvolvimento.
  • Criação da nova tela Favoritos com testes para diferentes cenários de uso e comportamento.
  • Implementação do favorito de roteiros, com controle integrado.
  • Aplicação de nova biblioteca de calendário, com melhor flexibilidade e apresentação visual.
  • Revisão completa da interface Criar Itinerário, ajustando exibição do calendário.
  • Desenvolvimento da tela Controle de Gastos com categorias, valores e cálculos funcionais.
  • Modernização da exportação em PDF com layout atualizado, cores e suporte ao Expo-Sharing.
  • Persistência do background da tela Stats utilizando armazenamento local.
  • Ajustes de layout e visualização nas telas ItineraryMap e ExpensesControl para leitura mais clara.
  • Implementação da regra de limite de 45 dias gerados via IA como medida de performance e UX.
  • Sistema de filtros revisado com funcionalidade integral e novos cards visuais.
  • Adição de dialogs de confirmação (excluir, fechar, modificar, etc.).
  • Lógica de autosave de itinerários modificados ao fechar a tela.
  • Ajuste da mensagem de estado vazio em roteiros passados.
  • Atualização do documento GPT-Requests para refletir o novo endpoint oficial.
  • Correção de esquema HTTP redundante em URL que causava falhas de rede.

How to Test

  1. Abrir o app e verificar se ele inicia normalmente sem erros de responseCache.
  2. Testar o botão RecenterButton no MapsExpanded para confirmar que retorna à posição real.
  3. Validar chamadas de API utilizando o novo endereço local.
  4. Criar itinerários e verificar se as datas padrão foram atualizadas.
  5. Acessar a nova tela de Favoritos e testar:
    • Favoritar e desfavoritar locais
    • Persistência do estado
    • Comportamento em listas vazias ou cheias
  6. Testar o novo calendário em Criar Itinerário.
  7. Abrir a tela Controle de Gastos e validar funcionalidades.
  8. Exportar um roteiro em PDF e verificar:
    • Layout moderno
    • Integração com Expo-Sharing
  9. Alterar o background em Stats e confirmar persistência após fechar e reabrir.
  10. Avaliar melhorias em ItineraryMap e ExpensesControl.
  11. Testar o limite de 45 dias para roteiros IA.
  12. Validar filtros:
    • Planejados
    • Rascunhos
    • Passados
  13. Confirmar funcionamento dos dialogs de confirmação.
  14. Criar rotas, modificar e fechar para validar salvamento automático.
  15. Testar a nova mensagem de estado vazio em roteiros passados.
  16. Verificar URLs corrigidas e a nova documentação GPT-Requests.

Related Issues

Nenhuma issue mencionada.

Checklist

  • Código revisado
  • Funcionalidades testadas
  • Documentação atualizada
  • URLs validadas
  • UX verificada

JoaoGW added 10 commits December 1, 2025 19:53
…de responseCache. Corrigido RecenterButton do MapsExpanded que não levava o usuário de volta a sua posição real e sim o jogando para o meio do nada.
…e de Favoritar Local de um Roteiro. Tela nova de favoritos devidamente testada e aprovada para várias situações.
…lean e moderna. Alteração da visualização do calendário em Criar Itinerário. Feita a tela de Controle de Gastos. A nova tela de Controle de Gastos foi testada e provada funcional.
…te feita pelo @FenixReloaded porém agora com uma UI mais moderna, colorida e amigável. Também foi integrado o Expo-Sharing permitindo assim compartilhar esse PDF do roteiro em diversos locais diferentes. Agora alterar o background na tela de Stats daquele itinerário deixa a imagem salva mesmo quando o usuário sair e voltar a aquela tela (persistência de imagem).
…assim a UX do usuário com novos parâmetros de visualização de valores.
…am oficialmente. Dialogs de confirmação de ações foram criados, melhorando assim a UX do usuário em casos de acidentes de navegação e usabilidade. Os itinerários agora são salvos caso tenham tido alguma modificação e sejam fechados da forma correta. Alterada a mensagem para quando não tivermos nenhum roteiro passado disponível. Criados os cards para aparecerem nos filtros.
…ercel para manter nossas APIs sempre live (no momento essa regra vale também ainda para testes e ambientes dev).
@JoaoGW JoaoGW self-assigned this Dec 2, 2025
Copilot AI review requested due to automatic review settings December 2, 2025 23:06
@JoaoGW JoaoGW added documentation Improvements or additions to documentation enhancement New feature or request dependencies Pull requests that update a dependency file labels Dec 2, 2025
@vercel
Copy link

vercel bot commented Dec 2, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
guia-turistico Ready Ready Preview Comment Dec 2, 2025 11:09pm
guiaturistico_eztripai Ready Ready Preview Comment Dec 2, 2025 11:09pm

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR includes multiple improvements to the itinerary generation feature, including bug fixes, UX enhancements, API migrations, and new functionality. However, there is a critical issue with the complete deletion of package.json and package-lock.json files.

Key Changes

  • Migration of API endpoints from local development (SEU-IP-AQUI:3000) to production Vercel deployment
  • Added API key validation for weather API
  • URL updates for visa check and Google Places API endpoints

Reviewed changes

Copilot reviewed 34 out of 36 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
package.json CRITICAL: Entire file deleted - appears unintentional
package-lock.json CRITICAL: Entire file deleted - will break dependency resolution
nextjs-api/pages/api/weather.ts Added weather API key validation with proper error handling
expo-app/src/screens/Itinerary/ItineraryVisaCheck.tsx Updated API endpoint from localhost to Vercel production URL
expo-app/src/screens/HomePage/Home.tsx Updated Google Places API endpoint from localhost to Vercel production URL
Files not reviewed (1)
  • expo-app/package-lock.json: Language not supported
Comments suppressed due to low confidence (1)

expo-app/src/screens/AIChat/AIChat.tsx:31

  • Unused import responseCache.
import { NetInfoContext } from "@contexts/NetInfo";

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +12 to +15
if (!weatherApi) {
console.error("WEATHER API key is not configured");
return res.status(500).json({ error: "Weather API key not configured" });
}
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Good defensive programming: Adding validation to check if the WEATHER API key is configured before making the API call. However, consider using a more specific environment variable check (e.g., process.env.WEATHER_API_KEY) rather than just checking if weatherApi is truthy, as this could catch configuration issues earlier.

Copilot uses AI. Check for mistakes.
Comment on lines +380 to +383
if (dayData && dayData.timeline) {
dayData.timeline = dayData.timeline.filter((_, i) => i !== index);
newState[selectedDayIndex] = dayData;
}
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This guard always evaluates to true.

Suggested change
if (dayData && dayData.timeline) {
dayData.timeline = dayData.timeline.filter((_, i) => i !== index);
newState[selectedDayIndex] = dayData;
}
dayData.timeline = dayData.timeline.filter((_, i) => i !== index);
newState[selectedDayIndex] = dayData;

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +13
import {
AlertDialog,
AlertDialogBackdrop,
AlertDialogBody,
AlertDialogContent,
AlertDialogHeader,
Button,
ButtonIcon,
ButtonText,
Text,
View,
Pressable
} from "@gluestack-ui/themed";
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused imports Button, ButtonIcon, ButtonText.

Copilot uses AI. Check for mistakes.

import AsyncStorage from '@react-native-async-storage/async-storage';

import { Expense, ExpensesByCategory, ExpenseCategory } from '../../@types/ExpenseControlTypes';
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused import ExpenseCategory.

Suggested change
import { Expense, ExpensesByCategory, ExpenseCategory } from '../../@types/ExpenseControlTypes';
import { Expense, ExpensesByCategory } from '../../@types/ExpenseControlTypes';

Copilot uses AI. Check for mistakes.
Comment on lines +72 to +76
const formatCoordinates = (coordinates: string) => {
const [lat, lng] = coordinates.split(',').map(coord => coord.trim());
return `${parseFloat(lat).toFixed(4)}, ${parseFloat(lng).toFixed(4)}`;
};

Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused variable formatCoordinates.

Suggested change
const formatCoordinates = (coordinates: string) => {
const [lat, lng] = coordinates.split(',').map(coord => coord.trim());
return `${parseFloat(lat).toFixed(4)}, ${parseFloat(lng).toFixed(4)}`;
};

Copilot uses AI. Check for mistakes.
@JoaoGW JoaoGW merged commit d50ea09 into development Dec 5, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants