Header.tsx 1.05 KiB
Newer Older
Andrei Eres's avatar
Andrei Eres committed
import { useStore } from '@nanostores/react'
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 logo from '../assets/logo.svg'
Andrei Eres's avatar
Andrei Eres committed
import { headerActionsStore } from '../../stores/headerActions'
Andrei Eres's avatar
Andrei Eres committed
import { BaseProps } from '../types'
Andrei Eres's avatar
Andrei Eres committed
import { Button } from './Button'
Andrei Eres's avatar
Andrei Eres committed

Andrei Eres's avatar
Andrei Eres committed
const Header: React.FC<BaseProps> = ({ className }) => {
Andrei Eres's avatar
Andrei Eres committed
  const actions = useStore(headerActionsStore)
Andrei Eres's avatar
Andrei Eres committed

  return (
    <div className={className}>
      <div className='text-holder'>
        <img className='logo' src={logo} />
        <div>{EXT_NAME}</div>
      </div>
Andrei Eres's avatar
Andrei Eres committed
      {actions.map((a) => (
        <Button onClick={a.onAction} key={a.label}>
          {a.label}
        </Button>
      ))}
Andrei Eres's avatar
Andrei Eres committed
    </div>
Andrei Eres's avatar
Andrei Eres committed
  )
}
Andrei Eres's avatar
Andrei Eres committed

export default styled(Header)`
Andrei Eres's avatar
Andrei Eres committed
  display: flex;
  justify-content: space-between;
Andrei Eres's avatar
Andrei Eres committed
  align-items: center;
Andrei Eres's avatar
Andrei Eres committed
  padding: 0.5rem 1rem;
  box-shadow: var(--shadow);
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
  img {
Andrei Eres's avatar
Andrei Eres committed
    height: 1.5rem;
    width: 1.5rem;
Andrei Eres's avatar
Andrei Eres committed
    margin-right: 0.5rem;
Andrei Eres's avatar
Andrei Eres committed
  }
`