diff --git a/src/features/content/api/queries.ts b/src/features/content/api/queries.ts index 7206db3..493c5fc 100644 --- a/src/features/content/api/queries.ts +++ b/src/features/content/api/queries.ts @@ -4,8 +4,16 @@ import { GetNoticeDetailResData, GetEventDetailResData, GetTransactionDetailResData, + GetRuleDetailResData, + GetProceedingDetailResData, } from './types'; -import { EVENT_DETAIL_API, NOTICE_DETAIL_API, TRANSACTION_DETAIL_API } from '.'; +import { + EVENT_DETAIL_API, + NOTICE_DETAIL_API, + PROCEEDING_DETAIL_API, + RULE_DETAIL_API, + TRANSACTION_DETAIL_API, +} from '.'; //학교 공지 detail export const useGetCampusNoticeDetail = ( @@ -68,3 +76,31 @@ export const useGetTransactionDetail = ( ...options, }); }; + +export const useGetProceedingDetail = ( + proceedingId: number, + options?: UseQueryOptions, +) => { + return useQuery({ + queryKey: ['proceedingDetail', proceedingId], + queryFn: async () => { + const data = await PROCEEDING_DETAIL_API.proceedingDetail(proceedingId); + return data; + }, + ...options, + }); +}; + +export const useGetRuleDetail = ( + ruleId: number, + options?: UseQueryOptions, +) => { + return useQuery({ + queryKey: ['ruleDetail', ruleId], + queryFn: async () => { + const data = await RULE_DETAIL_API.ruleDetail(ruleId); + return data; + }, + ...options, + }); +}; diff --git a/src/features/content/model/usePdfDetail.ts b/src/features/content/model/usePdfDetail.ts index f3fc82c..17f45d4 100644 --- a/src/features/content/model/usePdfDetail.ts +++ b/src/features/content/model/usePdfDetail.ts @@ -1,3 +1,5 @@ +import { useGetRuleDetail, useGetProceedingDetail } from '../api/queries'; + const usePdfDetail = () => { //회칙/학칙 detail const returnRuleDetailItem = (organization: string, id: number) => { @@ -49,10 +51,3 @@ const usePdfDetail = () => { }; export default usePdfDetail; -function useGetRuleDetail(id: number): { data: any; isSuccess: any } { - throw new Error('Function not implemented.'); -} - -function useGetProceedingDetail(id: number): { data: any; isSuccess: any } { - throw new Error('Function not implemented.'); -} diff --git a/src/features/content/ui/CommonDetailComponent.tsx b/src/features/content/ui/CommonDetailComponent.tsx index 4c02c73..070d0f9 100644 --- a/src/features/content/ui/CommonDetailComponent.tsx +++ b/src/features/content/ui/CommonDetailComponent.tsx @@ -1,3 +1,5 @@ +'use client'; + import DateText from '@/widgets/DateText'; import Title from '@/widgets/Title'; import { formatDate } from '@/shared/lib/utils'; @@ -6,12 +8,18 @@ import ReactMarkdown from 'react-markdown'; import rehypeRaw from 'rehype-raw'; import { TbDownload } from 'react-icons/tb'; import { CommonDetailItem } from '../api/types'; +import { usePathname } from 'next/navigation'; const CommonDetailComponent = ({ content: data, }: { content: CommonDetailItem | undefined; }) => { + const pathname = usePathname(); + const isEventDetailPage = pathname.includes('event'); + + const arr = [1, 2, 3, 4, 5, 6, 2]; + if (data) { return (
@@ -29,13 +37,21 @@ const CommonDetailComponent = ({

-
+
{data.content} +
+ {isEventDetailPage && + data.fileInfo.length > 0 && + data.fileInfo.map((data, index) => ( + + ))} +

- {data.fileInfo.length > 0 && + {!isEventDetailPage && + data.fileInfo.length > 0 && data.fileInfo.map((data, index) => (

- +
-
diff --git a/src/shared/api/instance.ts b/src/shared/api/instance.ts index 8118358..fa2dbd1 100644 --- a/src/shared/api/instance.ts +++ b/src/shared/api/instance.ts @@ -67,6 +67,18 @@ instance.interceptors.response.use( return; } } + + if ( + error.config.url.includes('transactions') || + error.config.url.includes('notice') || + error.config.url.includes('meetings') || + error.config.url.includes('faq') || + error.config.url.includes('event') || + error.config.url.includes('rule') || + error.config.url.includes('campusnotice') + ) { + window.location.replace('/404'); + } return Promise.reject(error); }, );