|
@@ -1,13 +1,34 @@
|
|
|
import { useLayoutContext } from '@/shared/context/layout-context'
|
|
import { useLayoutContext } from '@/shared/context/layout-context'
|
|
|
import useFixedSizeColumn from '@/features/ide-react/hooks/use-fixed-size-column'
|
|
import useFixedSizeColumn from '@/features/ide-react/hooks/use-fixed-size-column'
|
|
|
import useCollapsiblePanel from '@/features/ide-react/hooks/use-collapsible-panel'
|
|
import useCollapsiblePanel from '@/features/ide-react/hooks/use-collapsible-panel'
|
|
|
-import { useState } from 'react'
|
|
|
|
|
|
|
+import { useCallback, useState } from 'react'
|
|
|
|
|
|
|
|
export const useChatPane = () => {
|
|
export const useChatPane = () => {
|
|
|
- const { chatIsOpen: isOpen } = useLayoutContext()
|
|
|
|
|
|
|
+ const { chatIsOpen: isOpen, setChatIsOpen: setIsOpen } = useLayoutContext()
|
|
|
const [resizing, setResizing] = useState(false)
|
|
const [resizing, setResizing] = useState(false)
|
|
|
const { fixedPanelRef, handleLayout } = useFixedSizeColumn(isOpen)
|
|
const { fixedPanelRef, handleLayout } = useFixedSizeColumn(isOpen)
|
|
|
useCollapsiblePanel(isOpen, fixedPanelRef)
|
|
useCollapsiblePanel(isOpen, fixedPanelRef)
|
|
|
|
|
|
|
|
- return { isOpen, fixedPanelRef, handleLayout, resizing, setResizing }
|
|
|
|
|
|
|
+ const togglePane = useCallback(() => {
|
|
|
|
|
+ setIsOpen(value => !value)
|
|
|
|
|
+ }, [setIsOpen])
|
|
|
|
|
+
|
|
|
|
|
+ const handlePaneExpand = useCallback(() => {
|
|
|
|
|
+ setIsOpen(true)
|
|
|
|
|
+ }, [setIsOpen])
|
|
|
|
|
+
|
|
|
|
|
+ const handlePaneCollapse = useCallback(() => {
|
|
|
|
|
+ setIsOpen(false)
|
|
|
|
|
+ }, [setIsOpen])
|
|
|
|
|
+
|
|
|
|
|
+ return {
|
|
|
|
|
+ isOpen,
|
|
|
|
|
+ fixedPanelRef,
|
|
|
|
|
+ handleLayout,
|
|
|
|
|
+ resizing,
|
|
|
|
|
+ setResizing,
|
|
|
|
|
+ togglePane,
|
|
|
|
|
+ handlePaneExpand,
|
|
|
|
|
+ handlePaneCollapse,
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|