Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6948 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useState } from 'react'
import { EmojiActivity } from './emojis/EmojiActivity'
import { EmojiFlags } from './emojis/EmojiFlags'
import { EmojiFood } from './emojis/EmojiFood'
import { EmojiNature } from './emojis/EmojiNature'
import { EmojiObjects } from './emojis/EmojiObjects'
import { EmojiPeople } from './emojis/EmojiPeople'
import { EmojiSymbols } from './emojis/EmojiSymbols'
import { EmojiTravel } from './emojis/EmojiTravel'
import styled from 'styled-components'
import { Tab, Tabs } from '@mui/material'
import EmojiEmotionsIcon from '@mui/icons-material/EmojiEmotions'
import LandscapeIcon from '@mui/icons-material/Landscape'
import RestaurantIcon from '@mui/icons-material/Restaurant'
import SportsBasketballIcon from '@mui/icons-material/SportsBasketball'
import TimeToLeaveIcon from '@mui/icons-material/TimeToLeave'
import EmojiObjectsIcon from '@mui/icons-material/EmojiObjects'
import FavoriteIcon from '@mui/icons-material/Favorite'
import FlagIcon from '@mui/icons-material/Flag'

const StyledEmojiContainer = styled.div`
  background-color: var(--bg-color);
  bottom: 100%;
  left: 0;
  position: absolute;
  width: 100%;
  height: 200px;
  transform: translateZ(0);
  transform-origin: bottom;
  overflow: hidden;

  .smiley-panel-body {
    background: #fff;
    border-top: 1px solid var(--border-primary);
    box-sizing: border-box;
    height: 160px;
    padding: 10px 0;
    overflow: auto;
    width: 100%;

    .e1 {
      cursor: pointer;
    }
  }
`

const StyledEmojiTabs = styled(Tabs)`
  min-height: auto !important;
  border-bottom: 1px solid #f7fafc;
  border-top: 1px solid #f7fafc;
  background: #f9f9f9;
  display: flex;
  align-items: center;

  .MuiTabs-indicator {
    background-color: var(--font-color);
  }
`

const StyledTab = styled(Tab)`
  flex-grow: 1;
  color: var(--subtitle-color) !important;
  font-weight: bold !important;
  padding: 0.5rem 1rem !important;
  min-height: auto !important;
  &.Mui-selected {
    color: var(--font-color) !important;
  }
`

const Emojione = ({ onClickEmoji }) => {
  const [currentTab, setCurrentTab] = useState('people')

  const emojiTabs = {
    activity: 'activity',
    flags: 'flags',
    food: 'food',
    nature: 'nature',
    objects: 'objects',
    people: 'people',
    symbols: 'symbols',
    travel: 'travel',
  }

  const handleChangeTab = (tabToChange) => {
    setCurrentTab(tabToChange)
  }

  return (
    <StyledEmojiContainer>
      <StyledEmojiTabs
        value={currentTab}
        onChange={(e, newValue) => handleChangeTab(newValue)}
      >
        <StyledTab
          value={emojiTabs.people}
          icon={<EmojiEmotionsIcon />}
          disableRipple
        />
        <StyledTab
          value={emojiTabs.nature}
          icon={<LandscapeIcon />}
          disableRipple
        />
        <StyledTab
          value={emojiTabs.food}
          icon={<RestaurantIcon />}
          disableRipple
        />
        <StyledTab
          value={emojiTabs.activity}
          icon={<SportsBasketballIcon />}
          disableRipple
        />
        <StyledTab
          value={emojiTabs.travel}
          icon={<TimeToLeaveIcon />}
          disableRipple
        />
        <StyledTab
          value={emojiTabs.objects}
          icon={<EmojiObjectsIcon />}
          disableRipple
        />
        <StyledTab
          value={emojiTabs.symbols}
          icon={<FavoriteIcon />}
          disableRipple
        />
        <StyledTab value={emojiTabs.flags} icon={<FlagIcon />} disableRipple />
      </StyledEmojiTabs>

      <EmojiPeople
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.people}
      />
      <EmojiNature
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.nature}
      />
      <EmojiFood
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.food}
      />
      <EmojiActivity
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.activity}
      />
      <EmojiTravel
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.travel}
      />
      <EmojiObjects
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.objects}
      />
      <EmojiSymbols
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.symbols}
      />
      <EmojiFlags
        onClickEmoji={onClickEmoji}
        hidden={currentTab === emojiTabs.flags}
      />
    </StyledEmojiContainer>
  )
}

export default Emojione