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

@ -10,11 +10,18 @@ import { useAuth } from "@/context/AuthContext";
import BackgroundWrapper from "@/components/BackgroundWrapper";
import FormField from "@/components/FormField";
import DestructibleAlert from "@/components/DestructibleAlert";
import { RegisterForm } from "@/types/auth";
interface CustomError extends Error {
response?: {
detail?: string;
};
}
export default function RegisterPage() {
const { setToken } = useAuth();
const router = useRouter();
const [form, setForm] = useState({
const [form, setForm] = useState<RegisterForm>({
name: "",
institution: "",
sscRoll: "",
@ -25,13 +32,12 @@ export default function RegisterPage() {
});
const [error, setError] = useState<string | null>(null);
const handleError = (error: any) => {
const handleError = (error: { detail: string }) => {
if (error?.detail) {
const match = error.detail.match(/Key \((.*?)\)=\((.*?)\)/);
if (match) {
const field = match[1];
const value = match[2];
return `The ${field} already exists. Please use a different value.`;
return `The ${field} already exists. Please try again.`;
}
}
return "An unexpected error occurred. Please try again.";
@ -56,16 +62,30 @@ export default function RegisterPage() {
setError(validationError);
return;
}
try {
await register(form, setToken);
router.push("/home");
} catch (error: any) {
console.error("Error:", error.response || error.message);
if (error.response?.detail) {
const decodedError = handleError({ detail: error.response.detail });
setError(decodedError);
} catch (error) {
// Type guard for built-in Error type
if (error instanceof Error) {
console.error(
"Error:",
(error as CustomError).response || error.message
);
const response = (error as CustomError).response;
if (response?.detail) {
const decodedError = handleError({ detail: response.detail });
setError(decodedError);
} else {
setError(error.message || "An unexpected error occurred.");
}
} else {
setError(error.message || "An unexpected error occurred.");
// Fallback for non-standard errors
console.error("Unexpected error:", error);
setError("An unexpected error occurred.");
}
}
};
@ -148,7 +168,7 @@ export default function RegisterPage() {
</button>
<p className="text-center text-sm">
Already have an account?{" "}
Already have an account?
<Link href="/login" className="text-blue-600">
Login here
</Link>