Fix config metro

This commit is contained in:
Rayan Konecny 2026-05-04 21:02:33 -03:00
parent c9e948b8dd
commit cc49e676ca
4 changed files with 7403 additions and 3 deletions

View file

@ -2,4 +2,17 @@ const { getDefaultConfig } = require('expo/metro-config');
const config = getDefaultConfig(__dirname);
config.resolver.assetExts.push('wasm');
config.server = {
...config.server,
enhanceMiddleware: (middleware) => {
return (req, res, next) => {
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
return middleware(req, res, next);
};
},
};
module.exports = config;

File diff suppressed because it is too large Load diff

View file

@ -38,6 +38,7 @@
},
"devDependencies": {
"@types/react": "~19.2.10",
"expo-module-scripts": "^55.0.2",
"react-test-renderer": "19.1.0",
"typescript": "~5.9.2"
},

View file

@ -1,6 +1,6 @@
import * as SQLite from "expo-sqlite";
const db = SQLite.openDatabaseSync("toptran.db");
const dbPromise = SQLite.openDatabaseAsync("toptran.db");
export type UserDB = {
id: string;
@ -32,6 +32,7 @@ export type CompanyDB = {
export const initDB = async () => {
try {
const db = await dbPromise;
await db.execAsync(
`CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
@ -79,6 +80,7 @@ export const initDB = async () => {
// SETTINGS (key-value store)
export const getSetting = async (key: string): Promise<string | null> => {
try {
const db = await dbPromise;
const row = await db.getFirstAsync<{ value: string }>(
`SELECT value FROM settings WHERE key = ?`,
[key],
@ -92,6 +94,7 @@ export const getSetting = async (key: string): Promise<string | null> => {
export const setSetting = async (key: string, value: string): Promise<void> => {
try {
const db = await dbPromise;
await db.runAsync(
`INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)`,
[key, value],
@ -104,6 +107,7 @@ export const setSetting = async (key: string, value: string): Promise<void> => {
export const deleteSetting = async (key: string): Promise<void> => {
try {
const db = await dbPromise;
await db.runAsync(`DELETE FROM settings WHERE key = ?`, [key]);
} catch (error) {
console.error("Error deleting setting:", error);
@ -116,6 +120,7 @@ export const salvarUsuario = async (
usuario: Omit<UserDB, "createdAt">,
): Promise<string> => {
try {
const db = await dbPromise;
const existing = await db.getFirstAsync<{ id: string }>(
`SELECT id FROM users WHERE email = ?`,
[usuario.email],
@ -156,6 +161,7 @@ export const obterUsuario = async (
usuarioId: string,
): Promise<UserDB | null> => {
try {
const db = await dbPromise;
const result = await db.getFirstAsync<UserDB>(
`SELECT * FROM users WHERE id = ?`,
[usuarioId],
@ -170,6 +176,7 @@ export const obterUsuario = async (
// RIDES
export const salvarCorrida = async (corrida: Omit<RideDB, "createdAt">) => {
try {
const db = await dbPromise;
const result = await db.runAsync(
`INSERT INTO rides (id, user_id, company, km, cost_per_km, total, ride_date, synced)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
@ -195,6 +202,7 @@ export const obterCorridas = async (
usuarioId: string,
): Promise<RideDB[]> => {
try {
const db = await dbPromise;
const result = await db.getAllAsync<RideDB>(
`SELECT * FROM rides WHERE user_id = ? ORDER BY createdAt DESC`,
[usuarioId],
@ -210,6 +218,7 @@ export const obterCorridasNaoSincronizadas = async (
usuarioId: string,
): Promise<RideDB[]> => {
try {
const db = await dbPromise;
const result = await db.getAllAsync<RideDB>(
`SELECT * FROM rides WHERE user_id = ? AND synced = 0`,
[usuarioId],
@ -223,6 +232,7 @@ export const obterCorridasNaoSincronizadas = async (
export const marcarCorridaComoSincronizada = async (corridaId: string) => {
try {
const db = await dbPromise;
await db.runAsync(`UPDATE rides SET synced = 1 WHERE id = ?`, [corridaId]);
} catch (error) {
console.error("Error marking ride as synced:", error);
@ -232,6 +242,7 @@ export const marcarCorridaComoSincronizada = async (corridaId: string) => {
export const deletarCorrida = async (corridaId: string) => {
try {
const db = await dbPromise;
await db.runAsync(`DELETE FROM rides WHERE id = ?`, [corridaId]);
} catch (error) {
console.error("Error deleting ride:", error);
@ -241,6 +252,7 @@ export const deletarCorrida = async (corridaId: string) => {
export const limparBancoDados = async () => {
try {
const db = await dbPromise;
await db.execAsync(`DELETE FROM rides; DELETE FROM users;`);
console.log("Database cleared");
} catch (error) {
@ -252,6 +264,7 @@ export const limparBancoDados = async () => {
// COMPANIES
export const obterEmpresas = async (): Promise<CompanyDB[]> => {
try {
const db = await dbPromise;
return (
(await db.getAllAsync<CompanyDB>(
`SELECT * FROM companies ORDER BY name ASC`,
@ -267,6 +280,7 @@ export const salvarEmpresa = async (
empresa: Omit<CompanyDB, "createdAt">,
): Promise<void> => {
try {
const db = await dbPromise;
await db.runAsync(
`INSERT INTO companies (id, name, cost_per_km, notes) VALUES (?, ?, ?, ?)`,
[empresa.id, empresa.name, empresa.cost_per_km, empresa.notes],
@ -281,6 +295,7 @@ export const upsertEmpresaLocal = async (
empresa: Omit<CompanyDB, "createdAt">,
): Promise<void> => {
try {
const db = await dbPromise;
await db.runAsync(
`INSERT OR REPLACE INTO companies (id, name, cost_per_km, notes) VALUES (?, ?, ?, ?)`,
[empresa.id, empresa.name, empresa.cost_per_km, empresa.notes],
@ -295,6 +310,7 @@ export const upsertCorridaLocal = async (
corrida: Omit<RideDB, "createdAt">,
): Promise<void> => {
try {
const db = await dbPromise;
await db.runAsync(
`INSERT OR REPLACE INTO rides (id, user_id, company, km, cost_per_km, total, ride_date, synced)
VALUES (?, ?, ?, ?, ?, ?, ?, 1)`,
@ -310,6 +326,7 @@ export const atualizarEmpresa = async (
empresa: Omit<CompanyDB, "createdAt">,
): Promise<void> => {
try {
const db = await dbPromise;
await db.runAsync(
`UPDATE companies SET name = ?, cost_per_km = ?, notes = ? WHERE id = ?`,
[empresa.name, empresa.cost_per_km, empresa.notes, empresa.id],
@ -322,6 +339,7 @@ export const atualizarEmpresa = async (
export const deletarEmpresa = async (id: string): Promise<void> => {
try {
const db = await dbPromise;
await db.runAsync(`DELETE FROM companies WHERE id = ?`, [id]);
} catch (error) {
console.error("Error deleting company:", error);