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

[Feat] Test deploy main 동기화 #1412

Merged
merged 83 commits into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
9c3dee9
[Fix] 서류 검토중 상태 변경
yoouyeon Apr 7, 2024
1411eeb
[Design] recruitContainer 중앙정렬로 변경
yoouyeon Apr 7, 2024
cfac6ac
[Design] noRecruit flex-grow 설정
yoouyeon Apr 7, 2024
f7186b1
[Feat] ApplicationFormHeader 공통 StickyHeader로 변경
yoouyeon Apr 7, 2024
83cf8af
[Feat] StickyHeader에 모집 메인 버튼 추가
yoouyeon Apr 7, 2024
21cb1c0
[Feat] 메인 페이지인 경우에는 메인 이동 버튼 제거
yoouyeon Apr 7, 2024
79c22fd
[Fix] IApplicationAnswer 속성 수정
PHJoon Apr 8, 2024
3c94925
[Fix] 수정된 IApplicatnAnswer 속성에 맞춰 checkform 컴포넌트들 수정
PHJoon Apr 8, 2024
6bb15a6
[Refact] import 경로 절대경로로 변경
yoouyeon Apr 8, 2024
5689ef3
Merge pull request #1370 from 42organization/fix/bug-공고-페이지-버그-수정
yoouyeon Apr 8, 2024
26dc5fa
Update main-deploy.yml
greatSweetMango Mar 23, 2024
a41b123
[Fix] 템플릿메시지 타입 수정
hyobb109 Apr 8, 2024
1ed3d1b
Merge pull request #1372 from 42organization/fix/1371-지원서-보기수정-페이지-ap…
PHJoon Apr 8, 2024
06b64a1
[Fix] recruitmentDtoList -> recruitments #1256
greatSweetMango Apr 8, 2024
67bbf0f
[Fix] 사용 중인 템플릿 리스트 필터 추가
hyobb109 Apr 8, 2024
8d6d5ba
[Fix] RecruitmentHistoryList 타입 에러 수정
hyobb109 Apr 8, 2024
c3c1793
[Fix] 템플릿 등록 후 모달 유지
hyobb109 Apr 8, 2024
3e4422e
[Chore] 오타 수정
hyobb109 Apr 8, 2024
ae732e8
[Chore] DetailRecruitUserList 주석 처리
hyobb109 Apr 8, 2024
645301d
Merge branch '1373-fix-템플릿-메시지-등록-조회-모달-api-연결-오류-수정' of github.com:4…
hyobb109 Apr 8, 2024
4054da8
[Feat] 공고 불러오기 페이지네이션 #1256
greatSweetMango Apr 8, 2024
621683c
[Fix] 지원공고 상태 수정 API 요청 #1256
greatSweetMango Apr 8, 2024
c494429
[Feat] 모집 공고 버튼을 MUI 버튼으로 수정 #1256
greatSweetMango Apr 8, 2024
dbb4ada
[Fix] MUI IconButton으로 변경 #1256
greatSweetMango Apr 8, 2024
4d705a1
[Ci]배포 github action yaml 파일에 party env 업데이트
contemplation-person Apr 8, 2024
6949fee
[Fix] 미사용 Import 제거 #1256
greatSweetMango Apr 9, 2024
710c4e4
[Fix] status -> isFinish 변경 #1256
greatSweetMango Apr 9, 2024
d1ae482
[Feat] 질문지 추가시 추가된 질문으로 scroll #1256
greatSweetMango Apr 9, 2024
f01b23c
[Feat] 생성 수정시 메인으로 이동 #1256
greatSweetMango Apr 9, 2024
07852e3
[Feat] 삭제시 메인으로 이동 #1256
greatSweetMango Apr 9, 2024
349c34f
[Fix] instanceInManage를 instance로 수정
hyobb109 Apr 10, 2024
7521b94
[Fix] alert 초기값 수정
hyobb109 Apr 10, 2024
2a8e2a5
[Fix] 바뀐 API 스펙에 맞추어 타입 변경 #1256
greatSweetMango Apr 10, 2024
1819abb
[Fix] 바뀐 타입에 맞추어 에러 수정 #1256
greatSweetMango Apr 10, 2024
758616a
[Feat] room을 동적 라우팅에서 쿼리문으로 라우팅 방식 변경
contemplation-person Apr 11, 2024
b8d0414
[Feat] 공고 상세 페이지 url 수정
yoouyeon Apr 12, 2024
8f782ce
[Feat] 지원 페이지 url 수정
yoouyeon Apr 12, 2024
05cdc0b
[Feat] 지원서 확인 페이지 url 수정
yoouyeon Apr 12, 2024
e590678
[Feat] 지원서 제출 이후 이동 Url 수정
yoouyeon Apr 12, 2024
107f4d0
[Fix] 쿼리파라미터명 수정
yoouyeon Apr 12, 2024
b439afa
[fix] 지원자페이지 api 수정 #1388
parksangmin1543 Apr 14, 2024
62943a1
[feat] 모집상태처리 #1388
Apr 15, 2024
50c2c68
[fix] 필터수정 #1388
Apr 15, 2024
816cf1c
[Chore] 주석 되돌리기
hyobb109 Apr 15, 2024
bfdbe4e
Merge pull request #1375 from 42organization/1373-fix-템플릿-메시지-등록-조회-모…
hyobb109 Apr 15, 2024
3d81e1a
Merge branch 'recruit' into feat-관리자-공고-등록-수정-템플릿-#1256
greatSweetMango Apr 15, 2024
748502f
Merge pull request #1379 from 42organization/feat-관리자-공고-등록-수정-템플릿-#1256
greatSweetMango Apr 15, 2024
42c09f4
[Feat] 알림 미리보기 #1388
Apr 15, 2024
ad48e01
Merge pull request #1387 from 42organization/fix/1386-bug-배포-시-동적-라우팅…
yoouyeon Apr 15, 2024
9de099c
[Fix] 테이블에러 수정 #1388
Apr 15, 2024
47c358c
[Fix] build 에러 수정 중
PHJoon Apr 15, 2024
ca5de12
[Fix] 수정하기 api form -> forms 오타 수정
PHJoon Apr 15, 2024
0b8bb7e
[chore] recruit merge #1388
Apr 15, 2024
79c92ed
Merge pull request #1394 from 42organization/fix/recruit-build-error-수정
yoouyeon Apr 15, 2024
1574268
Merge pull request #1395 from 42organization/recruit
yoouyeon Apr 15, 2024
bc64efb
[fix] 타입수정, 이름변경 #1388
Apr 15, 2024
ae18c4f
[Fix] fail타입 추가 #1388
Apr 15, 2024
7d1de6d
Rename renderTableCells.tsx to RenderTableCells.tsx
parksangmin1543 Apr 15, 2024
14647bd
Merge pull request #1392 from 42organization/fix/1388-지원자페이지-api연결-오류수정
yoouyeon Apr 15, 2024
0b28388
Merge pull request #1396 from 42organization/recruit
yoouyeon Apr 15, 2024
3ec4d64
[Fix] 지원서 취소 이후 이동 url 변경
yoouyeon Apr 15, 2024
6c56111
Merge pull request #1398 from 42organization/fix/1397-bug-지원서-취소-이후-이…
yoouyeon Apr 15, 2024
9ed2829
Merge pull request #1399 from 42organization/recruit
yoouyeon Apr 15, 2024
98f1b5c
[Fix] 파티 생성시 카테고리 선택페이지 'X'버튼 제거
izone00 Apr 15, 2024
c9d0b7f
[Fix] 아이폰에서 파란 글자로 잘못나오는 파티 페이지의 글자 색상 수정
izone00 Apr 15, 2024
46e16c4
[Fis] 파티 메인페이지에서 파티 목록 로딩 후에 페이지 렌더링으로 수정
izone00 Apr 15, 2024
034ed4b
Merge pull request #1385 from 42organization/Feat-room을-동적-라우팅에서-쿼리문으…
contemplation-person Apr 16, 2024
6174519
Merge pull request #1382 from 42organization/Ci-배포-github-action-yaml…
contemplation-person Apr 16, 2024
113c991
[Feat] 파티 모집 메뉴얼 추가
izone00 Apr 16, 2024
d3f1644
[Fix] 파티 생성 페이지 'X' 버튼 제거
izone00 Apr 16, 2024
9e60342
[Feat] 파티 참여시 슬랙 알림에 대한 토스트 알림 추가
izone00 Apr 16, 2024
5c5bd79
Merge pull request #1406 from 42organization/Fix/파티-아이폰에서-글자-색상-오류-수정…
izone00 Apr 16, 2024
f06b188
Merge pull request #1407 from 42organization/6th_party
izone00 Apr 16, 2024
5d51b91
[Feat] 파티 메뉴얼 버튼 스타일 추가
izone00 Apr 16, 2024
445a44b
[Feat] 파티 메뉴얼 모달 스타일 추가
izone00 Apr 16, 2024
1e09127
[Feat] 모달 타입에 Party-Manual 추가
izone00 Apr 16, 2024
4d22abc
Merge branch '6th_party' of https://github.com/42organization/42gg.cl…
izone00 Apr 16, 2024
3f74433
[Fix] 파티 생성페이지 디테일 수정시에 카테고리헤더 가운데 정렬
izone00 Apr 16, 2024
47ffde9
Merge pull request #1408 from 42organization/6th_party
izone00 Apr 16, 2024
625a3a7
[Fix] PartyModal 빌드 오류에따른 import제거
izone00 Apr 16, 2024
b321c1f
Merge pull request #1409 from 42organization/6th_party
izone00 Apr 16, 2024
969a91a
[Feat] 파티생서시 마감기한 추가
izone00 Apr 16, 2024
bdb04f5
Merge pull request #1410 from 42organization/6th_party
izone00 Apr 16, 2024
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
2 changes: 2 additions & 0 deletions .github/workflows/main-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ jobs:
- name: Build
env:
NEXT_PUBLIC_SERVER_ENDPOINT: ${{ secrets.NEXT_PUBLIC_SERVER_ENDPOINT }}
NEXT_PUBLIC_CLIENT_ENDPOINT: ${{ secrets.NEXT_PUBLIC_CLIENT_ENDPOINT }}
NEXT_PUBLIC_MANAGE_SERVER_ENDPOINT: ${{ secrets.NEXT_PUBLIC_MANAGE_SERVER_ENDPOINT }}
NEXT_PUBLIC_PARTY_MANAGE_SERVER_ENDPOINT: ${{ secrets.NEXT_PUBLIC_PARTY_MANAGE_SERVER_ENDPOINT }}
NEXT_PUBLIC_GOOGLE_ANALYTICS: ${{ secrets.NEXT_PUBLIC_GOOGLE_ANALYTICS }}
GENERATE_SOURCEMAP: ${{ secrets.GENERATE_SOURCEMAP }}
run: |
Expand Down
25 changes: 21 additions & 4 deletions components/admin/recruitments/RecruitmentsHistoryList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function RecruitmentsHistoryList({
setPage: Dispatch<SetStateAction<RecruitmentsPages>>;
}) {
const [recruitData, setRecruitData] = useState<IrecruitTable>({
recruitmentDtoList: [],
recruitments: [],
totalPage: 0,
currentPage: 0,
});
Expand All @@ -64,7 +64,7 @@ function RecruitmentsHistoryList({
);
// FIXME : 페이지네이션 x 임시로 1페이지로 고정
setRecruitData({
recruitmentDtoList: res.data.recruitmentDtoList,
recruitments: res.data.recruitments,
totalPage: 1,
currentPage: 1,
});
Expand Down Expand Up @@ -140,6 +140,23 @@ function RecruitmentsHistoryList({
);
}

if (columnName === 'status') {
const today = new Date();
const todaystring = today.toISOString().slice(0, 19);
const todaydate = new Date(todaystring);
const endDate = new Date(recruit.endDate);
const startDate = new Date(recruit.startDate);
return (
<div>
{recruit.isFinish
? '완료'
: startDate <= todaydate && endDate >= todaydate
? '진행중'
: '진행전'}
</div>
);
}

return (
<AdminContent
content={recruit[columnName as keyof Irecruit]?.toString() as string}
Expand All @@ -156,8 +173,8 @@ function RecruitmentsHistoryList({
<Table className={styles.table} aria-label='customized table'>
<AdminTableHead tableName={'recruitment'} table={tableTitle} />
<TableBody className={styles.tableBody}>
{recruitData.recruitmentDtoList.length > 0 ? (
recruitData.recruitmentDtoList.map((recruit: Irecruit) => (
{recruitData.recruitments.length > 0 ? (
recruitData.recruitments.map((recruit: Irecruit) => (
<TableRow className={styles.tableRow} key={recruit.id}>
{tableFormat['recruitment'].columns.map(
(columnName: string, index: number) => (
Expand Down
14 changes: 6 additions & 8 deletions components/admin/recruitments/RecruitmentsMain.tsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
import { Dispatch, SetStateAction } from 'react';
import {
RecruitmentsMainProps,
RecruitmentsPages,
} from 'types/admin/adminRecruitmentsTypes';
import { Button } from '@mui/material';
import { RecruitmentsMainProps } from 'types/admin/adminRecruitmentsTypes';
import styles from 'styles/admin/store/StoreMain.module.scss';
import RecruitmentEdit from './recruitmentsEdit/RecruitmentEdit';
import RecruitmentsHistoryList from './RecruitmentsHistoryList';

function RecruitmentsMain({ setPage }: RecruitmentsMainProps) {
//return menutab
return (
<div className={styles.mainContainer}>
<div className={styles.subContainer}>
<button
<Button
variant='contained'
className={styles.sectionTitle}
onClick={() => {
setPage({ pageType: 'EDIT', props: { mode: 'CREATE', setPage } });
}}
>
지원 공고 등록
</button>
새 모집공고 등록
</Button>
</div>
<div className={styles.subContainer}>
<div className={styles.sectionTitle}>변경 이력</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { useEffect, useState } from 'react';
import { useSetRecoilState } from 'recoil';
import HomeIcon from '@mui/icons-material/Home';
import { IconButton } from '@mui/material';
import {
Iquestion,
Irecruit,
RecruitmentDetailProps,
RecruitmentsMainProps,
} from 'types/admin/adminRecruitmentsTypes';
import { instance } from 'utils/axios';
import { toastState } from 'utils/recoil/toast';
Expand All @@ -24,7 +25,7 @@ export default function RecruitmentDetail({
endDate: new Date(),
generation: '',
contents: '',
form: [],
forms: [],
});

const [isLoading, setIsLoading] = useState<boolean>(true);
Expand All @@ -33,16 +34,16 @@ export default function RecruitmentDetail({
const getRecruitmentInfo = async () => {
setIsLoading(true);
try {
const res = await instance.get('/recruitments/' + recruit.id);
const res = await instance.get(`admin/recruitments/${recruit.id}`);
const data: Irecruit = {
id: recruit.id,
status: recruit.status,
isFinish: recruit.isFinish,
title: res.data.title,
startDate: new Date(res.data.startDate),
endDate: new Date(res.data.endDate),
generation: res.data.generation,
contents: res.data.contents,
form: res.data.form,
forms: res.data.forms,
};
setRecruitmentInfo(data);
setIsLoading(false);
Expand All @@ -62,14 +63,14 @@ export default function RecruitmentDetail({

return (
<div className={styles.container}>
<button
<IconButton
aria-label='메인으로 가기'
onClick={() => {
const props = { setPage: setPage } as RecruitmentsMainProps;
setPage({ pageType: 'MAIN', props: props });
setPage({ pageType: 'MAIN', props: null });
}}
>
홈으로 돌아가기
</button>
<HomeIcon />
</IconButton>
{isLoading ? (
<p>로딩중...</p>
) : (
Expand All @@ -83,7 +84,7 @@ export default function RecruitmentDetail({
<QuillDescriptionViewer
contents={recruitmentInfo.contents as string}
/>
<QuestionForm form={recruitmentInfo.form as Iquestion[]} />
<QuestionForm form={recruitmentInfo.forms as Iquestion[]} />
</>
)}
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,12 @@
import {
ChangeEvent,
Dispatch,
SetStateAction,
useCallback,
useEffect,
useState,
} from 'react';
import { ChangeEvent, Dispatch, SetStateAction, useState } from 'react';
import { useSetRecoilState } from 'recoil';
import {
Button,
FormControl,
FormControlLabel,
InputLabel,
MenuItem,
Select,
SelectChangeEvent,
Switch,
} from '@mui/material';
import { Button, FormControlLabel, Switch } from '@mui/material';
import {
Irecruit,
RecruitmentEditProps,
RecruitmentsPages,
} from 'types/admin/adminRecruitmentsTypes';
import { instance } from 'utils/axios';
import { toastState } from 'utils/recoil/toast';
import styles from 'styles/admin/recruitments/recruitmentDetail/components/ActionSelectorButtons.module.scss';

Expand All @@ -34,13 +19,13 @@ interface ActionSelectorButtonsProps {
export default function ActionSelectorButtons({
setPage,
recruitmentInfo,
actionType,
}: ActionSelectorButtonsProps) {
const STATE = recruitmentInfo.status === '모집중' ? false : true;

const [isEnded, setIsEnded] = useState<boolean>(STATE);
const [isFinish, setIsFinish] = useState<boolean>(
recruitmentInfo.isFinish as boolean
);

const isStarted = recruitmentInfo.startDate > new Date();
const setSnackBar = useSetRecoilState(toastState);

const goToEditPage = (mode: string) => {
setPage({
Expand All @@ -53,19 +38,55 @@ export default function ActionSelectorButtons({
});
};

const switchChangeHandler = (
const deleteRecruitHandler = async () => {
try {
const res = await instance.delete(
`/admin/recruitments/${recruitmentInfo.id}`
);
alert('성공적으로 삭제가 완료되었습니다.');
setPage({ pageType: 'MAIN', props: null });
} catch (e: any) {
setSnackBar({
toastName: 'post recruitment',
severity: 'error',
message: e.response.data.message,
clicked: true,
});
}
};

const switchChangeHandler = async (
e: ChangeEvent<HTMLInputElement>,
checked: boolean
) => {
// 공고 상태 수정 API 호출
setIsEnded(checked);
try {
const res = await instance.patch(
`/admin/recruitments/${recruitmentInfo.id}/status`,
{
finish: !checked,
}
);
setIsFinish(!checked);
console.log(res);
} catch (e: any) {
setSnackBar({
toastName: 'patch recruitment',
severity: 'error',
message: 'API 요청에 실패하였습니다.',
clicked: true,
});
}
};

return (
<>
{isStarted ? (
<div className={styles.mainContainer}>
<Button variant='contained' className={styles.button}>
<Button
variant='contained'
className={styles.button}
onClick={deleteRecruitHandler}
>
삭제하기
</Button>
<Button
Expand All @@ -81,12 +102,12 @@ export default function ActionSelectorButtons({
<FormControlLabel
control={
<Switch
checked={isEnded}
checked={!isFinish}
onChange={switchChangeHandler}
inputProps={{ 'aria-label': 'controlled' }}
/>
}
label={isEnded ? '완료' : '모집중'}
label={isFinish ? '모집완료' : '모집중'}
/>
<Button
variant='contained'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,8 @@ function MultiCheckInput({ checkList }: CheckInputProps) {
<Grid item xs={1} alignItems='center'>
<CheckBox />
</Grid>
<Grid item xs={10}>
<TextField
fullWidth
required
label='직접입력'
value={checkItem.content}
size='small'
variant='standard'
/>
<Grid item xs={10} alignContent={'center'}>
<div>{checkItem.contents}</div>
</Grid>
</Grid>
);
Expand All @@ -45,15 +38,16 @@ function SingleCheckInput({ checkList }: CheckInputProps) {
<Grid item xs={1}>
<Radio value={idx} />
</Grid>
<Grid item xs={10}>
<TextField
<Grid item xs={10} alignContent={'center'}>
<div>{checkItem.contents}</div>
{/* <TextField
fullWidth
required
label='직접입력'
value={checkItem.content}
size='small'
variant='standard'
/>
/> */}
</Grid>
</Grid>
);
Expand Down Expand Up @@ -82,6 +76,7 @@ function Question({ question }: QuestionProps) {
fullWidth
value={question.question}
size='small'
disabled
/>
</Grid>
<Grid item xs={12}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ import 'react-quill/dist/quill.snow.css';
import DynamicQuill from 'components/DynamicQuill';
import styles from 'styles/admin/recruitments/recruitmentDetail/components/QuillDescription.module.scss';

const Quill = dynamic(() => import('react-quill'), {
ssr: false,
loading: () => <p>Loading ...</p>,
});

interface QuillDescriptionViewerProps {
contents: string;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import HomeIcon from '@mui/icons-material/Home';
import { IconButton } from '@mui/material';
import {
Iquestion,
Irecruit,
Expand All @@ -16,7 +18,7 @@ const emptyRecruitmentEditInfo: Irecruit = {
endDate: new Date(),
generation: '',
contents: '',
form: [],
forms: [],
};

export default function RecruitmentEdit({
Expand All @@ -37,13 +39,14 @@ export default function RecruitmentEdit({

return (
<div className={styles.container}>
<button
<IconButton
aria-label='메인으로 가기'
onClick={() => {
setPage({ pageType: 'MAIN', props: null });
}}
>
메인으로가기
</button>
<HomeIcon />
</IconButton>
<TitleTimeRangeSelector
recruitmentEditInfo={recruitmentEditInfo}
setRecruitmentEditInfoField={setRecruitmentEditInfoField}
Expand All @@ -53,13 +56,14 @@ export default function RecruitmentEdit({
setRecruitmentEditInfoField={setRecruitmentEditInfoField}
/>
<QuestionFormBuilder
form={recruitmentEditInfo.form as Iquestion[]}
form={recruitmentEditInfo.forms as Iquestion[]}
formManager={formManager}
/>
<ActionSelectorButtons
recruitmentEditInfo={recruitmentEditInfo}
importRecruitmentInfo={importRecruitmentInfo}
actionType={mode}
setPage={setPage}
/>
</div>
);
Expand Down
Loading
Loading