45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
"use client";
|
|
import React, { useState } from "react";
|
|
import Register from "./register/Register";
|
|
import Search from "./search/Search";
|
|
import "./MainForm.css";
|
|
import RealtimeFaceDetection from "./realtimeFaceDetection/RealtimeFaceDetection";
|
|
|
|
const MainForm: React.FC = () => {
|
|
const [activeTab, setActiveTab] = useState<
|
|
"register" | "search" | "realtime"
|
|
>("register");
|
|
|
|
return (
|
|
<div className="main-container">
|
|
<div className="tabs">
|
|
<button
|
|
className={`tab-button ${activeTab === "register" ? "active" : ""}`}
|
|
onClick={() => setActiveTab("register")}
|
|
>
|
|
Register
|
|
</button>
|
|
<button
|
|
className={`tab-button ${activeTab === "search" ? "active" : ""}`}
|
|
onClick={() => setActiveTab("search")}
|
|
>
|
|
Search
|
|
</button>
|
|
<button
|
|
className={`tab-button ${activeTab === "realtime" ? "active" : ""}`}
|
|
onClick={() => setActiveTab("realtime")}
|
|
>
|
|
Realtime Detection
|
|
</button>
|
|
</div>
|
|
<div className="tab-content">
|
|
{activeTab === "register" && <Register />}
|
|
{activeTab === "search" && <Search />}
|
|
{activeTab === "realtime" && <RealtimeFaceDetection />}
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default MainForm;
|