1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-28 14:16:41 +07:00

audio editor

This commit is contained in:
Fedor Katurov 2019-10-21 17:51:52 +07:00
parent a9d4be064e
commit 645ea8e29e
15 changed files with 273 additions and 9 deletions

View file

@ -0,0 +1,43 @@
import React, { FC, useCallback } from 'react';
import classNames from 'classnames';
import * as styles from './styles.scss';
import { ArcProgress } from '~/components/input/ArcProgress';
import { IFile } from '~/redux/types';
import { Icon } from '~/components/input/Icon';
interface IProps {
id?: IFile['id'];
title?: string;
progress?: number;
onDrop?: (file_id: IFile['id']) => void;
is_uploading?: boolean;
}
const AudioUpload: FC<IProps> = ({ title, progress, is_uploading, id, onDrop }) => {
const onDropFile = useCallback(() => {
if (!id || !onDrop) return;
onDrop(id);
}, [id, onDrop]);
return (
<div className={styles.wrap}>
{id && onDrop && (
<div className={styles.drop} onMouseDown={onDropFile}>
<Icon icon="close" />
</div>
)}
<div className={classNames(styles.thumb_wrap, { is_uploading })}>
{is_uploading && (
<div className={styles.progress}>
<ArcProgress size={40} progress={progress} />
</div>
)}
{title && <div className={styles.title}>{title}</div>}
</div>
</div>
);
};
export { AudioUpload };