import React, { Dispatch, HTMLAttributes, SetStateAction, useMemo } from 'react';
import styled from 'styled-components';
type Ctx =
| {
setOrder: Dispatch>;
defaultOrder: number;
}
| { setOrder: null; defaultOrder: null };
export const columnMenuCtx = React.createContext(null!);
export interface ColumnMenuProps extends HTMLAttributes {
children?: React.ReactNode;
setOrder?: Dispatch> | null;
defaultOrder?: number | null;
}
const MenuStyled = styled.div`
display: flex;
//user-select: none;
`;
const ColumnMenu: React.FC = (props) => {
const { children, setOrder, defaultOrder, ...rest } = props;
const value = useMemo(() => {
if (setOrder && defaultOrder) {
return { setOrder, defaultOrder };
}
return { setOrder: null, defaultOrder: null };
}, [defaultOrder]);
return (
{children}
);
};
ColumnMenu.defaultProps = {
children: '',
setOrder: null,
defaultOrder: null
};
export default ColumnMenu;