forked from JumboCode/TheLegacyProject
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
change senior name to first name and last name Co-authored-by: Tyler <[email protected]> finish first draft Co-authored-by: Tyler <[email protected]> reverted senior firstname/lastname field
- Loading branch information
1 parent
367e5dd
commit 00aba53
Showing
18 changed files
with
468 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 changes: 20 additions & 0 deletions
20
src/app/private/[uid]/chapter-leader/edit-profile/layout.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import { HeaderContainer } from "@components/container/index"; | ||
import { faUser } from "@fortawesome/free-regular-svg-icons"; | ||
|
||
interface IEditProfileLayout { | ||
children: React.ReactNode; | ||
} | ||
|
||
const EditProfileLayout = ({ children }: IEditProfileLayout) => { | ||
return ( | ||
<HeaderContainer | ||
header="Profile" | ||
headerIcon={faUser} | ||
showHorizontalLine={true} | ||
> | ||
{children} | ||
</HeaderContainer> | ||
); | ||
}; | ||
|
||
export default EditProfileLayout; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import { EditProfileForm } from "@components/user"; | ||
|
||
export default EditProfileForm; |
31 changes: 31 additions & 0 deletions
31
src/app/private/[uid]/chapter-leader/home/@joinChapter/page.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import { UserJoinRequest } from "@components/user"; | ||
import { prisma } from "@server/db/client"; | ||
|
||
interface UserHomePageParams { | ||
params: { | ||
uid: string; | ||
}; | ||
} | ||
|
||
const UserJoinChapterPage = async ({ params }: UserHomePageParams) => { | ||
const chapters = await prisma.chapter.findMany({ | ||
include: { | ||
students: true, | ||
}, | ||
}); | ||
const joinRequest = await prisma.userRequest.findFirst({ | ||
where: { | ||
uid: params.uid, | ||
}, | ||
}); | ||
|
||
return ( | ||
<UserJoinRequest | ||
chapters={chapters} | ||
joinRequest={joinRequest} | ||
uid={params.uid} | ||
/> | ||
); | ||
}; | ||
|
||
export default UserJoinChapterPage; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
import { prisma } from "@server/db/client"; | ||
import TabButtons from "@components/TabButtons"; | ||
import { HeaderContainer } from "@components/container/index"; | ||
import { faHouse } from "@fortawesome/free-solid-svg-icons"; | ||
|
||
interface LayoutProps { | ||
children: React.ReactNode; | ||
joinChapter: React.ReactNode; | ||
params: { | ||
uid: string; | ||
}; | ||
} | ||
|
||
const Layout = async ({ children, params, joinChapter }: LayoutProps) => { | ||
const user = await prisma.user.findFirstOrThrow({ | ||
where: { | ||
id: params.uid, | ||
}, | ||
}); | ||
|
||
if (user.ChapterID != null) { | ||
return ( | ||
<HeaderContainer | ||
header="Home" | ||
headerIcon={faHouse} | ||
showHorizontalLine={false} | ||
> | ||
<TabButtons | ||
queries={[ | ||
{ segment: "home", name: "My Chapter" }, | ||
{ segment: "home/resources", name: "resources" }, | ||
]} | ||
/> | ||
{children} | ||
</HeaderContainer> | ||
); | ||
} else { | ||
return joinChapter; | ||
} | ||
}; | ||
|
||
export default Layout; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
import { UserTile } from "@components/TileGrid"; | ||
import DisplayChapterInfo from "@components/DisplayChapterInfo"; | ||
import { prisma } from "@server/db/client"; | ||
import { CardGrid } from "@components/container"; | ||
|
||
interface UserHomePageParams { | ||
params: { | ||
uid: string; | ||
}; | ||
} | ||
|
||
const UserHomePage = async ({ params }: UserHomePageParams) => { | ||
const user = await prisma.user.findFirstOrThrow({ | ||
where: { | ||
id: params.uid, | ||
}, | ||
}); | ||
const chapter = await prisma.chapter.findFirstOrThrow({ | ||
where: { | ||
id: user.ChapterID ?? "", | ||
}, | ||
include: { | ||
students: true, | ||
}, | ||
}); | ||
|
||
return ( | ||
<div className="mt-6 flex flex-col gap-y-6"> | ||
<div className="font-merriweather text-2xl font-bold text-[#000022]"> | ||
{chapter.chapterName} | ||
</div> | ||
<DisplayChapterInfo | ||
location={chapter.location} | ||
noMembers={ | ||
chapter.students.filter((user) => user.role == "USER").length | ||
} | ||
dateCreated={chapter.dateCreated} | ||
/> | ||
<CardGrid | ||
title={ | ||
<div className="font-merriweather text-xl font-bold"> | ||
Executive Board | ||
</div> | ||
} | ||
tiles={chapter.students | ||
.filter((user) => user.role == "CHAPTER_LEADER") | ||
.map((user) => ( | ||
<UserTile key={user.id} student={user} link="" /> | ||
))} | ||
/> | ||
</div> | ||
); | ||
}; | ||
|
||
export default UserHomePage; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
"use client"; | ||
|
||
import Sidebar, { ISideBar } from "@components/Sidebar"; | ||
import { | ||
faHome, | ||
faUser, | ||
faUserGroup, | ||
faUserPlus, | ||
} from "@fortawesome/free-solid-svg-icons"; | ||
import React, { useContext } from "react"; | ||
import { UserContext } from "src/context/UserProvider"; | ||
|
||
interface IUserLayout { | ||
children: React.ReactNode; | ||
} | ||
|
||
const UserLayout = ({ children }: IUserLayout) => { | ||
const { user } = useContext(UserContext); | ||
const buttons: ISideBar["buttons"] = React.useMemo( | ||
() => [ | ||
{ | ||
name: "Home", | ||
link: `/private/${user.id}/chapter-leader/home`, | ||
icon: faHome, | ||
}, | ||
{ | ||
name: "Members", | ||
link: `/private/${user.id}/chapter-leader/members`, | ||
icon: faUserGroup, | ||
}, | ||
{ | ||
name: "Pending", | ||
link: `/private/${user.id}/chapter-leader/pending`, | ||
icon: faUserPlus, | ||
}, | ||
{ | ||
name: "Profile", | ||
link: `/private/${user.id}/chapter-leader/edit-profile`, | ||
icon: faUser, | ||
}, | ||
], | ||
[user.id] | ||
); | ||
|
||
return ( | ||
<div className="grid h-full w-full grid-cols-12"> | ||
<div className="col-span-2 bg-[#E7E0D6]"> | ||
<Sidebar buttons={buttons} /> | ||
</div> | ||
<div className="col-span-10 bg-[#F4F0EB]">{children}</div> | ||
</div> | ||
); | ||
}; | ||
|
||
export default UserLayout; |
52 changes: 52 additions & 0 deletions
52
src/app/private/[uid]/chapter-leader/members/MembersHomePage.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
"use client"; | ||
|
||
import { useState } from "react"; | ||
import { UserTile } from "@components/TileGrid"; | ||
import { CardGrid } from "@components/container"; | ||
import SearchBar from "@components/SearchBar"; | ||
import { User } from "@prisma/client"; | ||
|
||
type MembersHomePageProps = { | ||
members: User[]; | ||
user: User; | ||
}; | ||
|
||
const MembersHomePage = ({ members, user }: MembersHomePageProps) => { | ||
const [filter, setFilter] = useState(""); | ||
|
||
return ( | ||
<> | ||
<h1 className="font-merriweather text-3xl"> | ||
{`Members (${members.length})`} | ||
</h1> | ||
<div className="mb-6 mt-6 flex w-full gap-2.5"> | ||
<SearchBar setFilter={setFilter} /> | ||
</div> | ||
{members.length > 0 ? ( | ||
<CardGrid | ||
tiles={members | ||
.filter((member) => | ||
(member.firstName + " " + member.lastName) | ||
.toLowerCase() | ||
.includes(filter.toLowerCase()) | ||
) | ||
.map((member, index) => { | ||
return ( | ||
<UserTile | ||
key={index} | ||
student={member} | ||
link={`/private/${user.id}/chapter-leader/members/${member.id}`} | ||
/> | ||
); | ||
})} | ||
/> | ||
) : ( | ||
<h1 className="text-2xl font-light"> | ||
{"This chapter has no members."} | ||
</h1> | ||
)} | ||
</> | ||
); | ||
}; | ||
|
||
export default MembersHomePage; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import { HeaderContainer } from "@components/container"; | ||
import { faUserGroup } from "@fortawesome/free-solid-svg-icons"; | ||
|
||
interface LayoutProps { | ||
children?: React.ReactNode; | ||
} | ||
|
||
const Layout = (props: LayoutProps) => { | ||
return ( | ||
<HeaderContainer | ||
showHorizontalLine | ||
header="Members" | ||
headerIcon={faUserGroup} | ||
> | ||
{props.children} | ||
</HeaderContainer> | ||
); | ||
}; | ||
|
||
export default Layout; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import React from "react"; | ||
import { prisma } from "@server/db/client"; | ||
import MembersHomePage from "./MembersHomePage"; | ||
|
||
const MembersPage = async ({ params }: { params: { uid: string } }) => { | ||
const user = await prisma.user.findFirstOrThrow({ | ||
where: { | ||
id: params.uid, | ||
}, | ||
}); | ||
|
||
const chapter = await prisma.chapter.findFirstOrThrow({ | ||
where: { | ||
id: user.ChapterID ?? "", | ||
}, | ||
include: { | ||
students: true, | ||
}, | ||
}); | ||
|
||
return <MembersHomePage members={chapter.students} user={user} />; | ||
}; | ||
|
||
export default MembersPage; |
Oops, something went wrong.