diff --git a/api.js b/api.js index 1576796..97b5402 100644 --- a/api.js +++ b/api.js @@ -258,6 +258,23 @@ export async function mutateInstrumentConfiguration(config_id, instrument_config return json; } +export async function deleteInstrumentConfiguration(config_id) { + const token = await getDjangoToken(); + if (!token) return; + + const API = `${process.env.NEXT_PUBLIC_BACKEND_HOST}/api`; + const url = `${API}/configs/${config_id}/`; + + const response = await fetch(url, { + method: 'DELETE', + headers: { Authorization: `Token ${token}` }, + }); + + if (response.status !== 204 && (response.status < 200 || response.status >= 300)) { + throw new Error(`${response.status}: ${response.statusText}`); + } +} + export async function createInstrumentConfiguration(instrument_config, audioFile = null) { const endpoint = `configs/`; if (audioFile) { diff --git a/components/recorder.js b/components/recorder.js index e086f90..6f62377 100644 --- a/components/recorder.js +++ b/components/recorder.js @@ -1,6 +1,6 @@ 'use client'; -import { useCallback, useEffect, useRef, useState } from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { BiRename } from 'react-icons/bi'; import { Card, @@ -26,7 +26,7 @@ import { AudioDropModal } from './audio/silenceDetect'; import { catchSilence, setupAudioContext } from '../lib/dawUtils'; import StatusIndicator from './statusIndicator'; import styles from '../styles/recorder.module.css'; -import { getInstrumentConfigurations, mutateInstrumentConfiguration, createInstrumentConfiguration } from "../api"; +import { getInstrumentConfigurations, mutateInstrumentConfiguration, createInstrumentConfiguration, deleteInstrumentConfiguration } from "../api"; import MicRecorder from 'mic-recorder-to-mp3'; import { IoSettingsSharp } from "react-icons/io5"; import Modal from 'react-bootstrap/Modal' @@ -49,6 +49,7 @@ import { FaRegTrashAlt, } from 'react-icons/fa'; import WaveSurfer from 'wavesurfer.js'; +import { MdOutlineKeyboard } from 'react-icons/md'; // Create a silent audio buffer as scratch audio to initialize wavesurfer const createSilentAudio = () => { @@ -778,19 +779,13 @@ function Config({ RecordingTypeChanged, value }) { Pick recording type: ); } //TODO: maybe I should put this somewhere else? -const emptyDraft = () => ({ - name: "", - description: "", - settings: {}, - file: null, -}); function AudioViewer({ src }) { const containerW = useRef(null); @@ -975,14 +970,14 @@ function AudioViewer({ src }) { function MidiTable({ value, onChange }) { return ( -