fix(cis): fix JSX syntax errors and import paths for Phase 3 build

- Fix broken template literal in transcriptionStore.ts export function
- Fix broken regex in Content-Disposition parser
- Fix broken character class in filename sanitization
- Fix LLMConfigModal import path (5 levels up, not 6)
- Export button JSX properly nested in CCTranscriptionPanel
- Build now passes cleanly
This commit is contained in:
Kevin Carter 2026-05-21 06:35:09 +00:00
parent cb8c2dab74
commit 4d10d75003
3 changed files with 6 additions and 6 deletions

View File

@ -361,7 +361,7 @@ export const useTranscriptionStore = create<TranscriptionState>((set, get) => ({
try { try {
const apiBaseUrl = import.meta.env.VITE_API_BASE || 'https://api.classroomcopilot.ai'; const apiBaseUrl = import.meta.env.VITE_API_BASE || 'https://api.classroomcopilot.ai';
const response = await fetch(`${apiBaseUrl}/transcribe/sessions/${sessionId}/export, { const response = await fetch(`${apiBaseUrl}/transcribe/sessions/${sessionId}/export`, {
method: 'POST', method: 'POST',
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
@ -378,9 +378,9 @@ export const useTranscriptionStore = create<TranscriptionState>((set, get) => ({
const disposition = response.headers.get('Content-Disposition'); const disposition = response.headers.get('Content-Disposition');
let filename = `transcription-export.${format}`; let filename = `transcription-export.${format}`;
if (disposition) { if (disposition) {
const match = disposition.match(/filename[^;=\n]*=([(["]).*?(\2)|[^;\n]*)/); const match = disposition.match(/filename[*]?=['"\s]*([^;\s]*)/);
if (match && match[1]) { if (match && match[1]) {
filename = match[1].replace(/["\'\']/g, ''); filename = match[1].replace(/["'\\]/g, '');
} }
} }

View File

@ -362,6 +362,8 @@ export const CCTranscriptionPanel: React.FC = () => {
</button> </button>
</div> </div>
</> </>
)}
{/* Export button */} {/* Export button */}
{activeSession && ( {activeSession && (
<> <>
@ -416,8 +418,6 @@ export const CCTranscriptionPanel: React.FC = () => {
</> </>
)} )}
)}
{/* Summary result display */} {/* Summary result display */}
{summaryText && ( {summaryText && (
<> <>

View File

@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import Close from '@mui/icons-material/Close'; import Close from '@mui/icons-material/Close';
import { useTranscriptionStore, LLMConfig } from '../../stores/transcriptionStore'; import { useTranscriptionStore, LLMConfig } from '../../../../../stores/transcriptionStore';
const PROVIDERS = [ const PROVIDERS = [
{ value: 'openai', label: 'OpenAI' }, { value: 'openai', label: 'OpenAI' },