Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modularize frontend #17

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions frontend/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import GetMemberContainer from "./get-member/components/index/container.tsx";
import {getMemberApiCall} from "./get-member/components/index/api.ts";
import { getMemberApiCall } from "./tool-pages/user-search/index/api.ts";
import GetMemberContainer from "./tool-pages/user-search/index/container.tsx";

function App() {
return (
<div className="Input text-center">
<h1 className="display-1">
read<span className="text-blue">メイ</span>
</h1>
<GetMemberContainer getMember={getMemberApiCall}/>
</div>
// Configure home page here by setting it so some tool page component
<GetMemberContainer getMember={getMemberApiCall}/>
);
}

Expand Down
13 changes: 13 additions & 0 deletions frontend/src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,26 @@ import { createBrowserRouter, RouterProvider } from "react-router-dom";
import App from "./App.tsx";
import "./scss/style.scss";
import ErrorPage from "./error-page.tsx";
import GetMemberContainer from "./tool-pages/user-search/index/container.tsx";
import { getMemberApiCall } from "./tool-pages/user-search/index/api.ts";
import TemplatedTool from "./tool-pages/tool-template/index.tsx";

const router = createBrowserRouter([
{
path: "/",
element: <App />,
errorElement: <ErrorPage />,
},
{
path: "/member-search",
element: <GetMemberContainer getMember={getMemberApiCall}/>,
errorElement: <ErrorPage />,
},
{
path: "/tool-template",
element: <TemplatedTool></TemplatedTool>,
errorElement: <ErrorPage />,
},
]);

ReactDOM.createRoot(document.getElementById("root")!).render(
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/scss/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,4 @@ body {

.background-blue {
background: #32A2D2;
}
}
26 changes: 26 additions & 0 deletions frontend/src/tool-pages/tool-page-components/navBar.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Navbar, Nav} from 'react-bootstrap';
import {ReactElement} from "react";

const ReadMeiNavBar = (): ReactElement => {
return <>
<Navbar expand={false} className="bg-body-tertiary" fixed="top">
<div className="w-100 justify-content-between">
<div className="p-2">
<Navbar.Toggle aria-controls="basic-navbar-nav"/>
<Navbar.Brand> ReadMei</Navbar.Brand>
</div>
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto p-2">
<Nav.Link href="/">Home</Nav.Link>
<Nav.Link href="/member-search">User Search</Nav.Link>
<Nav.Link href="/tool-template">Tool Template</Nav.Link>

{/* Add links to more tools as navlinks here*/}
</Nav>
</Navbar.Collapse>
</div>
</Navbar>
</>
}

export default ReadMeiNavBar;
14 changes: 14 additions & 0 deletions frontend/src/tool-pages/tool-template/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { ReactElement } from "react";
import ReadMeiNavBar from "../tool-page-components/navBar";



function TemplatedTool(): ReactElement {
return (
<>
<ReadMeiNavBar></ReadMeiNavBar>
</>
);

}
export default TemplatedTool;
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { InputEvent } from "../../../common/interfaces.ts";
import GetMember from "./get-member.tsx";
import { GetMemberResponse, GetMemberError } from "./interfaces.ts";
import { convertInput } from "../../../common/utils/convertInput.ts";
import ReadMeiNavBar from "../../tool-page-components/navBar.tsx";

interface GetMemberContainerProps {
getMember: (membershipNum: string) => Promise<GetMemberResponse>
Expand Down Expand Up @@ -41,13 +42,16 @@ const GetMemberContainer = (props:GetMemberContainerProps): ReactElement => {
setMembershipNum("")
}
return (
<GetMember onSubmit={handleSubmit}
inputText={membershipNum}
onChange={handleChange}
response={response}
error={error}
membershipNum={error?.membership_num}
/>
<>
<ReadMeiNavBar></ReadMeiNavBar>
<GetMember onSubmit={handleSubmit}
inputText={membershipNum}
onChange={handleChange}
response={response}
error={error}
membershipNum={error?.membership_num}
/>
</>
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {FormEventHandler, ReactElement} from "react";
import Input from "../../../common/components/input";
import Input from "../../../common/components/input/index.ts";
import Display from "../display/display.tsx";
import {GetMemberResponse, GetMemberError} from "./interfaces.ts";
import {InputEvent} from "../../../common/interfaces.ts";
Expand All @@ -15,6 +15,10 @@ interface GetMemberProps {
const GetMember = (props: GetMemberProps): ReactElement => {

return (
<div className="Input text-center">
<h1 className="display-1">
read<span className="text-blue">メイ</span>
</h1>
<div>
<div className="row g-3">
<div className="col-sm"></div>
Expand All @@ -35,6 +39,7 @@ const GetMember = (props: GetMemberProps): ReactElement => {
response={props.response}
error={props.error}/>
</div>
</div>
)
}

Expand Down