"use client"; import { useTranslation } from "react-i18next"; import { pluginPanelId } from "@/lib/state/layout-manager/plugin-panels"; import type { MobileSessionPanel } from "@/lib/state/slices/ui/types"; import { resolvePluginIcon } from "@/lib/plugins/icons"; import { pluginRegistry, usePluginRegistry } from "@/lib/plugins/registry"; import { MobilePickerSheet } from "./mobile-picker-sheet"; type PluginPanelPickerProps = { open: boolean; onOpenChange: (open: boolean) => void; onSelect: (panel: MobileSessionPanel) => void; }; /** One grouped, scrollable phone picker for all mobile-enabled plugin panels. */ export function PluginPanelPicker({ open, onOpenChange, onSelect }: PluginPanelPickerProps) { const { t } = useTranslation(); usePluginRegistry(); const registrations = pluginRegistry .getTaskPanels() .filter((registration) => registration.mobileEnabled); if (!open) return null; return (
{registrations.map((registration) => { const panelId = pluginPanelId(registration.pluginId, registration.id); const Icon = resolvePluginIcon(registration.icon); return ( ); })}
); }