Skip to content

Latest commit

 

History

History
65 lines (54 loc) · 1.56 KB

UploadAudio.mdx

File metadata and controls

65 lines (54 loc) · 1.56 KB
id title
UploadAudio
UploadAudio

import { PropsTable, Description, StorybookLink } from '@site/src/components';

UploadAudio

Использование

import React, { useState, useCallback } from 'react';
import { UploadAudio } from '@salutejs/plasma-web';

export function App() {
    const [progress, setProgress] = useState(undefined);

    const [state, setState] = useState({
        status: undefined,
        message: undefined,
    });

    const onValidation = useCallback((result) => {
        const { message, status: rStatus } = result;

        setState((prevState) => ({
            ...prevState,
            message,
            status: rStatus,
        }));
    }, []);

    const onChange = useCallback(() => {
        const interval = setInterval(
            () =>
                setProgress((prevValue) => {
                    const value = prevValue === undefined ? 0 : prevValue;

                    if (value + 5 > 100) {
                        clearInterval(interval);
                        return undefined;
                    }
                    return value + 5;
                }),
            1000,
        );
    }, []);

    return (
        <section>
            <UploadAudio
                progress={progress}
                onChange={onChange}
                onValidation={onValidation}
                status={state.status}
                message={state.message}
            />
        </section>
    );
}