import {Link} from 'react-router-dom' import clsx from 'clsx' import {KTIcon, toAbsoluteUrl} from '../../../helpers' import {useLayout} from '../../core' import {MutableRefObject, useEffect, useRef} from 'react' import {ToggleComponent} from '../../../assets/ts/components' type PropsType = { sidebarRef: MutableRefObject } const SidebarLogo = (props: PropsType) => { const {config} = useLayout() const toggleRef = useRef(null) const appSidebarDefaultMinimizeDesktopEnabled = config?.app?.sidebar?.default?.minimize?.desktop?.enabled const appSidebarDefaultCollapseDesktopEnabled = config?.app?.sidebar?.default?.collapse?.desktop?.enabled const toggleType = appSidebarDefaultCollapseDesktopEnabled ? 'collapse' : appSidebarDefaultMinimizeDesktopEnabled ? 'minimize' : '' const toggleState = appSidebarDefaultMinimizeDesktopEnabled ? 'active' : '' const appSidebarDefaultMinimizeDefault = config.app?.sidebar?.default?.minimize?.desktop?.default useEffect(() => { setTimeout(() => { const toggleObj = ToggleComponent.getInstance(toggleRef.current!) as ToggleComponent | null if (toggleObj === null) { return } // Add a class to prevent sidebar hover effect after toggle click toggleObj.on('kt.toggle.change', function () { // Set animation state props.sidebarRef.current!.classList.add('animating') // Wait till animation finishes setTimeout(function () { // Remove animation state props.sidebarRef.current!.classList.remove('animating') }, 300) }) }, 600) }, [toggleRef, props.sidebarRef]) return ( ) } export {SidebarLogo}