import { useMemo } from "react"; import { Trans, useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import { getAllProviders, getProviders } from "@/backend/providers/providers"; import { Button } from "@/components/buttons/Button"; import { Toggle } from "@/components/buttons/Toggle"; import { SortableList } from "@/components/form/SortableList"; import { Heading2 } from "@/components/utils/Text"; interface EmbedOrderPartProps { embedOrder: string[]; setEmbedOrder: (order: string[]) => void; enableEmbedOrder: boolean; setEnableEmbedOrder: (enabled: boolean) => void; } export function EmbedOrderPart({ embedOrder, setEmbedOrder, enableEmbedOrder, setEnableEmbedOrder, }: EmbedOrderPartProps) { const { t } = useTranslation(); const navigate = useNavigate(); const allEmbeds = getAllProviders().listEmbeds(); const embedItems = useMemo(() => { const currentDeviceEmbeds = getProviders().listEmbeds(); // If embed order is empty, show all available embeds if (embedOrder.length === 0) { return allEmbeds.map((e) => ({ id: e.id, name: e.name || e.id, disabled: !currentDeviceEmbeds.find((embed) => embed.id === e.id), })); } // Otherwise, show embeds in the specified order return embedOrder.map((id) => ({ id, name: allEmbeds.find((e) => e.id === id)?.name || id, disabled: !currentDeviceEmbeds.find((e) => e.id === id), })); }, [embedOrder, allEmbeds]); return (
{t("settings.preferences.embedOrder")}
{t("settings.preferences.embedOrderEnableLabel")}