Header.tsx 985 B
Newer Older
Andrei Eres's avatar
Andrei Eres committed
import React from 'react'
Andrei Eres's avatar
Andrei Eres committed
import styled from 'styled-components'
import { EXT_NAME } from '../../utils/constants'
Andrei Eres's avatar
Andrei Eres committed
import { BaseProps } from '../types'
import { goHome, goTo } from '../utils/routing'
Andrei Eres's avatar
Andrei Eres committed

Andrei Eres's avatar
Andrei Eres committed
type Props = BaseProps & {
Andrei Eres's avatar
Andrei Eres committed
  showAdd?: boolean
Andrei Eres's avatar
Andrei Eres committed
  showBack?: boolean
Andrei Eres's avatar
Andrei Eres committed
  text?: React.ReactNode
}

Andrei Eres's avatar
Andrei Eres committed
const Header: React.FC<Props> = ({ className, showAdd, showBack, text }) => {
Andrei Eres's avatar
Andrei Eres committed
  const toggleAdd = () => goTo('/account/import-qr')

  return (
Andrei Eres's avatar
Andrei Eres committed
    <div className={className}>
      <div className='text-holder'>
        {showBack && (
          <button className='back-button' onClick={goHome}>
            Back
          </button>
        )}
        <div>{text || EXT_NAME}</div>
Andrei Eres's avatar
Andrei Eres committed
      </div>
Andrei Eres's avatar
Andrei Eres committed
      {showAdd && <button onClick={toggleAdd}>Add</button>}
Andrei Eres's avatar
Andrei Eres committed
    </div>
  )
}

export default styled(Header)`
Andrei Eres's avatar
Andrei Eres committed
  display: flex;
  justify-content: space-between;
  align-items: center;
Andrei Eres's avatar
Andrei Eres committed

Andrei Eres's avatar
Andrei Eres committed
  .text-holder {
Andrei Eres's avatar
Andrei Eres committed
    display: flex;
Andrei Eres's avatar
Andrei Eres committed
    align-items: center;
Andrei Eres's avatar
Andrei Eres committed
  }

Andrei Eres's avatar
Andrei Eres committed
  .back-button {
    margin-right: 1em;
Andrei Eres's avatar
Andrei Eres committed
  }
`