import { useState, useEffect, useContext } from "react"; import { DbProviderContext, AppSettingsProviderContext, } from "@renderer/context"; import { Button, ScrollArea, ScrollBar } from "@renderer/components/ui"; import { AudioCard, MediaAddButton } from "@renderer/components"; import { t } from "i18next"; import { Link } from "react-router-dom"; export const AudiosSegment = (props: { limit?: number }) => { const { limit = 10 } = props; const [audios, setAudios] = useState([]); const { addDblistener, removeDbListener } = useContext(DbProviderContext); const { EnjoyApp } = useContext(AppSettingsProviderContext); useEffect(() => { fetchResources(); addDblistener(onAudioUpdate); return () => { removeDbListener(onAudioUpdate); }; }, []); const fetchResources = async () => { const resources = await EnjoyApp.audios.findAll({ limit, }); if (!resources) return; setAudios(resources); }; const onAudioUpdate = (event: CustomEvent) => { const { record, action, model } = event.detail || {}; if (model !== "Audio") return; if (!record) return; if (action === "create") { setAudios([record as AudioType, ...audios]); } else if (action === "destroy") { setAudios(audios.filter((r) => r.id !== record.id)); } }; return (

{t("addedAudios")}

{audios.length === 0 ? (
) : (
{audios.map((audio) => { return ( ); })}
)}
); };