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 (
Embed Order Settings

{t("settings.preferences.embedOrder")}

navigate("/onboarding/extension")} /> ), }} />
setEnableEmbedOrder(!enableEmbedOrder)} className="bg-dropdown-background hover:bg-dropdown-hoverBackground select-none my-4 cursor-pointer space-x-3 flex items-center max-w-[25rem] py-3 px-4 rounded-lg" >

{t("settings.preferences.embedOrderEnableLabel")}

{enableEmbedOrder && (
setEmbedOrder(items.map((item) => item.id))} />
)}
); }