GhostManSec
Server: Apache
System: Linux webm003.cluster115.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: eliteafr (153088)
PHP: 5.4.45
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/eliteafr/datapro/wp-content/plugins/themeisle-companion/dashboard/src/components/Header.jsx
/* global obfxDash */
import {
  Box,
  Container,
  Flex,
  Image,
  Text,
  Tabs,
  Badge,
  VStack,
} from "@chakra-ui/react";
import { tabs } from "../utils/common";
import { useEffect, useState } from "@wordpress/element";

const Title = () => {
  return null;
};

const Navigation = ({ activeTab, setActiveTab }) => {
  const onTabChange = ({ value }) => {
    window.location.hash = value;
    setActiveTab(value);
  };

  return (
    <Tabs.Root
      size="lg"
      onValueChange={onTabChange}
      value={activeTab}
      colorPalette="purple"
    >
      <Tabs.List borderBottom="none">
        {Object.entries(tabs).map(([tab, label]) => {
          const isActive = activeTab === tab;
          return (
            <Tabs.Trigger
              key={tab}
              value={tab}
              fontSize="sm"
              fontWeight="semibold"
              color={isActive ? "purple.600" : "fg.muted"}
              _hover={{ color: "purple.700" }}
            >
              {label}
            </Tabs.Trigger>
          );
        })}
      </Tabs.List>
      <Tabs.Content />
    </Tabs.Root>
  );
};

const Header = ({ activeTab, setActiveTab }) => {
  const [neveNotice, setNeveNotice] = useState(null);

  const repositionNeveNotice = () => {
    const neveNotice = document.querySelector(".neve-notice-upsell");
    if (!neveNotice) {
      return;
    }

    const html = neveNotice.outerHTML;
    setNeveNotice(html);
    neveNotice.remove();
  };

  useEffect(() => {
    repositionNeveNotice();
  }, []);

  return (
    <Flex direction="column" gap="8">
      <Box as="header" bg="bg">
        <Box borderBottom="1px solid" borderColor="border">
          <Container maxW="container">
            <Flex alignItems="center" justifyContent="space-between">
              <Flex alignItems="center" gap="5" py="3">
                <Image
                  src={obfxDash.path + "assets/orbit-fox.svg"}
                  alt="logo"
                  w="14"
                />
                <Text as="h1" fontSize="xl" fontWeight="semibold">
                  Orbit Fox
                </Text>
              </Flex>

              <Badge variant="surface" size="sm" color="fg.muted">
                v{obfxDash.version}
              </Badge>
            </Flex>
          </Container>
        </Box>

        <Box borderBottom="1px solid" borderColor="border">
          <Container>
            <Navigation activeTab={activeTab} setActiveTab={setActiveTab} />
          </Container>
        </Box>
      </Box>

      {window.tsdk_reposition_notice && (
        <Container id="tsdk_banner" className="obfx-banner" />
      )}

      {!window.tsdk_reposition_notice && neveNotice && (
        <Container
          className="obfx-banner"
          id="neve-notice-upsell"
          dangerouslySetInnerHTML={{ __html: neveNotice }}
        />
      )}
    </Flex>
  );
};

export default Header;