diff --git a/src/app/home/components/Banner/Banner.css.ts b/src/app/home/components/Banner/Banner.css.ts new file mode 100644 index 0000000..87d5dd2 --- /dev/null +++ b/src/app/home/components/Banner/Banner.css.ts @@ -0,0 +1,51 @@ +import { style } from '@vanilla-extract/css'; + +export const bannerLayout = style({ + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + gap: '1.2rem', +}); + +export const bannerWrapper = style({ + position: 'relative', + height: '15vh', + display: 'flex', + alignItems: 'center', +}); + +export const navigationLeft = style({ + position: 'absolute', + left: '1.6rem', +}); + +export const bannerCarousel = style({ + position: 'relative', + overflow: 'hidden', +}); + +export const carouselContainer = style({ + display: 'flex', + transition: 'all 1s', +}); + +export const navigationRight = style({ + position: 'absolute', + right: '1.6rem', +}); + +export const bannerImage = style({ + width: '100%', + height: 'auto', +}); + +export const slideCircleContainer = style({ + display: 'flex', + gap: '0.6rem', +}); + +export const slideCircle = style({ + borderRadius: '50%', + width: '0.6rem', + height: '0.6rem', +}); diff --git a/src/app/home/components/Banner/Banner.styles.ts b/src/app/home/components/Banner/Banner.styles.ts deleted file mode 100644 index 26cbcdf..0000000 --- a/src/app/home/components/Banner/Banner.styles.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { css } from '@emotion/react'; - -export const bannerLayout = css` - display: flex; - flex-direction: column; - align-items: center; - gap: 1.2rem; -`; - -export const bannerWrapper = css` - position: relative; - height: 15vh; - display: flex; - align-items: center; -`; - -export const navigationLeft = css` - position: absolute; - left: 1.6rem; -`; - -export const bannerCarousel = css` - position: relative; - overflow: hidden; -`; - -export const carouselContainer = css` - display: flex; - transition: all 1s; -`; - -export const navigationRight = css` - position: absolute; - right: 1.6rem; -`; - -export const bannerImage = css` - width: 100%; - height: auto; -`; - -export const slideCircleContainer = css` - display: flex; - gap: 0.6rem; -`; - -export const slideCircle = css` - border-radius: 50%; - width: 0.6rem; - height: 0.6rem; -`; diff --git a/src/app/home/components/Banner/Banner.tsx b/src/app/home/components/Banner/Banner.tsx index 22afc7f..1094b96 100644 --- a/src/app/home/components/Banner/Banner.tsx +++ b/src/app/home/components/Banner/Banner.tsx @@ -11,7 +11,7 @@ import { carouselContainer, navigationLeft, navigationRight, -} from './Banner.styles'; +} from './Banner.css'; import BannerImage from '@/assets/images/banner.svg'; import Icon from '@/components/Icon'; @@ -31,26 +31,26 @@ const Banner = () => { }; return ( -
-
-
+
+
+
- 배너1 - 배너2 - 배너3 + 배너1 + 배너2 + 배너3
- -
diff --git a/src/app/home/components/PostCard/PostCard.css.ts b/src/app/home/components/PostCard/PostCard.css.ts new file mode 100644 index 0000000..d3e656c --- /dev/null +++ b/src/app/home/components/PostCard/PostCard.css.ts @@ -0,0 +1,88 @@ +import { style } from '@vanilla-extract/css'; + +import { colors } from '@/styles/colors'; +import { fonts } from '@/styles/fonts.css'; + +export const postCardLayout = style({ + display: 'flex', + flexDirection: 'column', + justifyContent: 'space-between', + gap: '1.6rem', + + border: 'none', + borderRadius: '1.2rem', + + height: '20rem', + padding: '1.6rem 2rem', + backgroundColor: colors.field01, + + selectors: { + '&:hover': { + boxShadow: '0px 4px 16px rgba(53, 59, 61, 0.08)', + }, + }, +}); + +export const postHeader = style({ + display: 'flex', + flexDirection: 'column', + gap: '0.8rem', +}); + +export const postCardHeader = style({ + display: 'flex', + justifyContent: 'space-between', + alignItems: 'center', + gap: '1.6rem', +}); + +export const postLocation = style({ + ...fonts.label.medium.R13, + color: colors.text03, +}); + +export const postCardRightHeader = style({ + display: 'flex', + alignItems: 'center', + gap: '0.4rem', +}); + +export const postViews = style({ + ...fonts.label.medium.R13, + color: colors.text03, +}); + +export const postTitle = style({ + ...fonts.title.small.SB18, + color: colors.text06, +}); + +export const contactedPostTag = style({ + width: 'fit-content', + padding: '0.6rem 0.85rem', + ...fonts.label.small.SB12, + color: colors.text05, + backgroundColor: colors.field03, + borderRadius: '3rem', +}); + +export const postRewardContainer = style({ + display: 'flex', + gap: '0.8rem', + alignItems: 'center', +}); + +export const announceText = style({ + ...fonts.label.medium.M13, + color: colors.text03, +}); + +export const postReward = style({ + ...fonts.label.medium.SB13, + color: colors.primaryMint, +}); + +export const postDate = style({ + ...fonts.label.medium.M13, + color: colors.text04, +}); diff --git a/src/app/home/components/PostCard/PostCard.styles.ts b/src/app/home/components/PostCard/PostCard.styles.ts deleted file mode 100644 index fee3c45..0000000 --- a/src/app/home/components/PostCard/PostCard.styles.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { css, Theme } from '@emotion/react'; - -export const postCardLayout = (theme: Theme) => css` - display: flex; - flex-direction: column; - gap: 1.6rem; - border: 1px solid black; - padding: 1.6rem 2rem; - - border: none; - border-radius: 1.2rem; - justify-content: space-between; - height: 20rem; - background-color: ${theme.colors.field01}; - - &:hover { - box-shadow: 0px 4px 16px rgba(53, 59, 61, 0.08); - } -`; - -export const postHeader = css` - display: flex; - flex-direction: column; - gap: 0.8rem; -`; - -export const postCardHeader = css` - display: flex; - justify-content: space-between; - align-items: center; - gap: 1.6rem; -`; - -export const postLocation = (theme: Theme) => css` - ${theme.fonts.label.medium.R13}; - color: ${theme.colors.text03}; -`; - -export const postCardRightHeader = css` - display: flex; - align-items: center; - gap: 0.4rem; -`; - -export const postViews = (theme: Theme) => css` - ${theme.fonts.label.medium.R13}; - color: ${theme.colors.text03}; -`; - -export const postTitle = (theme: Theme) => css` - ${theme.fonts.title.small.SB18}; - color: ${theme.colors.text06}; -`; - -export const contactedPostTag = (theme: Theme) => css` - width: fit-content; - padding: 0.6rem 0.85rem; - ${theme.fonts.label.small.SB12}; - color: ${theme.colors.text05}; - background-color: ${theme.colors.field03}; - border-radius: 3rem; -`; - -export const postRewardContainer = css` - display: flex; - gap: 0.8rem; - align-items: center; -`; - -export const announceText = (theme: Theme) => css` - ${theme.fonts.label.medium.M13}; - color: ${theme.colors.text03}; -`; - -export const postReward = (theme: Theme) => css` - ${theme.fonts.label.medium.SB13}; - color: ${theme.colors.primaryMint}; -`; - -export const postDate = (theme: Theme) => css` - ${theme.fonts.label.medium.M13}; - color: ${theme.colors.text04}; -`; diff --git a/src/app/home/components/PostCard/PostCard.tsx b/src/app/home/components/PostCard/PostCard.tsx index dd573fd..8258577 100644 --- a/src/app/home/components/PostCard/PostCard.tsx +++ b/src/app/home/components/PostCard/PostCard.tsx @@ -13,7 +13,7 @@ import { postRewardContainer, postTitle, postViews, -} from './PostCard.styles'; +} from './PostCard.css'; import { formatPostDate } from '../../home.utils'; import Icon from '@/components/Icon'; @@ -31,27 +31,27 @@ const PostCard = ({ post }: PostCardProps) => { return (
  • - -
    -
    - {univName} -
    + +
    +
    + {univName ? univName : '비대면'} +
    - {views} + {views}
    -

    {title}

    +

    {title}

    {recruitStatus ? ( <> -
    - 보상 - {reward} +
    + 보상 + {reward}
    -
    - 일시 - +
    + 일시 + {formatPostDate({ startDate: durationInfo.startDate, endDate: durationInfo.endDate, @@ -60,7 +60,7 @@ const PostCard = ({ post }: PostCardProps) => {
    ) : ( -
    +
    모집 완료
    )} diff --git a/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.css.ts b/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.css.ts new file mode 100644 index 0000000..b1ab253 --- /dev/null +++ b/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.css.ts @@ -0,0 +1,30 @@ +import { style } from '@vanilla-extract/css'; + +import { colors } from '@/styles/colors'; +import { fonts } from '@/styles/fonts.css'; + +export const emptyPostCardLayout = style({ + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + gap: '1.6rem', + height: '30.8rem', +}); + +export const emptyPostCardContent = style({ + display: 'flex', + flexDirection: 'column', + gap: '0.8rem', + textAlign: 'center', +}); + +export const emptyListTitle = style({ + ...fonts.body.normal.M16, + color: colors.text04, +}); + +export const emptyListContent = style({ + ...fonts.label.small.M12, + color: colors.text04, +}); diff --git a/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.styles.ts b/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.styles.ts deleted file mode 100644 index b613d0a..0000000 --- a/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.styles.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { css, Theme } from '@emotion/react'; - -export const emptyPostCardLayout = css` - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: 1.6rem; - height: 30.8rem; -`; - -export const emptyPostCardContent = css` - display: flex; - flex-direction: column; - gap: 0.8rem; - text-align: center; -`; - -export const emptyListTitle = (theme: Theme) => css` - ${theme.fonts.body.normal.M16}; - color: ${theme.colors.text04}; -`; - -export const emptyListContent = (theme: Theme) => css` - ${theme.fonts.label.small.M12}; - color: ${theme.colors.text04}; -`; diff --git a/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.tsx b/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.tsx index 208770e..4682729 100644 --- a/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.tsx +++ b/src/app/home/components/PostCardList/EmptyPostCard/EmptyPostCard.tsx @@ -5,17 +5,17 @@ import { emptyListTitle, emptyPostCardContent, emptyPostCardLayout, -} from './EmptyPostCard.styles'; +} from './EmptyPostCard.css'; import Icon from '@/components/Icon'; const EmptyPostCard = () => { return ( -
    +
    -
    -

    검색 결과가 없어요

    -
    +
    +

    검색 결과가 없어요

    +
    조건을 다르게 하면
    좋은 공고가 더 많을지도 몰라요 diff --git a/src/app/home/components/PostCardList/PostCardList.css.ts b/src/app/home/components/PostCardList/PostCardList.css.ts new file mode 100644 index 0000000..2d5fb03 --- /dev/null +++ b/src/app/home/components/PostCardList/PostCardList.css.ts @@ -0,0 +1,7 @@ +import { style } from '@vanilla-extract/css'; + +export const postCardListLayout = style({ + display: 'grid', + gridTemplateColumns: '1fr 1fr 1fr', + gap: '1.2rem', +}); diff --git a/src/app/home/components/PostCardList/PostCardList.styles.ts b/src/app/home/components/PostCardList/PostCardList.styles.ts deleted file mode 100644 index 1a2fae6..0000000 --- a/src/app/home/components/PostCardList/PostCardList.styles.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { css } from '@emotion/react'; - -export const postCardListLayout = css` - display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 1.2rem; -`; diff --git a/src/app/home/components/PostCardList/PostCardList.tsx b/src/app/home/components/PostCardList/PostCardList.tsx index aed1284..0595bc4 100644 --- a/src/app/home/components/PostCardList/PostCardList.tsx +++ b/src/app/home/components/PostCardList/PostCardList.tsx @@ -1,6 +1,6 @@ -import { postCardListLayout } from './PostCardList.styles'; import PostCard from '../PostCard/PostCard'; import EmptyPostCard from './EmptyPostCard/EmptyPostCard'; +import { postCardListLayout } from './PostCardList.css'; import { Post } from '@/types/post'; @@ -18,7 +18,7 @@ const PostCardList = ({ postList }: PostCardListProps) => { } return ( -
      +
        {postList.map((post) => ( ))} diff --git a/src/app/home/components/PostContainer/AreaFilter/AreaFilter.css.ts b/src/app/home/components/PostContainer/AreaFilter/AreaFilter.css.ts new file mode 100644 index 0000000..b2c66b8 --- /dev/null +++ b/src/app/home/components/PostContainer/AreaFilter/AreaFilter.css.ts @@ -0,0 +1,211 @@ +import { style } from '@vanilla-extract/css'; +import { recipe } from '@vanilla-extract/recipes'; + +import { colors } from '@/styles/colors'; +import { fonts } from '@/styles/fonts.css'; + +// Popover Trigger (동적 색상은 CSS 변수로 처리) +export const triggerWrapper = style({ + ...fonts.label.large.SB14, + color: 'var(--trigger-color)', + backgroundColor: 'var(--trigger-bg)', + display: 'flex', + alignItems: 'center', + gap: '0.4rem', + padding: '0.5rem 1.4rem', + borderRadius: '1.2rem', + selectors: { + '&:hover': { + boxShadow: '0px 4px 16px rgba(53, 59, 61, 0.2)', + }, + }, +}); + +// Popover Content 영역 +export const regionContentContainer = style({ + backgroundColor: colors.field01, + position: 'relative', + top: '0.8rem', + display: 'flex', + flexDirection: 'column', + gap: '1.2rem', + width: '36.4rem', + height: '35rem', + padding: '1.2rem', + borderRadius: '1.2rem', + boxShadow: '0px 4px 16px rgba(53, 59, 61, 0.2)', +}); + +// 내부 레이아웃 +export const contentWrapper = style({ + backgroundColor: colors.field02, + borderRadius: '1.2rem', + display: 'flex', +}); + +// 지역 목록 컨테이너 +export const areaListContainer = style({ + flex: '0.5', + display: 'flex', + flexDirection: 'column', + gap: '0.4rem', + padding: '1.2rem 0.8rem', + backgroundColor: colors.field02, + borderRadius: '1.2rem', + height: '28rem', + overflow: 'scroll', +}); + +// 기본 텍스트 스타일 +export const areaName = style({ + ...fonts.label.large.M14, + color: colors.text06, +}); + +// 선택된 지역 텍스트 스타일 +export const selectedAreaName = style({ + color: colors.textPrimary, +}); + +// 숫자 표시 스타일 +export const areaCount = style({ + ...fonts.label.medium.R13, + color: colors.text03, +}); + +// 지역 버튼을 recipe로 정의 (selected 여부에 따라 스타일이 변경됨) +export const areaButtonRecipe = recipe({ + base: { + display: 'flex', + gap: '0.4rem', + alignItems: 'center', + padding: '0.6rem 1.2rem', + borderRadius: '1.2rem', + }, + variants: { + selected: { + true: { + backgroundColor: colors.primaryTinted, + outline: `0.1rem solid ${colors.lineTinted}`, + fontWeight: 'bold', + }, + false: { + selectors: { + '&:hover': { + backgroundColor: colors.field03, + }, + }, + }, + }, + }, + defaultVariants: { + selected: false, + }, +}); + +// 세로 구분선 +export const verticalLine = style({ + position: 'relative', + selectors: { + '&::after': { + content: '""', + width: '0.1rem', + height: '100%', + position: 'absolute', + top: '50%', + right: '0', + transform: 'translateY(-50%)', + backgroundColor: colors.line01, + }, + '&:last-child::after': { + display: 'none', + }, + }, +}); + +// 서브 지역 리스트 컨테이너 +export const subAreaListContainer = style({ + flex: 1, + display: 'flex', + flexDirection: 'column', + gap: '0.4rem', + height: '28rem', + overflow: 'scroll', + padding: '1.2rem 0.8rem', + borderRadius: '1.2rem', +}); + +// 서브 지역 항목 (label) 기본 스타일 +export const subAreaItem = style({ + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + gap: '0.4rem', + height: '100%', + padding: '0.6rem 0.8rem', + borderRadius: '1.2rem', +}); + +// 선택된 서브 지역 항목 스타일 +export const selectedSubAreaLabel = style({ + outline: `0.1rem solid ${colors.lineTinted}`, + backgroundColor: colors.primaryTinted, +}); + +// 체크박스 숨김 처리 +export const checkbox = style({ + position: 'absolute', + opacity: 0, + pointerEvents: 'none', +}); + +// 서브 지역 정보 컨테이너 +export const subAreaInfo = style({ + display: 'flex', + gap: '0.4rem', + alignItems: 'center', +}); + +// placeholder (지역 미선택 시) +export const placeholderArea = style({ + ...fonts.label.large.R14, + color: colors.text03, + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + height: '100%', +}); + +// Footer 영역들 +export const footerContainer = style({ + display: 'flex', + justifyContent: 'flex-end', +}); + +export const footerButtonContainer = style({ + display: 'flex', + gap: '0.8rem', + alignItems: 'center', +}); + +// 버튼 스타일을 recipe로 재사용 (중복되는 padding, borderRadius 등) +export const buttonRecipe = recipe({ + base: { + ...fonts.label.large.SB14, + padding: '0.6rem 1.4rem', + border: 'none', + borderRadius: '1.2rem', + }, + variants: { + type: { + reset: { + backgroundColor: colors.field03, + color: colors.text06, + }, + save: { + backgroundColor: colors.primaryMint, + color: colors.text01, + }, + }, + }, +}); diff --git a/src/app/home/components/PostContainer/AreaFilter/AreaFilter.styles.ts b/src/app/home/components/PostContainer/AreaFilter/AreaFilter.styles.ts deleted file mode 100644 index 023b641..0000000 --- a/src/app/home/components/PostContainer/AreaFilter/AreaFilter.styles.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { css, Theme } from '@emotion/react'; - -export const triggerWrapper = (theme: Theme) => css` - ${theme.fonts.label.large.SB14}; - color: ${theme.colors.text06}; - display: flex; - align-items: center; - gap: 0.4rem; - padding: 0.5rem 1.4rem; - border-radius: 1.2rem; - background-color: ${theme.colors.field01}; - - &:hover { - box-shadow: 0px 4px 16px rgba(53, 59, 61, 0.2); - } -`; - -export const regionContentContainer = (theme: Theme) => css` - background-color: ${theme.colors.field01}; - position: relative; - top: 0.8rem; - display: flex; - flex-direction: column; - gap: 1.2rem; - width: 36.4rem; - height: 35rem; - padding: 1.2rem; - border-radius: 1.2rem; - box-shadow: 0px 4px 16px rgba(53, 59, 61, 0.2); -`; - -export const contentWrapper = (theme: Theme) => css` - background-color: ${theme.colors.field02}; - border-radius: 1.2rem; - display: flex; -`; - -export const areaListContainer = (theme: Theme) => css` - flex: 0.5; - display: flex; - flex-direction: column; - gap: 0.4rem; - padding: 1.2rem 0.8rem; - background-color: ${theme.colors.field02}; - border-radius: 1.2rem; - - height: 28rem; - overflow: scroll; -`; - -export const areaName = (theme: Theme) => css` - ${theme.fonts.label.large.M14}; - color: ${theme.colors.text06}; -`; - -export const selectedAreaName = (theme: Theme) => css` - color: ${theme.colors.textPrimary}; -`; - -export const areaCount = (theme: Theme) => css` - ${theme.fonts.label.medium.R13}; - color: ${theme.colors.text03}; -`; - -export const areaButton = (theme: Theme) => css` - display: flex; - gap: 0.4rem; - align-items: center; - padding: 0.6rem 1.2rem; - border-radius: 1.2rem; - - &:hover { - background-color: ${theme.colors.field03}; - } -`; - -export const selectedAreaButton = (theme: Theme) => css` - background-color: ${theme.colors.primaryTinted}; - outline: 0.1rem solid ${theme.colors.lineTinted}; - font-weight: bold; -`; - -export const verticalLine = (theme: Theme) => css` - position: relative; - - ::after { - content: ''; - width: 0.1rem; - height: 100%; - position: absolute; - top: 50%; - right: 0; - transform: translateY(-50%); - background-color: ${theme.colors.line01}; - } - - :last-child::after { - display: none; - } -`; - -export const subAreaListContainer = css` - flex: 1; - display: flex; - flex-direction: column; - gap: 0.4rem; - height: 28rem; - overflow: scroll; - padding: 1.2rem 0.8rem; - border-radius: 1.2rem; -`; - -export const subAreaItem = css` - display: flex; - align-items: center; - justify-content: space-between; - gap: 0.4rem; - height: 100%; - padding: 0.6rem 0.8rem; - border-radius: 1.2rem; -`; - -export const selectedSubAreaLabel = (theme: Theme) => css` - outline: 0.1rem solid ${theme.colors.lineTinted}; - background-color: ${theme.colors.primaryTinted}; -`; - -export const checkbox = css` - position: absolute; - opacity: 0; - pointer-events: none; -`; - -export const subAreaInfo = css` - display: flex; - gap: 0.4rem; - align-items: center; -`; - -export const placeholderArea = (theme: Theme) => css` - ${theme.fonts.label.large.R14}; - color: ${theme.colors.text03}; - display: flex; - justify-content: center; - align-items: center; - height: 100%; -`; - -export const footerContainer = css` - display: flex; - justify-content: flex-end; -`; - -export const footerButtonContainer = css` - display: flex; - gap: 0.8rem; - align-items: center; -`; - -export const resetButton = (theme: Theme) => css` - ${theme.fonts.label.large.SB14}; - background-color: ${theme.colors.field03}; - color: ${theme.colors.text06}; - padding: 0.6rem 1.4rem; - border: none; - border-radius: 1.2rem; -`; - -export const saveButton = (theme: Theme) => css` - ${theme.fonts.label.large.SB14}; - background-color: ${theme.colors.primaryMint}; - color: ${theme.colors.text01}; - padding: 0.6rem 1.4rem; - border: none; - border-radius: 1.2rem; -`; diff --git a/src/app/home/components/PostContainer/AreaFilter/AreaFilter.tsx b/src/app/home/components/PostContainer/AreaFilter/AreaFilter.tsx index 933e597..835f244 100644 --- a/src/app/home/components/PostContainer/AreaFilter/AreaFilter.tsx +++ b/src/app/home/components/PostContainer/AreaFilter/AreaFilter.tsx @@ -1,37 +1,36 @@ 'use client'; import * as Popover from '@radix-ui/react-popover'; +import { assignInlineVars } from '@vanilla-extract/dynamic'; import { useState } from 'react'; import { - areaButton, - areaCount, + triggerWrapper, + regionContentContainer, + contentWrapper, areaListContainer, areaName, - checkbox, - contentWrapper, - footerButtonContainer, - footerContainer, - placeholderArea, - regionContentContainer, - resetButton, - saveButton, - selectedAreaButton, selectedAreaName, + areaCount, + areaButtonRecipe, + verticalLine, + subAreaListContainer, + subAreaItem, selectedSubAreaLabel, + checkbox, subAreaInfo, - subAreaItem, - subAreaListContainer, - triggerWrapper, - verticalLine, -} from './AreaFilter.styles'; + placeholderArea, + footerContainer, + footerButtonContainer, + buttonRecipe, +} from './AreaFilter.css'; import { areaMapper, subAreaMapper } from '@/app/home/home.constants'; import { Area } from '@/app/home/home.types'; import useFilterAreaQuery from '@/app/home/hooks/useFilterAreaQuery'; import useFilterSubAreaQuery from '@/app/home/hooks/useFilterSubAreaQuery'; import Icon from '@/components/Icon'; -import theme from '@/styles/theme'; +import { colors } from '@/styles/colors'; interface AreaFilterProps { onChange: (key: string, value: string | number) => void; @@ -68,13 +67,13 @@ const AreaFilter = ({ onChange }: AreaFilterProps) => { const [isSelected, setIsSelected] = useState(false); return ( - setIsOpen(open)}> + {isSelected @@ -86,49 +85,55 @@ const AreaFilter = ({ onChange }: AreaFilterProps) => { - -
        -
        + +
        +
        - {postArea?.map((area, idx) => ( ))}
        - -
        + +
        {selectedArea ? ( postSubArea?.map((subArea, idx) => (