Skip to content

Commit 50ed1e8

Browse files
committed
feat : FAQAccordion 컴포넌트 구조 수정
1 parent a8ad1e8 commit 50ed1e8

File tree

4 files changed

+28
-27
lines changed

4 files changed

+28
-27
lines changed

apps/pyconkr-admin/src/consts/mdx_components.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ const PyConKRCommonMDXComponents: MDXComponents = {
136136
Common__Components__MDX__PrimaryStyledDetails: Common.Components.MDX.PrimaryStyledDetails,
137137
Common__Components__MDX__SecondaryStyledDetails: Common.Components.MDX.SecondaryStyledDetails,
138138
Common__Components__MDX__Map: Common.Components.MDX.Map,
139+
Common__Components__MDX__FAQAccordion: Common.Components.MDX.FAQAccordion,
139140
};
140141

141142
const PythonKRShopMDXComponents: MDXComponents = {

apps/pyconkr/src/consts/mdx_components.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ const PyConKRCommonMDXComponents: MDXComponents = {
136136
Common__Components__MDX__PrimaryStyledDetails: Common.Components.MDX.PrimaryStyledDetails,
137137
Common__Components__MDX__SecondaryStyledDetails: Common.Components.MDX.SecondaryStyledDetails,
138138
Common__Components__MDX__Map: Common.Components.MDX.Map,
139+
Common__Components__MDX__FAQAccordion: Common.Components.MDX.FAQAccordion,
139140
};
140141

141142
const PythonKRShopMDXComponents: MDXComponents = {

packages/common/src/components/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ import {
1212
NetworkLottiePlayer as NetworkLottiePlayerComponent,
1313
} from "./lottie";
1414
import { MDXRenderer as MDXRendererComponent } from "./mdx";
15+
import {
16+
FAQAccordion as FAQAccordionComponent,
17+
type FAQAccordionProps as FAQAccordionPropsType,
18+
type FAQItem as FAQItemType,
19+
} from "./mdx_components/faq_accordion";
1520
import type { MapPropType as MapComponentPropType } from "./mdx_components/map";
1621
import { Map as MapComponent } from "./mdx_components/map";
1722
import {
@@ -39,7 +44,10 @@ namespace Components {
3944
export const PrimaryStyledDetails = PrimaryStyledDetailsComponent;
4045
export const SecondaryStyledDetails = SecondaryStyledDetailsComponent;
4146
export const Map = MapComponent;
47+
export const FAQAccordion = FAQAccordionComponent;
4248
export type MapPropType = MapComponentPropType;
49+
export type FAQAccordionProps = FAQAccordionPropsType;
50+
export type FAQItem = FAQItemType;
4351
}
4452
}
4553

apps/pyconkr/src/components/Accordion/index.tsx renamed to packages/common/src/components/mdx_components/faq_accordion.tsx

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,24 @@
11
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
22
import { Accordion as MuiAccordion, AccordionDetails, AccordionSummary } from "@mui/material";
33
import styled from "@emotion/styled";
4+
import * as React from "react";
45

5-
const MOCK_FAQ = [
6-
{
7-
id: "01",
8-
question: "후원사 신청시 여러 후원 등급에 중복 신청도 가능한가요?",
9-
answer: "네, 중복 신청 가능합니다. 다만 최종 선정시에는 하나의 등급만 선택하셔야 합니다.",
10-
},
11-
{
12-
id: "02",
13-
question: "후원사 선정 방법이 궁금합니다. 선착순인가요?",
14-
answer:
15-
"후원사 선정은 신청 순서와 함께 파이콘 한국의 후원사 선정 기준에 따라 진행됩니다. 자세한 사항은 후원사 안내 페이지를 참고해 주세요.",
16-
},
17-
{
18-
id: "03",
19-
question: "후원사 등록이 정상적으로 진행되었는지 확인 방법이 있나요?",
20-
answer:
21-
"후원사 등록 완료 후 자동으로 확인 이메일이 발송됩니다. 만약 확인 이메일을 받지 못하셨다면 [email protected]로 문의해 주시기 바랍니다.",
22-
},
23-
];
24-
25-
export default function Accordion() {
6+
export interface FAQItem {
7+
id: string;
8+
question: string;
9+
answer: string;
10+
}
11+
12+
export interface FAQAccordionProps {
13+
items: FAQItem[];
14+
}
15+
16+
export const FAQAccordion: React.FC<FAQAccordionProps> = ({ items }) => {
2617
return (
2718
<AccordionWrapper>
28-
{MOCK_FAQ.map((faq, index) => (
29-
<>
30-
<StyledAccordion key={faq.id}>
19+
{items.map((faq, index) => (
20+
<React.Fragment key={faq.id}>
21+
<StyledAccordion>
3122
<AccordionSummary
3223
expandIcon={<ExpandMoreIcon />}
3324
aria-controls={`panel${faq.id}-content`}
@@ -38,12 +29,12 @@ export default function Accordion() {
3829
</AccordionSummary>
3930
<StyledAccordionDetails>{faq.answer}</StyledAccordionDetails>
4031
</StyledAccordion>
41-
{index !== MOCK_FAQ.length - 1 && <Divider />}
42-
</>
32+
{index !== items.length - 1 && <Divider />}
33+
</React.Fragment>
4334
))}
4435
</AccordionWrapper>
4536
);
46-
}
37+
};
4738

4839
const AccordionWrapper = styled.div`
4940
display: flex;

0 commit comments

Comments
 (0)