MCPcopy Create free account
hub / github.com/aiprodcoder/MIXAPI / submit

Function submit

web/src/pages/Channel/EditChannel.js:474–599  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

472 };
473
474 const submit = async () => {
475 const formValues = formApiRef.current ? formApiRef.current.getValues() : {};
476 let localInputs = { ...formValues };
477
478 if (localInputs.type === 41) {
479 if (useManualInput) {
480 // 手动输入模式
481 if (localInputs.key && localInputs.key.trim() !== '') {
482 try {
483 // 验证 JSON 格式
484 const parsedKey = JSON.parse(localInputs.key);
485 // 确保是有效的密钥格式
486 localInputs.key = JSON.stringify(parsedKey);
487 } catch (err) {
488 showError(t('密钥格式无效,请输入有效的 JSON 格式密钥'));
489 return;
490 }
491 } else if (!isEdit) {
492 showInfo(t('请输入密钥!'));
493 return;
494 }
495 } else {
496 // 文件上传模式
497 let keys = vertexKeys;
498
499 // 若当前未选择文件,尝试从已上传文件列表解析(异步读取)
500 if (keys.length === 0 && vertexFileList.length > 0) {
501 try {
502 const parsed = await Promise.all(
503 vertexFileList.map(async (item) => {
504 const fileObj = item.fileInstance;
505 if (!fileObj) return null;
506 const txt = await fileObj.text();
507 return JSON.parse(txt);
508 })
509 );
510 keys = parsed.filter(Boolean);
511 } catch (err) {
512 showError(t('解析密钥文件失败: {{msg}}', { msg: err.message }));
513 return;
514 }
515 }
516
517 // 创建模式必须上传密钥;编辑模式可选
518 if (keys.length === 0) {
519 if (!isEdit) {
520 showInfo(t('请上传密钥文件!'));
521 return;
522 } else {
523 // 编辑模式且未上传新密钥,不修改 key
524 delete localInputs.key;
525 }
526 } else {
527 // 有新密钥,则覆盖
528 if (batch) {
529 localInputs.key = JSON.stringify(keys);
530 } else {
531 localInputs.key = JSON.stringify(keys[0]);

Callers

nothing calls this directly

Calls 5

showErrorFunction · 0.90
showInfoFunction · 0.90
verifyJSONFunction · 0.90
showSuccessFunction · 0.90
tFunction · 0.50

Tested by

no test coverage detected