| 12345678910111213141516171819202122232425262728293031323334353637 |
- import React, { type JSX } from 'react';
- import { Disable } from 'react-disable';
- import type { UncontrolledTooltipProps } from 'reactstrap';
- import { UncontrolledTooltip } from 'reactstrap';
- type NotAvailableProps = {
- children: JSX.Element;
- isDisabled: boolean;
- title: string;
- classNamePrefix?: string;
- placement?: UncontrolledTooltipProps['placement'];
- };
- export const NotAvailable = ({
- children,
- isDisabled,
- title,
- classNamePrefix = 'grw-not-available',
- placement = 'top',
- }: NotAvailableProps): JSX.Element => {
- if (!isDisabled) {
- return children;
- }
- const id = `${classNamePrefix}-${Math.random().toString(32).substring(2)}`;
- return (
- <>
- <div id={id}>
- <Disable disabled={isDisabled}>{children}</Disable>
- </div>
- <UncontrolledTooltip placement={placement} target={id}>
- {title}
- </UncontrolledTooltip>
- </>
- );
- };
|