RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/NavBarV2/NavBarPagesToolbar/NavBarItemHomePage.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import { NavBarItem } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
import { useRouter, useLayout, useSetting, useCurrentRoutePath } from '@rocket.chat/ui-contexts';
import type { HTMLAttributes } from 'react';
import React from 'react';

type NavBarItemHomePageProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;

const NavBarItemHomePage = (props: NavBarItemHomePageProps) => {
    const router = useRouter();
    const { sidebar } = useLayout();
    const showHome = useSetting('Layout_Show_Home_Button');
    const handleHome = useEffectEvent(() => {
        sidebar.toggle();
        router.navigate('/home');
    });
    const currentRoute = useCurrentRoutePath();

    return showHome ? <NavBarItem {...props} icon='home' onClick={handleHome} pressed={currentRoute?.includes('/home')} /> : null;
};

export default NavBarItemHomePage;