mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-11 05:20:57 +00:00
refactor(web): drop legacy ModelsDialog, use unified SettingsDialog everywhere
The model-selector in dynamic forms (pipeline / knowledge base settings) still opened the old standalone ModelsDialog. Point it at the unified SettingsDialog (section pinned to models) and delete the now-unused ModelsDialog wrapper so only the new dialog remains.
This commit is contained in:
@@ -61,7 +61,9 @@ import {
|
|||||||
DropdownMenuItem,
|
DropdownMenuItem,
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
} from '@/components/ui/dropdown-menu';
|
} from '@/components/ui/dropdown-menu';
|
||||||
import ModelsDialog from '@/app/home/components/models-dialog/ModelsDialog';
|
import SettingsDialog, {
|
||||||
|
SettingsSection,
|
||||||
|
} from '@/app/home/components/settings-dialog/SettingsDialog';
|
||||||
|
|
||||||
export default function DynamicFormItemComponent({
|
export default function DynamicFormItemComponent({
|
||||||
config,
|
config,
|
||||||
@@ -87,6 +89,8 @@ export default function DynamicFormItemComponent({
|
|||||||
);
|
);
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [modelsDialogOpen, setModelsDialogOpen] = useState(false);
|
const [modelsDialogOpen, setModelsDialogOpen] = useState(false);
|
||||||
|
const [settingsSection, setSettingsSection] =
|
||||||
|
useState<SettingsSection>('models');
|
||||||
|
|
||||||
const fetchLlmModels = () => {
|
const fetchLlmModels = () => {
|
||||||
httpClient
|
httpClient
|
||||||
@@ -561,9 +565,11 @@ export default function DynamicFormItemComponent({
|
|||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent side="right">{t('models.title')}</TooltipContent>
|
<TooltipContent side="right">{t('models.title')}</TooltipContent>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<ModelsDialog
|
<SettingsDialog
|
||||||
open={modelsDialogOpen}
|
open={modelsDialogOpen}
|
||||||
onOpenChange={handleModelsDialogChange}
|
onOpenChange={handleModelsDialogChange}
|
||||||
|
section={settingsSection}
|
||||||
|
onSectionChange={setSettingsSection}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@@ -913,9 +919,11 @@ export default function DynamicFormItemComponent({
|
|||||||
{t('models.title')}
|
{t('models.title')}
|
||||||
</TooltipContent>
|
</TooltipContent>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<ModelsDialog
|
<SettingsDialog
|
||||||
open={modelsDialogOpen}
|
open={modelsDialogOpen}
|
||||||
onOpenChange={handleModelsDialogChange}
|
onOpenChange={handleModelsDialogChange}
|
||||||
|
section={settingsSection}
|
||||||
|
onSectionChange={setSettingsSection}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
import { useState } from 'react';
|
|
||||||
import {
|
|
||||||
Dialog,
|
|
||||||
DialogContent,
|
|
||||||
DialogHeader,
|
|
||||||
DialogTitle,
|
|
||||||
} from '@/components/ui/dialog';
|
|
||||||
import { useTranslation } from 'react-i18next';
|
|
||||||
import ModelsPanel from './ModelsPanel';
|
|
||||||
|
|
||||||
interface ModelsDialogProps {
|
|
||||||
open: boolean;
|
|
||||||
onOpenChange: (open: boolean) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Standalone Models dialog. The unified Settings dialog renders <ModelsPanel />
|
|
||||||
// directly; this wrapper is kept for places that open Models on its own
|
|
||||||
// (e.g. the model picker inside dynamic forms).
|
|
||||||
export default function ModelsDialog({
|
|
||||||
open,
|
|
||||||
onOpenChange,
|
|
||||||
}: ModelsDialogProps) {
|
|
||||||
const { t } = useTranslation();
|
|
||||||
const [blocking, setBlocking] = useState(false);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Dialog
|
|
||||||
open={open}
|
|
||||||
onOpenChange={(newOpen) => {
|
|
||||||
if (!newOpen && blocking) return;
|
|
||||||
onOpenChange(newOpen);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<DialogContent className="overflow-hidden p-0 h-[80vh] flex flex-col !max-w-[37rem]">
|
|
||||||
<DialogHeader className="px-6 pt-6 pb-0 flex-shrink-0">
|
|
||||||
<DialogTitle>{t('models.title')}</DialogTitle>
|
|
||||||
</DialogHeader>
|
|
||||||
<ModelsPanel active={open} onBlockingChange={setBlocking} />
|
|
||||||
</DialogContent>
|
|
||||||
</Dialog>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user