Improve table state logic

dev
Platon Yasev 3 years ago
parent 55d99043f0
commit 131ba940f2

@ -164,7 +164,7 @@ export const MapComponent = () => {
<LayersControl />
</Map>
</div>
<div className="w-full border-solid border-border border-0 border-t-[1px]">
<div className="w-full border-solid border-border border-0 border-t-[1px] z-20">
<TableWrapper fullWidth={isSidebarCollapsed} />
</div>
</div>

@ -20,8 +20,6 @@ export const Sidebar = forwardRef(({ isCollapsed }, ref) => {
const { reset: resetSelection } = usePointSelection();
const { isVisible, toggleVisibility } = useLayersVisibility();
console.log(mode);
return (
<div
className={twMerge(

@ -2,12 +2,27 @@ import { ExportButton } from "./ExportButton";
import { Button, Tooltip } from "antd";
import { useTable } from "../../stores/useTable";
import { FullscreenExitOutlined, FullscreenOutlined } from "@ant-design/icons";
import { useEffect, useState } from "react";
const ToggleFullScreenButton = () => {
const {
tableState: { fullScreen },
toggleFullScreen,
} = useTable();
const [hover, setHover] = useState(false);
useEffect(() => {
const timer = setTimeout(() => setHover(false), 1500);
return () => clearTimeout(timer);
}, [hover]);
const handleMouseEnter = () => {
setHover(true);
};
const handleMouseLeave = () => {
setHover(false);
};
const handleClick = (e) => {
e.stopPropagation();
@ -15,8 +30,16 @@ const ToggleFullScreenButton = () => {
};
return (
<Tooltip title="Раскрыть на полный экран" placement={"topRight"}>
<Button onClick={handleClick}>
<Tooltip
title={fullScreen ? "Свернуть" : "Раскрыть на полный экран"}
placement={"topRight"}
open={hover}
>
<Button
onClick={handleClick}
onMouseEnter={handleMouseEnter}
onMouseLeave={handleMouseLeave}
>
{fullScreen ? <FullscreenExitOutlined /> : <FullscreenOutlined />}
</Button>
</Tooltip>

@ -44,11 +44,12 @@ export const Table = React.memo(
<Collapse
bordered={false}
onChange={toggleOpened}
defaultActiveKey={tableState.isOpened ? "opened" : null}
activeKey={tableState.isOpened ? "opened" : null}
>
<Collapse.Panel
key={"opened"}
header={header ? header : <HeaderWrapper />}
collapsible={tableState.fullScreen ? "disabled" : undefined}
>
<AntdTable
size="small"

Loading…
Cancel
Save