fix(ts): refactor codebase for capacitor setup

This commit is contained in:
shafin-r
2025-07-28 20:22:04 +06:00
parent e091a78bdb
commit 0bca09f8ef
31 changed files with 458 additions and 384 deletions

View File

@ -86,7 +86,7 @@ export const ExamProvider: React.FC<{ children: ReactNode }> = ({
setCurrentAttemptState(null);
};
const startExam = (exam?: Exam) => {
const startExam = (exam?: Exam): void => {
const examToUse = exam || currentExam;
if (!examToUse) {
@ -101,6 +101,7 @@ export const ExamProvider: React.FC<{ children: ReactNode }> = ({
answers: [],
startTime: new Date(),
totalQuestions: 0,
score: 0,
};
setCurrentAttemptState(attempt);

View File

@ -1,24 +1,41 @@
"use client";
import { createContext, useContext, useState } from "react";
const ModalContext = createContext(null);
// Define the context type
interface ModalContextType {
isOpen: boolean;
open: () => void;
close: () => void;
toggle: () => void;
}
export function ModalProvider({ children }) {
// Create context with default values (no null)
const ModalContext = createContext<ModalContextType>({
isOpen: false,
open: () => {},
close: () => {},
toggle: () => {},
});
export function ModalProvider({ children }: { children: React.ReactNode }) {
const [isOpen, setIsOpen] = useState(false);
const open = () => setIsOpen(true);
const close = () => setIsOpen(false);
const toggle = () => setIsOpen((prev) => !prev);
const value: ModalContextType = {
isOpen,
open,
close,
toggle,
};
return (
<ModalContext.Provider value={{ isOpen, open, close, toggle }}>
{children}
</ModalContext.Provider>
<ModalContext.Provider value={value}>{children}</ModalContext.Provider>
);
}
export function useModal() {
const ctx = useContext(ModalContext);
if (!ctx) throw new Error("useModal must be inside <ModalProvider>");
return ctx;
export function useModal(): ModalContextType {
return useContext(ModalContext);
}