1
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
import * as React from 'react';
|
||||
import type { CopyConfig } from '../Base';
|
||||
declare const useCopyClick: ({ copyConfig, children, }: {
|
||||
copyConfig: CopyConfig;
|
||||
children?: React.ReactNode;
|
||||
}) => {
|
||||
copied: boolean;
|
||||
copyLoading: boolean;
|
||||
onClick: (e?: React.MouseEvent<HTMLButtonElement>) => Promise<void>;
|
||||
};
|
||||
export default useCopyClick;
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
||||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
var _util = require("@rc-component/util");
|
||||
var _copy = _interopRequireDefault(require("../../_util/copy"));
|
||||
var _toList = _interopRequireDefault(require("../../_util/toList"));
|
||||
const useCopyClick = ({
|
||||
copyConfig,
|
||||
children
|
||||
}) => {
|
||||
const [copied, setCopied] = React.useState(false);
|
||||
const [copyLoading, setCopyLoading] = React.useState(false);
|
||||
const copyIdRef = React.useRef(null);
|
||||
const cleanCopyId = () => {
|
||||
if (copyIdRef.current) {
|
||||
clearTimeout(copyIdRef.current);
|
||||
}
|
||||
};
|
||||
const copyOptions = {};
|
||||
if (copyConfig.format) {
|
||||
copyOptions.format = copyConfig.format;
|
||||
}
|
||||
React.useEffect(() => cleanCopyId, []);
|
||||
// Keep copy action up to date
|
||||
const onClick = (0, _util.useEvent)(async e => {
|
||||
e?.preventDefault();
|
||||
e?.stopPropagation();
|
||||
setCopyLoading(true);
|
||||
try {
|
||||
const text = typeof copyConfig.text === 'function' ? await copyConfig.text() : copyConfig.text;
|
||||
await (0, _copy.default)(text || (0, _toList.default)(children, {
|
||||
skipEmpty: true
|
||||
}).join('') || '', copyOptions);
|
||||
setCopyLoading(false);
|
||||
setCopied(true);
|
||||
// Trigger tips update
|
||||
cleanCopyId();
|
||||
copyIdRef.current = setTimeout(() => {
|
||||
setCopied(false);
|
||||
}, 3000);
|
||||
copyConfig.onCopy?.(e);
|
||||
} catch (error) {
|
||||
setCopyLoading(false);
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
return {
|
||||
copied,
|
||||
copyLoading,
|
||||
onClick
|
||||
};
|
||||
};
|
||||
var _default = exports.default = useCopyClick;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export default function useMergedConfig<Target>(propConfig: any, templateConfig?: Target): readonly [boolean, Target];
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useMergedConfig;
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
function useMergedConfig(propConfig, templateConfig) {
|
||||
return React.useMemo(() => {
|
||||
const support = !!propConfig;
|
||||
return [support, {
|
||||
...templateConfig,
|
||||
...(support && typeof propConfig === 'object' ? propConfig : null)
|
||||
}];
|
||||
}, [propConfig]);
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
declare const usePrevious: <T>(value: T) => T | undefined;
|
||||
export default usePrevious;
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = require("react");
|
||||
const usePrevious = value => {
|
||||
const ref = (0, _react.useRef)(undefined);
|
||||
(0, _react.useEffect)(() => {
|
||||
ref.current = value;
|
||||
});
|
||||
return ref.current;
|
||||
};
|
||||
var _default = exports.default = usePrevious;
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
import type { TooltipProps } from '../../tooltip';
|
||||
declare const useTooltipProps: (tooltip: React.ReactNode | TooltipProps, editConfigText: React.ReactNode, children: React.ReactNode) => {
|
||||
[Symbol.iterator](): Iterator<import("react").ReactNode, any, any>;
|
||||
title: import("react").ReactNode;
|
||||
} | {
|
||||
then<TResult1 = string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined, TResult2 = never>(onfulfilled?: ((value: string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
|
||||
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined): Promise<(string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined) | TResult>;
|
||||
finally(onfinally?: (() => void) | null | undefined): Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined>;
|
||||
[Symbol.toStringTag]: string;
|
||||
title: import("react").ReactNode;
|
||||
} | {
|
||||
title: string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("../../_util/getRenderPropValue").RenderFunction | null | undefined;
|
||||
overlay?: React.ReactNode | import("../../_util/getRenderPropValue").RenderFunction;
|
||||
classNames?: import("../../tooltip").TooltipClassNamesType;
|
||||
styles?: import("../../tooltip").TooltipStylesType;
|
||||
style?: React.CSSProperties;
|
||||
className?: string;
|
||||
rootClassName?: string;
|
||||
color?: import("../../_util/type").LiteralUnion<import("../../_util/colors").PresetColorType>;
|
||||
placement?: import("../../tooltip").TooltipPlacement;
|
||||
builtinPlacements?: typeof import("@rc-component/tooltip/lib/placements").placements;
|
||||
openClassName?: string;
|
||||
arrow?: boolean | {
|
||||
pointAtCenter?: boolean;
|
||||
};
|
||||
autoAdjustOverflow?: boolean | import("../../tooltip").AdjustOverflow;
|
||||
getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
|
||||
children?: React.ReactNode;
|
||||
destroyOnHidden?: boolean;
|
||||
destroyTooltipOnHide?: boolean | {
|
||||
keepParent?: boolean;
|
||||
};
|
||||
overlayStyle?: React.CSSProperties;
|
||||
overlayInnerStyle?: React.CSSProperties;
|
||||
overlayClassName?: string;
|
||||
open?: import("@rc-component/tooltip/lib/Tooltip").TooltipProps["visible"];
|
||||
defaultOpen?: import("@rc-component/tooltip/lib/Tooltip").TooltipProps["defaultVisible"];
|
||||
onOpenChange?: import("@rc-component/tooltip/lib/Tooltip").TooltipProps["onVisibleChange"];
|
||||
afterOpenChange?: import("@rc-component/tooltip/lib/Tooltip").TooltipProps["afterVisibleChange"];
|
||||
align?: import("@rc-component/trigger").AlignType | undefined;
|
||||
motion?: import("@rc-component/motion").CSSMotionProps | undefined;
|
||||
prefixCls?: string | undefined;
|
||||
zIndex?: number | undefined;
|
||||
onPopupAlign?: ((element: HTMLElement, align: import("@rc-component/trigger").AlignType) => void) | undefined;
|
||||
fresh?: boolean | undefined;
|
||||
mouseLeaveDelay?: number | undefined;
|
||||
mouseEnterDelay?: number | undefined;
|
||||
forceRender?: boolean | undefined;
|
||||
popupVisible?: boolean | undefined;
|
||||
trigger?: (import("@rc-component/trigger").ActionType | import("@rc-component/trigger").ActionType[]) | undefined;
|
||||
getTooltipContainer?: ((node: HTMLElement) => HTMLElement) | undefined;
|
||||
showArrow?: (boolean | import("@rc-component/trigger").ArrowType) | undefined;
|
||||
arrowContent?: import("react").ReactNode;
|
||||
id?: string | undefined;
|
||||
unique?: boolean | undefined;
|
||||
};
|
||||
export default useTooltipProps;
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = require("react");
|
||||
var _is = require("../../_util/is");
|
||||
const useTooltipProps = (tooltip, editConfigText, children) => (0, _react.useMemo)(() => {
|
||||
if (tooltip === true) {
|
||||
return {
|
||||
title: editConfigText ?? children
|
||||
};
|
||||
}
|
||||
if (/*#__PURE__*/(0, _react.isValidElement)(tooltip)) {
|
||||
return {
|
||||
title: tooltip
|
||||
};
|
||||
}
|
||||
if ((0, _is.isPlainObject)(tooltip)) {
|
||||
return {
|
||||
title: editConfigText ?? children,
|
||||
...tooltip
|
||||
};
|
||||
}
|
||||
return {
|
||||
title: tooltip
|
||||
};
|
||||
}, [tooltip, editConfigText, children]);
|
||||
var _default = exports.default = useTooltipProps;
|
||||
Reference in New Issue
Block a user