refactor: team applications

This commit is contained in:
2024-07-30 18:08:53 -06:00
parent 7a87eac395
commit c979e6540f
12 changed files with 268 additions and 275 deletions
+4 -3
View File
@@ -4,8 +4,9 @@ import { Container } from '@/styled-system/jsx'
import { center } from '@/styled-system/patterns'
import { button, card } from '@/styled-system/recipes'
import { getClanMembers } from 'entgamers-database/backend/clanes'
import { ADMIN_CLAN_ID, COLLABORATOR_CLAN_ID, MODERATOR_CLAN_ID, ensureAdministrativeClans } from 'entgamers-database/backend/clanes/administrative'
import { getUser, type UserList } from 'entgamers-database/backend/users'
import { getUser } from 'entgamers-database/backend/users'
import { ADMIN_CLAN_ID, COLLABORATOR_CLAN_ID, MODERATOR_CLAN_ID } from 'entgamers-database/lib/env'
import { type UserList } from 'entgamers-database/types/user'
import NextImage from 'next/image'
import NextLink from 'next/link'
import { type Models } from 'node-appwrite'
@@ -18,7 +19,7 @@ interface GetTeamsResponse {
}
const getTeams = async (): Promise<GetTeamsResponse> => {
await ensureAdministrativeClans()
// await ensureAdministrativeClans()
const adminMembers: Models.MembershipList = await getClanMembers(ADMIN_CLAN_ID)
const moderatorMembers: Models.MembershipList = await getClanMembers(MODERATOR_CLAN_ID)
+5 -11
View File
@@ -8,11 +8,12 @@ import { useAppDispatch } from '@/hooks/useAppDispatch'
import useManageError from '@/hooks/useManageError'
import { addAlert } from '@/state/feedbackSlice'
import { css } from '@/styled-system/css'
import { teamApplicationDataSchema, type TeamApplicationData } from '@/utilities/teamApplication'
import { teamApplicationDataSchema } from '@/utilities/teamApplication'
import { faChevronRight } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon, type FontAwesomeIconProps } from '@fortawesome/react-fontawesome'
import { nanoid } from '@reduxjs/toolkit'
import { ADMIN_CLAN_ID, COLLABORATOR_CLAN_ID, MODERATOR_CLAN_ID } from 'entgamers-database/frontend/clanes/administrative'
import { createTeamApplication, type TeamApplicationData } from 'entgamers-database/frontend/database/teamApplications'
import { useFormik } from 'formik'
import { AnimatePresence, motion } from 'framer-motion'
import { useSearchParams } from 'next/navigation'
@@ -23,24 +24,17 @@ const ApplyForm: FC = () => {
const { manageError } = useManageError()
const dispatch = useAppDispatch()
const formik = useFormik<TeamApplicationData>({
const formik = useFormik <Omit<TeamApplicationData, 'status'>>({
initialValues: {
name: '',
email: '',
discord: '',
message: '',
role: 'Moderator',
status: 'Pending'
role: 'Moderator'
},
onSubmit: async (values) => {
try {
await fetch('/api/team-applications', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(values)
})
await createTeamApplication(values)
dispatch(addAlert({
id: nanoid(),
title: 'Formulario enviado',
+3 -1
View File
@@ -1,9 +1,11 @@
import Typography from '@/components/ui/Typography'
import { Container } from '@/styled-system/jsx'
import { ensureTeamApplicationsCollection } from 'entgamers-database/backend/database/teamApplications'
import { type FC } from 'react'
import ApplyForm from './ApplyForm'
const EquipoUnirsePage: FC = () => {
const EquipoUnirsePage: FC = async () => {
await ensureTeamApplicationsCollection()
return (
<Container>
<Typography variant="h1" align="center">Únete al Bosque</Typography>