Skip to content

Instantly share code, notes, and snippets.

@isacjunior
Last active August 10, 2018 12:50
Show Gist options
  • Save isacjunior/506e06c197d18e02dc83c8fb5ef45121 to your computer and use it in GitHub Desktop.
Save isacjunior/506e06c197d18e02dc83c8fb5ef45121 to your computer and use it in GitHub Desktop.
// src/components/BottomNavigator/index.js
import React, { Component } from 'react'
import { ScrollNavigator, NavigatorContent, NavigatorBox, Title } from './styled'
import { indicator, deposit, transfer, ajust, card, payment, block } from '../../assets/home'
class BottomNavigator extends Component {
// Setei os items no state local, mas o indicado é que isto venha como props para este componente.
// Provavelmente os items serão buscados via serviço.
state = {
menuItems: [
{ name: 'Indicar amigos', source: indicator },
{ name: 'Depositar', source: deposit },
{ name: 'Transferir', source: transfer },
{ name: 'Ajustar Limite', source: ajust },
{ name: 'Cartão virtual', source: card },
{ name: 'Pagar', source: payment },
{ name: 'Bloquear cartão', source: block },
],
}
// Essa função será a responsável por renderizar os items
renderMenusItems = ({ name, source }, index) => (
<NavigatorBox key={`${name}-${index}`}>
<Icon height={40} width={40} source={source} />
<Title>{name}</Title>
</NavigatorBox>
)
render() {
const { menuItems } = this.state
return (
<NavigatorContent>
// Aqui está o segredo, é necessário indicar que a scroll é horizontal e também retiramos o indicador.
<ScrollNavigator
horizontal
showsHorizontalScrollIndicator={false}
>
{menuItems.map(this.renderMenusItems)}
</ScrollNavigator>
</NavigatorContent>
)
}
}
export default BottomNavigator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment