Fala, Pedro. Dei uma olhada por aqui e o que está causando esse erro é o Gradiente e o voltarSVG da arquivo Topo.js, tanto que se você comentar a linha desses elementos o código vai funcionar normalmente:
import React from 'react';
import { Image, StyleSheet, Dimensions, TouchableOpacity } from 'react-native';
import Texto from './Texto';
//import Gradiente from '../assets/gradiente.svg';
import topo from '../assets/topo.png';
//import VoltarSVG from '../assets/voltar.svg';
const largura = Dimensions.get('screen').width;
const ALTURA_PADRAO = 270;
export default function Topo({ titulo, imagem = topo, altura = ALTURA_PADRAO }) {
const estilos = funcaoEstilos(altura);
return <>
<Image source={imagem} style={estilos.topo} />
{/* <Gradiente width={largura} height={130 / 360 * largura} style={estilos.gradiente}/> */}
<Texto style={estilos.titulo}>{titulo}</Texto>
<TouchableOpacity
onPress={() => {}}
style={estilos.botaoVoltar}>
{/* <VoltarSVG color="white" style={estilos.voltar} /> */}
</TouchableOpacity>
</>;
}
const funcaoEstilos = (altura) => StyleSheet.create({
topo: {
width: '100%',
height: altura,
},
gradiente: {
position: 'absolute',
},
titulo: {
width: '100%',
position: 'absolute',
textAlign: 'center',
fontSize: 16,
lineHeight: 26,
color: 'white',
fontWeight: 'bold',
padding: 16,
},
botaoVoltar: {
position: 'absolute',
padding: 17,
},
voltar: {
width: 24,
height: 24,
},
});
Importar a imagem diretamente e tentar utilizá-la como um componente não vai funcionar no react native, por isso está dando esse erro de tipos. O que você pode fazer é importar o caminho para a imagem e adicionar ele em um Image do react native, dessa forma acredito que vai funcioanr. Além disso, você pode criar estilos específicos para cada imagem e passar por parâmetro.
Eu espero que tenha ajudado e quaquer coisa estou por aqui!
Bons estudos!