mirror of https://github.com/msgbyte/tailchat
				
				
				
			feat(admin): added total file size statistics
							parent
							
								
									4ac6a0759a
								
							
						
					
					
						commit
						b26d34e8e2
					
				@ -1,19 +1,40 @@
 | 
			
		||||
import filesize from 'filesize';
 | 
			
		||||
import React from 'react';
 | 
			
		||||
import { createTextField, ListTable } from 'tushan';
 | 
			
		||||
import {
 | 
			
		||||
  createTextField,
 | 
			
		||||
  ListTable,
 | 
			
		||||
  useAsync,
 | 
			
		||||
  useTranslation,
 | 
			
		||||
  Typography,
 | 
			
		||||
} from 'tushan';
 | 
			
		||||
import { fileFields } from '../fields';
 | 
			
		||||
import { request } from '../request';
 | 
			
		||||
 | 
			
		||||
export const FileList: React.FC = React.memo(() => {
 | 
			
		||||
  const { t } = useTranslation();
 | 
			
		||||
  const { value: totalSize = 0 } = useAsync(async () => {
 | 
			
		||||
    const { data } = await request.get('/file/filesizeSum');
 | 
			
		||||
 | 
			
		||||
    return data.totalSize ?? 0;
 | 
			
		||||
  }, []);
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <ListTable
 | 
			
		||||
      filter={[
 | 
			
		||||
        createTextField('q', {
 | 
			
		||||
          label: 'Search',
 | 
			
		||||
        }),
 | 
			
		||||
      ]}
 | 
			
		||||
      fields={fileFields}
 | 
			
		||||
      action={{ detail: true, delete: true }}
 | 
			
		||||
      batchAction={{ delete: true }}
 | 
			
		||||
    />
 | 
			
		||||
    <>
 | 
			
		||||
      <Typography.Paragraph style={{ textAlign: 'right' }}>
 | 
			
		||||
        {t('custom.file.fileTotalSize')}: {filesize(totalSize)}
 | 
			
		||||
      </Typography.Paragraph>
 | 
			
		||||
      <ListTable
 | 
			
		||||
        filter={[
 | 
			
		||||
          createTextField('q', {
 | 
			
		||||
            label: 'Search',
 | 
			
		||||
          }),
 | 
			
		||||
        ]}
 | 
			
		||||
        fields={fileFields}
 | 
			
		||||
        action={{ detail: true, delete: true }}
 | 
			
		||||
        batchAction={{ delete: true }}
 | 
			
		||||
        showSizeChanger={true}
 | 
			
		||||
      />
 | 
			
		||||
    </>
 | 
			
		||||
  );
 | 
			
		||||
});
 | 
			
		||||
FileList.displayName = 'FileList';
 | 
			
		||||
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue