-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathtypes.ts
89 lines (78 loc) · 2.06 KB
/
types.ts
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
79
80
81
82
83
84
85
86
87
88
89
import { MouseEventHandler, ReactNode } from "react";
export type VoiceRecorderProps = {
mainContainerStyle?: React.CSSProperties;
height?: number | string;
width?: number | string;
controllerContainerStyle?: React.CSSProperties;
controllerStyle?: React.CSSProperties;
waveContainerStyle?: React.CSSProperties;
graphColor?: string;
graphShaded?: boolean;
downloadable?: boolean;
uploadAudioFile?: boolean;
onAudioDownload?: (data: Blob) => void;
onRecordingStart?: () => void;
onRecordingEnd?: (data: Blob) => void;
onPlayStart?: () => void;
onPlayEnd?: (data: Blob) => void;
onRecordingPause?: () => void;
onPlayPause?: () => void;
}
export type CanvasObj = {
audioContext?: AudioContext;
analyserNode?: AnalyserNode;
mediaRecorder?: MediaRecorder;
dataArray?: Float32Array;
graphData?: Array<GraphDataType>;
};
export type AudioObj = {
status: string;
recordedAudio: Blob | null;
};
export type GraphDataType = {
x: number;
y: number;
height: number;
width: number;
};
export type AudioRecordingDataType = {
blob: Blob;
duration: number;
graphData: Array<GraphDataType>;
}
export interface AudioContextInterface {
audioStatus?: string;
audioFile?: File;
audioRecording?: AudioRecordingDataType;
audioFileProcessing?: boolean;
updateAudioStatus: (status: string) => void;
updateAudioRecording: (data: AudioRecordingDataType) => void;
convertAudioFile: (file: File) => void;
setAudioFileProcessing: (value: boolean) => void;
}
export interface UserPropsContextInterface extends VoiceRecorderProps {
rootElementId: string;
}
export type ControllerType = {
svg: ReactNode;
disabled?: boolean;
status: boolean;
onClick: MouseEventHandler<HTMLButtonElement>;
applyCircularStyles?: boolean;
display?: boolean;
rotate?: boolean;
}
export type GenerateCanvasColorType = {
color: string;
height?: number | null;
graphShaded?: boolean;
}
export type CanvasColorType = {
solid: string;
faded: string;
}
export type ObjType = {
blob?: Blob;
audioBuffer?: AudioBuffer;
dataArray?: Float32Array[];
}