feat: wire ParameterizeAndSavePanel into ScriptBuilderPage

Replace SaveToLibraryDialog with the new panel that includes parameter
detection, review, and template rewriting before saving to library.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-03-29 05:53:49 +00:00
parent e6edf34485
commit da71cd6ca4

View File

@@ -6,7 +6,7 @@ import { scriptBuilderApi } from '@/api'
import { ScriptBuilderChat } from '@/components/script-builder/ScriptBuilderChat'
import { ScriptBuilderInput } from '@/components/script-builder/ScriptBuilderInput'
import { ScriptPreviewModal } from '@/components/script-builder/ScriptPreviewModal'
import { SaveToLibraryDialog } from '@/components/script-builder/SaveToLibraryDialog'
import { ParameterizeAndSavePanel } from '@/components/scripts/ParameterizeAndSavePanel'
import type { ScriptBuilderSessionDetail, ScriptBuilderMessage } from '@/types'
const LANGUAGES = [
@@ -112,7 +112,23 @@ export default function ScriptBuilderPage() {
setShowSaveDialog(true)
}
const handleSaved = () => {
const handleSaved = async (payload: {
name: string
description: string | undefined
category_id: string | undefined
share_with_team: boolean
script_body: string
parameters_schema: { parameters: import('@/types').ScriptParameter[] }
}) => {
if (!session) return
await scriptBuilderApi.saveToLibrary(session.id, {
name: payload.name,
description: payload.description,
category_id: payload.category_id,
share_with_team: payload.share_with_team,
script_body: payload.script_body,
parameters_schema: payload.parameters_schema,
})
setShowSaveDialog(false)
}
@@ -190,13 +206,14 @@ export default function ScriptBuilderPage() {
/>
)}
{/* Save dialog */}
{showSaveDialog && session && (
<SaveToLibraryDialog
sessionId={session.id}
{/* Save panel */}
{showSaveDialog && session && session.latest_script && (
<ParameterizeAndSavePanel
scriptBody={session.latest_script}
language={session.language}
defaultName={defaultSaveName}
onSave={handleSaved}
onClose={() => setShowSaveDialog(false)}
onSaved={handleSaved}
/>
)}
</div>