feat: 删除无用依赖 (merge request !386)

Squash merge branch 'feat/package/dependent' into 'develop'
This commit is contained in:
HQ-Lin 2021-11-12 13:24:32 +08:00 committed by uyarn
parent 6006681f21
commit 4e6be2047e
7 changed files with 135 additions and 130 deletions

View File

@ -27,8 +27,13 @@ module.exports = {
},
},
rules: {
"no-use-before-define": "off",
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/indent': ['off', 2],
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/camelcase': 'off',
'@typescript-eslint/no-empty-interface': 'error', // codecc
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-use-before-define': ['error', { functions: false }],

@ -1 +1 @@
Subproject commit 16214a3347e9cf804c039c80b9950650b030376f
Subproject commit 4c37cc51208719103cfde15580733c1d8e784824

View File

@ -28,6 +28,131 @@ import {
// types
import { InputContentProps, InnerContentProps, ContentProps, SuffixIconProps, TreeNode } from '../interface';
/**
* SuffixIcon component
*/
const SuffixIcon = (props: SuffixIconProps) => {
const {
cascaderContext,
listeners: { onChange },
closeShow,
fakeArrowIconClass,
closeIconClass,
} = props;
const { visible, disabled, size } = cascaderContext;
const closeIconClick = (e: React.MouseEvent) => {
e.stopPropagation();
closeIconClickEffect(cascaderContext, onChange);
};
if (closeShow) {
return <CloseCircleFilledIcon className={closeIconClass} onClick={closeIconClick} size={size} />;
}
return <FakeArrow overlayClassName={fakeArrowIconClass} isActive={visible} disabled={disabled} />;
};
const InnerContent: React.FC<InnerContentProps> = (props: InnerContentProps) => {
const { cascaderContext, listeners, placeholder, collapsedItems } = props;
const { classPrefix: prefix } = useConfig();
const { multiple, size, disabled, filterable, setFilterActive, visible, inputVal, setInputVal, minCollapsedNum } =
cascaderContext;
const { onFocus, onBlur, onRemove } = listeners;
// single select content
const singleContent = useMemo(() => getSingleContent(cascaderContext), [cascaderContext]);
// multiple select content
const multipleContent = useMemo(() => getMultipleContent(cascaderContext), [cascaderContext]);
const renderSelfTag = (node: TreeNode, index: number) => (
<Tag
closable
key={index}
disabled={disabled}
onClose={(ctx) => {
ctx.e.stopPropagation();
handleRemoveTagEffect(cascaderContext, node, onRemove);
}}
size={size}
>
{node.label}
</Tag>
);
const generalContent = !multiple ? (
<span className={`${prefix}-cascader-content`}>{singleContent}</span>
) : (
<>
{minCollapsedNum > 0 && multipleContent.length > minCollapsedNum ? (
<>
{multipleContent.slice(0, minCollapsedNum).map((node: TreeNode, index: number) => renderSelfTag(node, index))}
{!collapsedItems ? (
<Tag size={size} disabled={disabled}>
+{multipleContent.length - minCollapsedNum}
</Tag>
) : (
collapsedItems
)}
</>
) : (
multipleContent.map((node: TreeNode, index: number) => renderSelfTag(node, index))
)}
</>
);
const inputPlaceholder = multiple ? multipleContent.map((node) => node.label).join('、') : singleContent;
const filterContent = (
<Input
placeholder={inputPlaceholder || placeholder}
value={inputVal}
onChange={(value: string) => {
setInputVal(value);
setFilterActive(!!value);
}}
autofocus
onFocus={(v, context) => isFunction(onFocus) && onFocus({ inputVal, e: context?.e })}
onBlur={(v, context) => isFunction(onBlur) && onBlur({ inputVal, e: context?.e })}
/>
);
const showFilter = useMemo(() => filterable && visible, [filterable, visible]);
return showFilter ? filterContent : generalContent;
};
const Content: React.FC<ContentProps> = (props: ContentProps) => {
const { placeholder, cascaderContext, listeners, isHover, collapsedItems } = props;
const { classPrefix: prefix } = useConfig();
// single select content
const singleContent = useMemo(() => getSingleContent(cascaderContext), [cascaderContext]);
// multiple select content
const multipleContent = useMemo(() => getMultipleContent(cascaderContext), [cascaderContext]);
const showPlaceholder = useMemo(
() => getPlaceholderShow(cascaderContext, singleContent, multipleContent),
[cascaderContext, singleContent, multipleContent],
);
const content = !showPlaceholder ? (
<InnerContent
isHover={isHover}
cascaderContext={cascaderContext}
listeners={listeners}
collapsedItems={collapsedItems}
placeholder={placeholder}
/>
) : (
<span className={`${prefix}-cascader-placeholder`}>{placeholder || '请选择'}</span>
);
return content;
};
const InputContent: React.FC<InputContentProps> = (props: InputContentProps) => {
const { cascaderContext, className, style, placeholder, listeners, collapsedItems } = props;
@ -103,129 +228,4 @@ const InputContent: React.FC<InputContentProps> = (props: InputContentProps) =>
);
};
/**
* SuffixIcon component
*/
const SuffixIcon = (props: SuffixIconProps) => {
const {
cascaderContext,
listeners: { onChange },
closeShow,
fakeArrowIconClass,
closeIconClass,
} = props;
const { visible, disabled, size } = cascaderContext;
const closeIconClick = (e: React.MouseEvent) => {
e.stopPropagation();
closeIconClickEffect(cascaderContext, onChange);
};
if (closeShow) {
return <CloseCircleFilledIcon className={closeIconClass} onClick={closeIconClick} size={size} />;
}
return <FakeArrow overlayClassName={fakeArrowIconClass} isActive={visible} disabled={disabled} />;
};
const Content: React.FC<ContentProps> = (props: ContentProps) => {
const { placeholder, cascaderContext, listeners, isHover, collapsedItems } = props;
const { classPrefix: prefix } = useConfig();
// single select content
const singleContent = useMemo(() => getSingleContent(cascaderContext), [cascaderContext]);
// multiple select content
const multipleContent = useMemo(() => getMultipleContent(cascaderContext), [cascaderContext]);
const showPlaceholder = useMemo(
() => getPlaceholderShow(cascaderContext, singleContent, multipleContent),
[cascaderContext, singleContent, multipleContent],
);
const content = !showPlaceholder ? (
<InnerContent
isHover={isHover}
cascaderContext={cascaderContext}
listeners={listeners}
collapsedItems={collapsedItems}
placeholder={placeholder}
/>
) : (
<span className={`${prefix}-cascader-placeholder`}>{placeholder || '请选择'}</span>
);
return content;
};
const InnerContent: React.FC<InnerContentProps> = (props: InnerContentProps) => {
const { cascaderContext, listeners, placeholder, collapsedItems } = props;
const { classPrefix: prefix } = useConfig();
const { multiple, size, disabled, filterable, setFilterActive, visible, inputVal, setInputVal, minCollapsedNum } =
cascaderContext;
const { onFocus, onBlur, onRemove } = listeners;
// single select content
const singleContent = useMemo(() => getSingleContent(cascaderContext), [cascaderContext]);
// multiple select content
const multipleContent = useMemo(() => getMultipleContent(cascaderContext), [cascaderContext]);
const renderSelfTag = (node: TreeNode, index: number) => (
<Tag
closable
key={index}
disabled={disabled}
onClose={(ctx) => {
ctx.e.stopPropagation();
handleRemoveTagEffect(cascaderContext, node, onRemove);
}}
size={size}
>
{node.label}
</Tag>
);
const generalContent = !multiple ? (
<span className={`${prefix}-cascader-content`}>{singleContent}</span>
) : (
<>
{minCollapsedNum > 0 && multipleContent.length > minCollapsedNum ? (
<>
{multipleContent.slice(0, minCollapsedNum).map((node: TreeNode, index: number) => renderSelfTag(node, index))}
{!collapsedItems ? (
<Tag size={size} disabled={disabled}>
+{multipleContent.length - minCollapsedNum}
</Tag>
) : (
collapsedItems
)}
</>
) : (
multipleContent.map((node: TreeNode, index: number) => renderSelfTag(node, index))
)}
</>
);
const inputPlaceholder = multiple ? multipleContent.map((node) => node.label).join('、') : singleContent;
const filterContent = (
<Input
placeholder={inputPlaceholder || placeholder}
value={inputVal}
onChange={(value: string) => {
setInputVal(value);
setFilterActive(!!value);
}}
autofocus
onFocus={(v, context) => isFunction(onFocus) && onFocus({ inputVal, e: context?.e })}
onBlur={(v, context) => isFunction(onBlur) && onBlur({ inputVal, e: context?.e })}
/>
);
const showFilter = useMemo(() => filterable && visible, [filterable, visible]);
return showFilter ? filterContent : generalContent;
};
export default InputContent;

View File

@ -17,7 +17,7 @@ const DatePickerTable = (props: DatePickerTableProps) => {
const { type, data, onCellClick, onCellMouseEnter, firstDayOfWeek } = props;
const [local, t] = useLocaleReceiver('datePicker');
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const shorthand = t(local.weekdays.shorthand);

View File

@ -29,7 +29,7 @@ const DropdownMenu = (props: DropdownProps) => {
props.onClick(data, context);
};
const renderDropdownColumn = (children: Array<DropdownOption>, showSubmenu: boolean, pathPrefix: string) => {
// eslint-disable-next-line @typescript-eslint/camelcase
// eslint-disable-next-line
const menuClass = [`${dropdownMenuClass}__column`, 'narrow-scrollbar', { submenu__visible: showSubmenu }];
return (
<div

View File

@ -146,7 +146,7 @@ function renderElement(theme, config: MessageOptions): Promise<MessageInstance>
});
}
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
// :todo 需要 api 定义完全的 message 格式,否则用户使用时没法得到 message.info 的提示.
const Message: MessageProps = MessageComponent;

View File

@ -192,7 +192,7 @@ const renderNotification = (theme: NotificationThemeList, options: NotificationI
return fetchListInstance(placement, attach, zIndex).then((listInstance) => listInstance.push(theme, options));
};
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const Notification: Notification = NotificationComponent;