Spaces:
Running
Running
File size: 2,743 Bytes
f2bee8a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
import PropTypes from 'prop-types';
import React from 'react';
import Box from '../box/box.jsx';
import {defineMessages, injectIntl, intlShape} from 'react-intl';
import RecordingStep from '../../containers/recording-step.jsx';
import PlaybackStep from '../../containers/playback-step.jsx';
import Modal from '../../containers/modal.jsx';
import styles from './record-modal.css';
const messages = defineMessages({
title: {
defaultMessage: 'Record Sound',
description: 'Recording modal title',
id: 'gui.recordModal.title'
}
});
const RecordModal = props => (
<Modal
className={styles.modalContent}
contentLabel={props.intl.formatMessage(messages.title)}
onRequestClose={props.onCancel}
>
<Box className={styles.body}>
{props.samples ? (
<PlaybackStep
encoding={props.encoding}
levels={props.levels}
playhead={props.playhead}
playing={props.playing}
sampleRate={props.sampleRate}
samples={props.samples}
trimEnd={props.trimEnd}
trimStart={props.trimStart}
onBack={props.onBack}
onPlay={props.onPlay}
onSetPlayhead={props.onSetPlayhead}
onSetTrimEnd={props.onSetTrimEnd}
onSetTrimStart={props.onSetTrimStart}
onStopPlaying={props.onStopPlaying}
onSubmit={props.onSubmit}
/>
) : (
<RecordingStep
recording={props.recording}
onRecord={props.onRecord}
onStopRecording={props.onStopRecording}
/>
)}
</Box>
</Modal>
);
RecordModal.propTypes = {
encoding: PropTypes.bool.isRequired,
intl: intlShape.isRequired,
levels: PropTypes.arrayOf(PropTypes.number),
onBack: PropTypes.func.isRequired,
onCancel: PropTypes.func.isRequired,
onPlay: PropTypes.func.isRequired,
onRecord: PropTypes.func.isRequired,
onSetPlayhead: PropTypes.func.isRequired,
onSetTrimEnd: PropTypes.func.isRequired,
onSetTrimStart: PropTypes.func.isRequired,
onStopPlaying: PropTypes.func.isRequired,
onStopRecording: PropTypes.func.isRequired,
onSubmit: PropTypes.func.isRequired,
playhead: PropTypes.number,
playing: PropTypes.bool,
recording: PropTypes.bool,
sampleRate: PropTypes.number,
samples: PropTypes.instanceOf(Float32Array),
trimEnd: PropTypes.number.isRequired,
trimStart: PropTypes.number.isRequired
};
export default injectIntl(RecordModal);
|