Add import/export
This commit is contained in:
parent
02ecca7598
commit
667c490537
9 changed files with 2261 additions and 54 deletions
|
|
@ -5,6 +5,7 @@ import { BrainCircuit, Loader2, Play, PenTool, BookOpen, Upload, X, FileText, Im
|
|||
import { useAuth } from 'react-oidc-context';
|
||||
import { AuthButton } from './AuthButton';
|
||||
import { QuizLibrary } from './QuizLibrary';
|
||||
import { ImportQuizzesModal } from './ImportQuizzesModal';
|
||||
import { DefaultConfigModal } from './DefaultConfigModal';
|
||||
import { PreferencesModal } from './PreferencesModal';
|
||||
import { ApiKeyModal } from './ApiKeyModal';
|
||||
|
|
@ -68,6 +69,7 @@ export const Landing: React.FC<LandingProps> = ({ onGenerate, onCreateManual, on
|
|||
|
||||
const modalParam = searchParams.get('modal');
|
||||
const libraryOpen = modalParam === 'library';
|
||||
const importOpen = modalParam === 'import';
|
||||
const preferencesOpen = modalParam === 'preferences';
|
||||
const defaultConfigOpen = modalParam === 'settings';
|
||||
const accountSettingsOpen = modalParam === 'account';
|
||||
|
|
@ -89,6 +91,10 @@ export const Landing: React.FC<LandingProps> = ({ onGenerate, onCreateManual, on
|
|||
setSearchParams(buildCleanParams({ modal: open ? 'library' : null }));
|
||||
};
|
||||
|
||||
const setImportOpen = (open: boolean) => {
|
||||
setSearchParams(buildCleanParams({ modal: open ? 'import' : null }));
|
||||
};
|
||||
|
||||
const setPreferencesOpen = (open: boolean) => {
|
||||
setSearchParams(buildCleanParams({ modal: open ? 'preferences' : null }));
|
||||
};
|
||||
|
|
@ -127,10 +133,15 @@ export const Landing: React.FC<LandingProps> = ({ onGenerate, onCreateManual, on
|
|||
loading: libraryLoading,
|
||||
loadingQuizId,
|
||||
deletingQuizId,
|
||||
exporting,
|
||||
importing,
|
||||
error: libraryError,
|
||||
fetchQuizzes,
|
||||
loadQuiz,
|
||||
deleteQuiz,
|
||||
exportQuizzes,
|
||||
importQuizzes,
|
||||
parseImportFile,
|
||||
retry: retryLibrary
|
||||
} = useQuizLibrary();
|
||||
|
||||
|
|
@ -610,12 +621,23 @@ export const Landing: React.FC<LandingProps> = ({ onGenerate, onCreateManual, on
|
|||
loading={libraryLoading}
|
||||
loadingQuizId={loadingQuizId}
|
||||
deletingQuizId={deletingQuizId}
|
||||
exporting={exporting}
|
||||
error={libraryError}
|
||||
onLoadQuiz={handleLoadQuiz}
|
||||
onDeleteQuiz={deleteQuiz}
|
||||
onExportQuizzes={exportQuizzes}
|
||||
onImportClick={() => setImportOpen(true)}
|
||||
onRetry={retryLibrary}
|
||||
/>
|
||||
|
||||
<ImportQuizzesModal
|
||||
isOpen={importOpen}
|
||||
onClose={() => setImportOpen(false)}
|
||||
onImport={importQuizzes}
|
||||
parseFile={parseImportFile}
|
||||
importing={importing}
|
||||
/>
|
||||
|
||||
<DefaultConfigModal
|
||||
isOpen={defaultConfigOpen}
|
||||
onClose={() => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue