Renderizando as musicas na tela

Após importarmos nossas musicas, agora precisamos renderizar elas na tela do nosso aplicativo, e é o que faremos utilizando o IPC do Electron novamente.
Vamos agora mostrar todas as musicas importadas na tela principal
export default function MusicList() {
    const [musicList, setMusicList] = useState([])

    const fetchMusicList = async () => {
        try {
            await window.electronAPI.SendToElectron('music-get')
            await window.electronAPI.ReciveFromElectron("music:list", (event, arg) => {
                setMusicList(arg);
            });
            
        } catch (error) {
            console.error('Erro ao obter a lista de músicas:', error);
        }
    };

    useEffect(() => {
        fetchMusicList()
    }, []);
    return (
        Music List
            {musicList.length === 0 ? Empty : musicList.map((music, index) => {
                return 
            })}
        
    )
}
Aqui nos adicionamos 2 conexoes com nosso backend do electron, onde a gente envia um evento pedindo a lista de musicas e outro evento onde a gente recebe essa lista, dentro o useeEffect, esse evento eh solicitado sempre que o componente renderiza, devemos adicionar esses eventos no arquivo main tambem.
ipcMain.on('music-get', async () => {
  sendUpdateList()
});


async function sendUpdateList() {
  const files = await fs.promises.readdir(musicDir);
  mainWindow.webContents.send("music:list", files);
}
Vale notar que criamos uma funcao onde acontece o envio da lista de musicas atravez do evento music:list
e vamos reutilizar essa funcao para, quando nosso aplicativo iniciar, ele envie uma lista atualizada com as musicas que cosntam no nosso aplicativo também.
app.whenReady().then(async () => {
  createWindow();
  await sendUpdateList();
})
e dentro de cada MusicInList, vamos adicionar o componente
export default function MusicInList({ music }) {
  function handleDeleteMusic (music){
    window.electronAPI.SendToElectron('music-delete', music)
  }
  function handleAdicionarMusica (music){
    window.electronAPI.SendToElectron('music-to-play', music);
  }
  return (
    Nome{music}
             handleAdicionarMusica(music)}/>
             handleDeleteMusic(music)}/>
        
      
    
  );
}
e vamos adicionar os eventos dentro do main do electron novamente
ipcMain.on('music-delete', async (event, file) => {
  const filePath = path.join(musicDir, file);
  fs.unlink(filePath, async (err) => {
    if (err) {
      mainWindow.webContents.send("toast:recive", err)
    } else {
      sendUpdateList();
      mainWindow.webContents.send("toast:recive", "File deleted successfully");
    }
  });
});

ipcMain.on('music-to-play', (event, fileName) => {
  mainWindow.webContents.send("music-playable", fileName)
});