diff --git a/Layout/LayoutProvider.tsx b/Layout/LayoutProvider.tsx
index 6a20df4d7..af257cdcc 100644
--- a/Layout/LayoutProvider.tsx
+++ b/Layout/LayoutProvider.tsx
@@ -18,7 +18,7 @@ const LayoutProvider = ({ children }: LayoutProviderProps) => {
// case "admin" :
// return {children};
default:
- return <>{children}>;
+ return {children};
}
};
diff --git a/components/agenda/Home/AgendaTitle.tsx b/components/agenda/Home/AgendaTitle.tsx
index 3f196bd29..09bdc6b9b 100644
--- a/components/agenda/Home/AgendaTitle.tsx
+++ b/components/agenda/Home/AgendaTitle.tsx
@@ -5,21 +5,37 @@ import styles from 'styles/agenda/Home/AgendaTitle.module.scss';
const AgendaTitle = () => {
return (
-
AGENDA
-
-
-
+
AGENDA
+
+
+
+
+
+
+
+
);
};
diff --git a/components/agenda/Ticket/Ticket.tsx b/components/agenda/Ticket/Ticket.tsx
new file mode 100644
index 000000000..a55a0cfc7
--- /dev/null
+++ b/components/agenda/Ticket/Ticket.tsx
@@ -0,0 +1,83 @@
+import Link from 'next/link';
+import { instanceInAgenda } from 'utils/axios';
+import useFetchGet from 'hooks/agenda/useFetchGet';
+import styles from 'styles/agenda/Ticket/Ticket.module.scss';
+interface TicketProps {
+ ticketCount: number;
+ setupTicket: boolean;
+}
+
+const Ticket = ({ type }: { type: string }) => {
+ const { data } = useFetchGet('/ticket');
+ return type === 'page' ? (
+
+
내 티켓
+
+
+
{data && data.ticketCount}
+
+
개
+
+
+
발급 방법
+
+
발급 시작 누르기
+
+
+ 평가 포인트 기부하기
+
+ {`(최대 2개까지 반영)`}
+
+
+
현재 페이지로 돌아와 발급완료 누르기
+
+ {data && data.setupTicket ? (
+
+ ) : (
+
+ )}
+
+
+
+
+ ) : (
+
+
내 티켓
+
+
+
+
+
+
+
{data && data.ticketCount}
+
+
개
+
+
+
+ );
+};
+
+export default Ticket;
diff --git a/components/agenda/Ticket/TicketHistory.tsx b/components/agenda/Ticket/TicketHistory.tsx
new file mode 100644
index 000000000..45664803f
--- /dev/null
+++ b/components/agenda/Ticket/TicketHistory.tsx
@@ -0,0 +1,55 @@
+import {
+ TableCell,
+ TableRow,
+ Table,
+ TableHead,
+ TableBody,
+} from '@mui/material';
+import { TicketHistoryProps } from 'types/aganda/ticketTypes';
+import styles from 'styles/agenda/Ticket/Ticket.module.scss';
+
+const TicketHistory = ({ data }: { data: TicketHistoryProps[] | null }) => {
+ return (
+
+
티켓 발급 내역
+
+
+
+ idx
+ 발급요청일
+ 승인여부
+ 승인일
+ 사용여부
+ 사용처
+
+
+
+ {data &&
+ data.map((d, index) => {
+ return (
+
+
+ {d.idx}
+
+ {d.createdAt}
+
+ {d.approved ? '✔︎' : '✕'}
+
+ {d.approvedAt}
+ {d.isUsed ? '✔︎' : '✕'}
+
+ {d.usedAt ? d.usedAt : ''}
+
+
+ );
+ })}
+
+
+
+ );
+};
+
+export default TicketHistory;
diff --git a/components/agenda/utils/PageController.tsx b/components/agenda/utils/PageController.tsx
new file mode 100644
index 000000000..bceca8f22
--- /dev/null
+++ b/components/agenda/utils/PageController.tsx
@@ -0,0 +1,114 @@
+import { useEffect, useState } from 'react';
+import { AgendaDataProps } from 'types/agenda/agendaDetail/agendaTypes';
+import { instanceInAgenda } from 'utils/axios';
+import styles from 'styles/agenda/utils/PageController.module.scss';
+import AgendaInfo from '../Home/AgendaInfo';
+
+interface PageControllerNavigatorProps {
+ currentPage: number;
+ maxPage: number;
+ onClick: (page: number) => void;
+}
+
+const PageControllerNavigator = ({
+ currentPage,
+ maxPage,
+ onClick,
+}: PageControllerNavigatorProps) => {
+ const buttons = [];
+ for (let i = 0; i < maxPage; i++) {
+ if (i === currentPage)
+ buttons.push(
+