diff --git a/public/svgs/Subtract.svg b/public/svgs/Subtract.svg
new file mode 100644
index 00000000..dd8e7f6c
--- /dev/null
+++ b/public/svgs/Subtract.svg
@@ -0,0 +1,9 @@
+
diff --git a/public/svgs/banner_basic.svg b/public/svgs/banner_basic.svg
new file mode 100644
index 00000000..6b9b03a2
--- /dev/null
+++ b/public/svgs/banner_basic.svg
@@ -0,0 +1,19 @@
+
diff --git a/public/svgs/icon_footer_logo.svg b/public/svgs/icon_footer_logo.svg
new file mode 100644
index 00000000..771324d7
--- /dev/null
+++ b/public/svgs/icon_footer_logo.svg
@@ -0,0 +1,8 @@
+
diff --git a/public/svgs/icon_small_band.svg b/public/svgs/icon_small_band.svg
new file mode 100644
index 00000000..0a7a7ff3
--- /dev/null
+++ b/public/svgs/icon_small_band.svg
@@ -0,0 +1,7 @@
+
diff --git a/public/svgs/icon_small_dance.svg b/public/svgs/icon_small_dance.svg
new file mode 100644
index 00000000..7e7de691
--- /dev/null
+++ b/public/svgs/icon_small_dance.svg
@@ -0,0 +1,7 @@
+
diff --git a/public/svgs/icon_small_etc.svg b/public/svgs/icon_small_etc.svg
new file mode 100644
index 00000000..d0c8b940
--- /dev/null
+++ b/public/svgs/icon_small_etc.svg
@@ -0,0 +1,6 @@
+
diff --git a/public/svgs/icon_small_musical.svg b/public/svgs/icon_small_musical.svg
new file mode 100644
index 00000000..41fd51d2
--- /dev/null
+++ b/public/svgs/icon_small_musical.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/assets/images/banner_basic.png b/src/assets/images/banner_basic.png
new file mode 100644
index 00000000..f941ddf8
Binary files /dev/null and b/src/assets/images/banner_basic.png differ
diff --git a/src/assets/svgs/BannerBasic.tsx b/src/assets/svgs/BannerBasic.tsx
new file mode 100644
index 00000000..c5be02fe
--- /dev/null
+++ b/src/assets/svgs/BannerBasic.tsx
@@ -0,0 +1,38 @@
+import * as React from "react";
+import type { SVGProps } from "react";
+const SvgBannerBasic = (props: SVGProps) => (
+
+);
+export default SvgBannerBasic;
diff --git a/src/assets/svgs/IconFooterLogo.tsx b/src/assets/svgs/IconFooterLogo.tsx
new file mode 100644
index 00000000..5abba1b8
--- /dev/null
+++ b/src/assets/svgs/IconFooterLogo.tsx
@@ -0,0 +1,15 @@
+import * as React from "react";
+import type { SVGProps } from "react";
+const SvgIconFooterLogo = (props: SVGProps) => (
+
+);
+export default SvgIconFooterLogo;
diff --git a/src/assets/svgs/IconSmallBand.tsx b/src/assets/svgs/IconSmallBand.tsx
new file mode 100644
index 00000000..b8fae6eb
--- /dev/null
+++ b/src/assets/svgs/IconSmallBand.tsx
@@ -0,0 +1,12 @@
+import * as React from "react";
+import type { SVGProps } from "react";
+const SvgIconSmallBand = (props: SVGProps) => (
+
+);
+export default SvgIconSmallBand;
diff --git a/src/assets/svgs/IconSmallDance.tsx b/src/assets/svgs/IconSmallDance.tsx
new file mode 100644
index 00000000..99c3b8a8
--- /dev/null
+++ b/src/assets/svgs/IconSmallDance.tsx
@@ -0,0 +1,10 @@
+import * as React from "react";
+import type { SVGProps } from "react";
+const SvgIconSmallDance = (props: SVGProps) => (
+
+);
+export default SvgIconSmallDance;
diff --git a/src/assets/svgs/IconSmallEtc.tsx b/src/assets/svgs/IconSmallEtc.tsx
new file mode 100644
index 00000000..466bf07f
--- /dev/null
+++ b/src/assets/svgs/IconSmallEtc.tsx
@@ -0,0 +1,10 @@
+import * as React from "react";
+import type { SVGProps } from "react";
+const SvgIconSmallEtc = (props: SVGProps) => (
+
+);
+export default SvgIconSmallEtc;
diff --git a/src/assets/svgs/IconSmallMusical.tsx b/src/assets/svgs/IconSmallMusical.tsx
new file mode 100644
index 00000000..cb971451
--- /dev/null
+++ b/src/assets/svgs/IconSmallMusical.tsx
@@ -0,0 +1,13 @@
+import * as React from "react";
+import type { SVGProps } from "react";
+const SvgIconSmallMusical = (props: SVGProps) => (
+
+);
+export default SvgIconSmallMusical;
diff --git a/src/assets/svgs/Subtract.tsx b/src/assets/svgs/Subtract.tsx
new file mode 100644
index 00000000..65165732
--- /dev/null
+++ b/src/assets/svgs/Subtract.tsx
@@ -0,0 +1,16 @@
+import * as React from "react";
+import type { SVGProps } from "react";
+const SvgSubtract = (props: SVGProps) => (
+
+);
+export default SvgSubtract;
diff --git a/src/assets/svgs/index.tsx b/src/assets/svgs/index.tsx
index fe2f3d96..3e65db88 100644
--- a/src/assets/svgs/index.tsx
+++ b/src/assets/svgs/index.tsx
@@ -1,3 +1,4 @@
+export { default as BannerBasic } from "./BannerBasic";
export { default as Empty } from "./Empty";
export { default as IcHamburgar } from "./IcHamburgar";
export { default as IcomCopy } from "./IcomCopy";
@@ -13,6 +14,7 @@ export { default as IconCheckboxUnselectedOn } from "./IconCheckboxUnselectedOn"
export { default as IconChevronBack } from "./IconChevronBack";
export { default as IconEyeOff } from "./IconEyeOff";
export { default as IconEyeOn } from "./IconEyeOn";
+export { default as IconFooterLogo } from "./IconFooterLogo";
export { default as IconHanna } from "./IconHanna";
export { default as IconIbk } from "./IconIbk";
export { default as IconIm } from "./IconIm";
@@ -26,6 +28,10 @@ export { default as IconSaemauel } from "./IconSaemauel";
export { default as IconSc } from "./IconSc";
export { default as IconShinhan } from "./IconShinhan";
export { default as IconShinhyup } from "./IconShinhyup";
+export { default as IconSmallBand } from "./IconSmallBand";
+export { default as IconSmallDance } from "./IconSmallDance";
+export { default as IconSmallEtc } from "./IconSmallEtc";
+export { default as IconSmallMusical } from "./IconSmallMusical";
export { default as IconSoohyup } from "./IconSoohyup";
export { default as IconTextfiedlDelete } from "./IconTextfiedlDelete";
export { default as IconTime } from "./IconTime";
@@ -36,3 +42,4 @@ export { default as IconWoochaegook } from "./IconWoochaegook";
export { default as IconWoori } from "./IconWoori";
export { default as IconXButton } from "./IconXButton";
export { default as IcOutlinePlace } from "./IcOutlinePlace";
+export { default as Subtract } from "./Subtract";
diff --git a/src/components/commons/chip/Chip.styled.ts b/src/components/commons/chip/Chip.styled.ts
index f8ba99ea..a105a44d 100644
--- a/src/components/commons/chip/Chip.styled.ts
+++ b/src/components/commons/chip/Chip.styled.ts
@@ -32,13 +32,34 @@ export const ChipWrapper = styled.div<{ color?: ChipsColorTypes }>`
default:
return `
background-color: ${theme.colors.gray_0};
- color: ${theme.colors.gray_900};
+ color: ${theme.colors.pink_400};
`;
}
}}
`;
-export const ChipIcon = styled.span`
+export const ChipIcon = styled.span<{ iconColor?: string }>`
width: 1.6rem;
height: 1.6rem;
+
+ ${({ theme, iconColor }) => {
+ switch (iconColor) {
+ case "pink":
+ return `
+ color: ${theme.colors.pink_400};
+ `;
+ case "white":
+ return `
+ color: ${theme.colors.white};
+ `;
+ case "gray":
+ return `
+ color: ${theme.colors.gray_500};
+ `;
+ default:
+ return `
+ color: ${theme.colors.gray_500};
+ `;
+ }
+ }}
`;
diff --git a/src/components/commons/chip/Chip.tsx b/src/components/commons/chip/Chip.tsx
index 1dadba99..098232e0 100644
--- a/src/components/commons/chip/Chip.tsx
+++ b/src/components/commons/chip/Chip.tsx
@@ -7,13 +7,14 @@ interface ChipProps {
label: string;
color?: ChipsColorTypes;
icon?: React.ReactNode;
+ iconColor?: string;
onClick?: () => void;
}
-const Chip = ({ label, color, icon, onClick }: ChipProps) => {
+const Chip = ({ label, color, icon, iconColor, onClick }: ChipProps) => {
return (
- {icon && {icon}}
+ {icon && {icon}}
{label}
);
diff --git a/src/pages/main/Main.styled.ts b/src/pages/main/Main.styled.ts
new file mode 100644
index 00000000..5c6f5648
--- /dev/null
+++ b/src/pages/main/Main.styled.ts
@@ -0,0 +1,9 @@
+import styled from "styled-components";
+
+export const MainWrapper = styled.section`
+ width: auto;
+
+ color: ${({ theme }) => theme.colors.gray_900};
+
+ background-color: ${({ theme }) => theme.colors.gray_900};
+`;
diff --git a/src/pages/main/Main.tsx b/src/pages/main/Main.tsx
new file mode 100644
index 00000000..1f672879
--- /dev/null
+++ b/src/pages/main/Main.tsx
@@ -0,0 +1,25 @@
+import { useState } from "react";
+import * as S from "./Main.styled";
+
+import Performance from "./components/performance/Performance";
+import Chips from "./components/chips/Chips";
+import Footer from "./components/footer/Footer";
+
+const Main = () => {
+ // chips 클릭하면 seGenre 달라지게!
+ const [genre, setGenre] = useState("ALL");
+
+ const handleGenre = (value: string) => {
+ setGenre(value);
+ };
+
+ return (
+
+
+
+
+
+ );
+};
+
+export default Main;
diff --git a/src/pages/main/components/chips/Chips.styled.ts b/src/pages/main/components/chips/Chips.styled.ts
new file mode 100644
index 00000000..4329016d
--- /dev/null
+++ b/src/pages/main/components/chips/Chips.styled.ts
@@ -0,0 +1,28 @@
+import styled from "styled-components";
+
+export const ChipsWrapper = styled.section`
+ width: 37.5rem;
+`;
+
+export const ChipsLayout = styled.section`
+ display: flex;
+ gap: 0.4rem;
+ padding: 1.6rem 2.4rem 0;
+ overflow-x: scroll;
+
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+
+ &::-webkit-scrollbar {
+ display: none;
+ }
+ white-space: nowrap;
+`;
+
+export const Chip = styled.button`
+ gap: 0.6rem;
+ align-items: center;
+ justify-content: center;
+ width: auto;
+ padding: 0.9rem 1.2rem;
+`;
diff --git a/src/pages/main/components/chips/Chips.tsx b/src/pages/main/components/chips/Chips.tsx
new file mode 100644
index 00000000..6d14af0f
--- /dev/null
+++ b/src/pages/main/components/chips/Chips.tsx
@@ -0,0 +1,42 @@
+import { useState } from "react";
+import * as S from "./Chips.styled";
+
+import Chip from "@components/commons/chip/Chip";
+import { CHIP_LIST } from "@pages/main/constants/chipList";
+
+const Chips = ({ handleGenre }: { handleGenre: (value: string) => void }) => {
+ const [chipState, setChipState] = useState("ALL");
+
+ return (
+
+
+ {
+ handleGenre("ALL");
+ setChipState("ALL");
+ }}
+ />
+ {CHIP_LIST.map((item, i) => {
+ const GenreIcon = item.icon ? item.icon : () => <>>;
+ return (
+ }
+ iconColor={chipState === item.genre ? "pink" : "gray"}
+ onClick={() => {
+ handleGenre(item.genre);
+ setChipState(item.genre);
+ }}
+ />
+ );
+ })}
+
+
+ );
+};
+
+export default Chips;
diff --git a/src/pages/main/components/footer/Footer.styled.ts b/src/pages/main/components/footer/Footer.styled.ts
new file mode 100644
index 00000000..3e6e69f6
--- /dev/null
+++ b/src/pages/main/components/footer/Footer.styled.ts
@@ -0,0 +1,59 @@
+import styled from "styled-components";
+import { IconFooterLogo } from "@assets/svgs";
+
+export const FooterWrapper = styled.section`
+ width: 100%;
+ height: 19rem;
+
+ background-color: ${({ theme }) => theme.colors.gray_800};
+`;
+
+export const FooterTop = styled.section`
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ width: auto;
+`;
+
+// 로고 확정되면 로고 들어갈 위치
+export const Logo = styled(IconFooterLogo)`
+ width: 5.7rem;
+ height: 2.4rem;
+ margin: 2rem 0 0 2.4rem;
+`;
+
+export const InfoLayout = styled.section`
+ display: flex;
+ align-items: center;
+ width: auto;
+ padding: 0 1.6rem;
+`;
+
+export const InfoBtn = styled.button`
+ padding: 0.8rem;
+
+ color: ${({ theme }) => theme.colors.white};
+ ${({ theme }) => theme.fonts["caption1-semi"]};
+`;
+
+export const BtnDivider = styled.div`
+ height: 1rem;
+ margin: 0.2rem 0;
+
+ color: ${({ theme }) => theme.colors.gray_500};
+
+ border-left: 0.1rem solid;
+`;
+
+export const FooterBottom = styled.section`
+ display: flex;
+ flex-direction: column;
+ gap: 0.2rem;
+ align-items: flex-start;
+ padding: 0.8rem 2.4rem 2.4rem;
+`;
+
+export const FooterInfo = styled.div`
+ color: ${({ theme }) => theme.colors.gray_500};
+ ${({ theme }) => theme.fonts["caption2-medi"]};
+`;
diff --git a/src/pages/main/components/footer/Footer.tsx b/src/pages/main/components/footer/Footer.tsx
new file mode 100644
index 00000000..22b13036
--- /dev/null
+++ b/src/pages/main/components/footer/Footer.tsx
@@ -0,0 +1,39 @@
+import * as S from "./Footer.styled";
+
+const Footer = () => {
+ const privacy = "https://jiwoothejay.notion.site/2e52f4f9f5a14ef3a53e3457ca5066df?pvs=4";
+ const service = "https://jiwoothejay.notion.site/032adc725a3d4ec9b5f22e437c48ab4e?pvs=4";
+
+ return (
+
+
+
+
+ {
+ window.open(privacy, "개인정보처리방침", "noopener");
+ }}
+ >
+ 개인정보처리방침
+
+
+ {
+ window.open(service, "이용약관", "noopener");
+ }}
+ >
+ 이용약관
+
+
+
+
+ 대표 : 서지우
+ 이메일 : beatlebeatle.official@gmail.com
+ 전화번호 : 070-8058-8213
+ Copyright 2024. Beat For Gig. All rights reserved.
+
+
+ );
+};
+
+export default Footer;
diff --git a/src/pages/main/components/performance/Performance.Cardstyled.ts b/src/pages/main/components/performance/Performance.Cardstyled.ts
new file mode 100644
index 00000000..aa82b5d1
--- /dev/null
+++ b/src/pages/main/components/performance/Performance.Cardstyled.ts
@@ -0,0 +1,62 @@
+import styled from "styled-components";
+import { Subtract } from "@assets/svgs";
+
+export const PerformanceCardWrapper = styled.section`
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ align-items: start;
+`;
+
+export const PerformanceImg = styled.image`
+ position: relative;
+ width: 15.7rem;
+ height: 22.4rem;
+
+ background-color: white;
+ border-radius: 0.6rem;
+`;
+
+export const SubtractBox = styled(Subtract)`
+ position: absolute;
+ width: 3.6rem;
+ height: 2.4rem;
+ margin-top: 1rem;
+`;
+
+export const DueDate = styled.div`
+ position: absolute;
+ margin: 1.3rem 0 0 0.6rem;
+
+ color: ${({ theme }) => theme.colors.pink_400};
+
+ ${({ theme }) => theme.fonts["caption1-semi"]};
+`;
+
+export const PerformanceTitleWrapper = styled.section`
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+`;
+
+export const PerformanceTitle = styled.div`
+ width: 15.6rem;
+ overflow: hidden;
+
+ color: ${({ theme }) => theme.colors.white};
+ ${({ theme }) => theme.fonts["body1-normal-semi"]};
+ white-space: nowrap;
+ text-overflow: ellipsis;
+`;
+
+export const PerformancePeriod = styled.div`
+ color: ${({ theme }) => theme.colors.gray_500};
+
+ ${({ theme }) => theme.fonts["caption1-semi"]};
+`;
+
+export const PerformancePrice = styled.div`
+ color: ${({ theme }) => theme.colors.white};
+
+ ${({ theme }) => theme.fonts["body2-normal-semi"]};
+`;
diff --git a/src/pages/main/components/performance/Performance.styled.ts b/src/pages/main/components/performance/Performance.styled.ts
new file mode 100644
index 00000000..d2f1ef55
--- /dev/null
+++ b/src/pages/main/components/performance/Performance.styled.ts
@@ -0,0 +1,29 @@
+import styled from "styled-components";
+
+export const PerformanceWrapper = styled.section`
+ padding: 2.4rem;
+
+ color: ${({ theme }) => theme.colors.gray_900};
+`;
+
+export const PerformanceLayout = styled.section`
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 1.5rem 1.3rem;
+`;
+
+export const BannerWrapper = styled.button`
+ width: auto;
+`;
+
+export const Banner = styled.div<{ $image: string }>`
+ display: flex;
+ width: 32.7rem;
+ height: 9.2rem;
+
+ background-image: url(${({ $image }) => $image});
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: cover;
+ border-radius: 0.6rem;
+`;
diff --git a/src/pages/main/components/performance/Performance.tsx b/src/pages/main/components/performance/Performance.tsx
new file mode 100644
index 00000000..df65f258
--- /dev/null
+++ b/src/pages/main/components/performance/Performance.tsx
@@ -0,0 +1,51 @@
+import * as S from "./Performance.styled";
+import { useNavigate } from "react-router-dom";
+
+import Spacing from "@components/commons/spacing/Spacing";
+import PerformnaceCard from "./PerformnaceCard";
+import BannerImg from "../../../../assets/images/banner_basic.png";
+
+import { dummyData } from "./dummyData";
+
+const Performance = ({ genre }: { genre: string }) => {
+ const navigate = useNavigate();
+
+ const handleNavigate = () => {
+ navigate("/register");
+ };
+
+ // 이 위치에 API로 불러온 배열 넣기
+ const data = dummyData.performanceList;
+
+ const filteredData = genre === "ALL" ? data : data.filter((item) => item.genre === genre);
+
+ const sortData = filteredData
+ .filter((item) => item.dueDate >= 1)
+ .sort((a, b) => a.dueDate - b.dueDate);
+
+ const data1 = sortData.slice(0, 4);
+ const data2 = sortData.slice(4);
+
+ return (
+
+
+ {data1.map((item) => (
+
+ ))}
+
+
+
+
+
+
+
+ {data2.map((item) => (
+
+ ))}
+
+
+
+ );
+};
+
+export default Performance;
diff --git a/src/pages/main/components/performance/PerformnaceCard.tsx b/src/pages/main/components/performance/PerformnaceCard.tsx
new file mode 100644
index 00000000..a19c989e
--- /dev/null
+++ b/src/pages/main/components/performance/PerformnaceCard.tsx
@@ -0,0 +1,22 @@
+import * as S from "./Performance.Cardstyled";
+
+const PerformnaceCard = ({ ...item }) => {
+ return (
+
+
+ {item.dueDate <= 5 ? (
+ <>
+
+ D-{item.dueDate}
+ >
+ ) : null}
+
+ {item.performanceTitle}
+ {item.performancePeriod}
+ {item.ticketPrice.toLocaleString("en-US")}원
+
+
+ );
+};
+
+export default PerformnaceCard;
diff --git a/src/pages/main/components/performance/dummyData.ts b/src/pages/main/components/performance/dummyData.ts
new file mode 100644
index 00000000..2054cee0
--- /dev/null
+++ b/src/pages/main/components/performance/dummyData.ts
@@ -0,0 +1,88 @@
+export const dummyData = {
+ promotionList: [
+ {
+ promotionId: 1,
+ promotionPhoto: "홍보이미지 URL",
+ performanceId: 1,
+ },
+ {
+ promotionId: 2,
+ promotionPhoto: "홍보이미지2 URL",
+ performanceId: 2,
+ },
+ ],
+ performanceList: [
+ {
+ performanceId: 1,
+ performanceTitle: "새소년 밴드",
+ performancePeriod: "2023.12.28",
+ ticketPrice: 5000,
+ dueDate: 1,
+ genre: "BAND",
+ posterImage: "포스터 사진 URL",
+ },
+ {
+ performanceId: 2,
+ performanceTitle: "정도영 댄스 공연",
+ performancePeriod: "2023.12.29~2023.12.30",
+ ticketPrice: 5000,
+ dueDate: 2,
+ genre: "DANCE",
+ posterImage: "포스터 사진 URL",
+ },
+ {
+ performanceId: 3,
+ performanceTitle: "오늘 하는 공연",
+ performancePeriod: "2023.12.28",
+ ticketPrice: 5000,
+ dueDate: 0,
+ genre: "ETC",
+ posterImage: "포스터 사진 URL",
+ },
+ {
+ performanceId: 4,
+ performanceTitle: "4번째 공연",
+ performancePeriod: "2023.12.29~2023.12.30",
+ ticketPrice: 5000,
+ dueDate: 4,
+ genre: "PLAY",
+ posterImage: "포스터 사진 URL",
+ },
+ {
+ performanceId: 5,
+ performanceTitle: "다섯다섯다섯다섯다섯다섯다섯",
+ performancePeriod: "2023.12.28",
+ ticketPrice: 5000,
+ dueDate: 3,
+ genre: "DANCE",
+ posterImage: "포스터 사진 URL",
+ },
+ {
+ performanceId: 6,
+ performanceTitle: "비트연극 정기공연",
+ performancePeriod: "2023.12.29~2023.12.30",
+ ticketPrice: 5000,
+ dueDate: 6,
+ genre: "PLAY",
+ posterImage: "포스터 사진 URL",
+ },
+ {
+ performanceId: 7,
+ performanceTitle: "비트밴드 정기공연",
+ performancePeriod: "2023.12.28",
+ ticketPrice: 5000,
+ dueDate: 4,
+ genre: "ETC",
+ posterImage: "포스터 사진 URL",
+ },
+ {
+ performanceId: 8,
+ performanceTitle: "비트연극 정기공연",
+ performancePeriod: "2023.12.29~2023.12.30",
+ ticketPrice: 5000,
+ dueDate: 5,
+ genre: "PLAY",
+ posterImage: "포스터 사진 URL",
+ },
+ ],
+};
diff --git a/src/pages/main/constants/chipList.ts b/src/pages/main/constants/chipList.ts
new file mode 100644
index 00000000..f39afdce
--- /dev/null
+++ b/src/pages/main/constants/chipList.ts
@@ -0,0 +1,8 @@
+import { IconSmallMusical, IconSmallBand, IconSmallDance, IconSmallEtc } from "@assets/svgs";
+
+export const CHIP_LIST = [
+ { label: "연극/뮤지컬", genre: "PLAY", icon: IconSmallMusical },
+ { label: "밴드", genre: "BAND", icon: IconSmallBand },
+ { label: "댄스", genre: "DANCE", icon: IconSmallDance },
+ { label: "기타", genre: "ETC", icon: IconSmallEtc },
+];
diff --git a/src/routes/Router.tsx b/src/routes/Router.tsx
index 55747dcc..0ce60cf0 100644
--- a/src/routes/Router.tsx
+++ b/src/routes/Router.tsx
@@ -10,6 +10,7 @@ import ModalTest from "@pages/modalTest/ModalTest";
import MyRegisterdShow from "@pages/MyRegisterdShow/MyRegisterdShow";
import NonMbLookup from "@pages/nonMbLookup/NonMbLookup";
import Register from "@pages/register/Register";
+import Main from "@pages/main/Main";
import TestPage from "@pages/test/TestPage";
import TicketHolderList from "@pages/ticketholderlist/TicketHolderList";
import KakaoLoginTest from "@pages/KakaoLoginTest";
@@ -69,6 +70,8 @@ const router = createBrowserRouter([
// element: ,
// },
{ path: "/testpage", element: },
+ { path: "/myregisteredshow", element: },
+ { path: "/main", element: },
// ...
]);