✨ feat(channel-ui): support multi-JSON batch creation for Vertex AI & multi-to-single mode
WHY
• Backend (0089157) now accepts structured request `{ mode, channel }`, including new `multi_to_single`.
• Need front-end to upload multiple service-account JSON files and generate correct `channel.key`.
• Improve UX: avoid red “uploadFail” state and offer drag-and-drop UI.
WHAT
1. EditChannel.js
• Added Upload drag-area with IconBolt; `uploadTrigger="custom"`.
• `handleJsonFileUpload` reads file, pushes content to `jsonFiles`, returns `{ shouldUpload:false, status:'success' }`.
• New states: `batch`, `mergeToSingle`, `jsonFiles`.
• Dynamic mode resolver: `single` | `batch` | `multi_to_single`.
• Builds `channel.key` as JSON-object whose keys are the raw credential texts.
• UI:
– “Batch create” checkbox (new build only).
– Nested “Merge to single channel (multi-key mode)” checkbox enabled when batch=true.
– Real-time file count display.
2. Upload UX
• Drag-and-drop, accepts `.json,application/json`.
• Custom texts: “Click or drop files here” / “JSON credentials only”.
• Eliminated mandatory `action` warning (`action="#"`).
3. Misc
• Included IconBolt import.
• Safeguard toggles reset logic to prevent stale state.
RESULT
Front-end now fully aligns with enhanced AddChannel API:
• Supports Vertex AI multi JSON batch creation.
• Supports new `multi_to_single` flow.
• Clean user feedback with successful file status.