RocketChat/Rocket.Chat

View on GitHub
packages/uikit-playground/src/Components/Preview/NavPanel/NavPanel.tsx

Summary

Maintainability
A
1 hr
Test Coverage
import { css } from '@rocket.chat/css-in-js';
import { Box, Button } from '@rocket.chat/fuselage';
import type { FC } from 'react';
import { useContext } from 'react';

import {
  context,
  previewTabsToggleAction,
  templatesToggleAction,
} from '../../../Context';
import SurfaceSelect from '../../SurfaceSelect';
import ToggleTabs from '../../ToggleTabs';

const NavPanel: FC = () => {
  const {
    state: { isMobile, isTablet, previewTabsToggle },
    dispatch,
  } = useContext(context);

  const toggleTabsHandler = (index: number) => {
    dispatch(previewTabsToggleAction(index));
  };

  const tabsItem: string[] = ['Preview', 'Editor'];
  return (
    <Box
      width={'100%'}
      height={'40px'}
      borderBlockEnd={'var(--default-border)'}
      display={'flex'}
      alignItems={'center'}
      zIndex={1}
      justifyContent={isMobile ? 'flex-end' : 'space-between'}
      bg={'alternative'}
      className={css`
        user-select: none;
      `}
    >
      {!isMobile && (
        <Box display="flex" alignItems="center" flexGrow={0} pis={4}>
          <SurfaceSelect />
          <Button
            mis="10px"
            small
            warning
            height={'max-content'}
            onClick={() => dispatch(templatesToggleAction(true))}
          >
            Templates
          </Button>
        </Box>
      )}
      {isTablet && (
        <ToggleTabs
          tabsItem={tabsItem}
          onChange={toggleTabsHandler}
          selectedTab={previewTabsToggle}
        />
      )}
    </Box>
  );
};

export default NavPanel;