40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import { inject, VNodeChild } from 'vue';
 | |
| import Empty from '../empty';
 | |
| import { defaultConfigProvider } from '.';
 | |
| 
 | |
| export interface RenderEmptyProps {
 | |
|   componentName?: string;
 | |
| }
 | |
| 
 | |
| const RenderEmpty = (props: RenderEmptyProps) => {
 | |
|   const configProvider = inject('configProvider', defaultConfigProvider);
 | |
|   const renderHtml = (componentName?: string) => {
 | |
|     const { getPrefixCls } = configProvider;
 | |
|     const prefix = getPrefixCls('empty');
 | |
|     switch (componentName) {
 | |
|       case 'Table':
 | |
|       case 'List':
 | |
|         return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />;
 | |
| 
 | |
|       case 'Select':
 | |
|       case 'TreeSelect':
 | |
|       case 'Cascader':
 | |
|       case 'Transfer':
 | |
|       case 'Mentions':
 | |
|         return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} class={`${prefix}-small`} />;
 | |
| 
 | |
|       default:
 | |
|         return <Empty />;
 | |
|     }
 | |
|   };
 | |
|   return renderHtml(props.componentName);
 | |
| };
 | |
| 
 | |
| function renderEmpty(componentName?: string): VNodeChild | JSX.Element{
 | |
|   return <RenderEmpty componentName={componentName} />;
 | |
| }
 | |
| 
 | |
| export type RenderEmptyHandler = typeof renderEmpty;
 | |
| 
 | |
| export default renderEmpty;
 |