diff --git a/src/api/search/index.ts b/src/api/search/index.ts deleted file mode 100644 index 1c8cc742..00000000 --- a/src/api/search/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { FetchShopsResponse, FetchTrendingsResponse, ShopsParams } from './entity'; -import searchApi from './searchApiClient'; - -export const fetchTrendings = () => searchApi.get('/trending'); - -export const fetchShop = (shopId: string) => searchApi.get(`/shop?place_id=${shopId}`); - -export const fetchShops = (params: ShopsParams) => searchApi.post(`/shops?keyword=${params.keyword}`, { - lat: params.location?.latitude, - lng: params.location?.longitude, -}); diff --git a/src/api/search/entity.ts b/src/api/shop/entity.ts similarity index 60% rename from src/api/search/entity.ts rename to src/api/shop/entity.ts index 7faa2246..822c652d 100644 --- a/src/api/search/entity.ts +++ b/src/api/shop/entity.ts @@ -1,3 +1,21 @@ +export interface FilterShopsParams { + options_friend: 0 | 1; + options_nearby: 0 | 1; + options_scrap: 0 | 1; + location?: Coords; +} + +export interface FilterShopsResponse { + geometry: { + location: Coords; + }; + name: string; + photo: null | string[]; + placeId: string; +} + +export type FilterShopsListResponse = FilterShopsResponse[]; + export interface FetchTrendingsResponse { trendings: string[] } @@ -30,6 +48,6 @@ export interface Shop { } export interface Coords { - latitude: number, - longitude: number + lat: number | undefined; + lng: number | undefined; } diff --git a/src/api/shop/index.ts b/src/api/shop/index.ts new file mode 100644 index 00000000..d25fe010 --- /dev/null +++ b/src/api/shop/index.ts @@ -0,0 +1,19 @@ +import { + Coords, FetchShopsResponse, FetchTrendingsResponse, FilterShopsParams, + FilterShopsListResponse, ShopsParams, +} from './entity'; +import shopApi from './shopApiClient'; + +export const fetchTrendings = () => shopApi.get('/trending'); + +export const fetchShop = (shopId: string) => shopApi.get(`/shop?place_id=${shopId}`); + +export const fetchShops = (params: ShopsParams) => shopApi.post(`/shops?keyword=${params.keyword}`, { + lat: params.location?.lat, + lng: params.location?.lng, +}); + +export const getfilterShops = (params: FilterShopsParams, location: Coords) => shopApi.post(`/shops/maps?options_friend=${params.options_friend}&options_nearby=${params.options_nearby}&options_scrap=${params.options_scrap}`, { + lat: location.lat, + lng: location.lng, +}); diff --git a/src/api/search/searchApiClient.ts b/src/api/shop/shopApiClient.ts similarity index 79% rename from src/api/search/searchApiClient.ts rename to src/api/shop/shopApiClient.ts index 82054259..fa5d2cec 100644 --- a/src/api/search/searchApiClient.ts +++ b/src/api/shop/shopApiClient.ts @@ -1,12 +1,12 @@ import axios from 'axios'; import { API_PATH } from 'config/constants'; -const searchApi = axios.create({ +const shopApi = axios.create({ baseURL: `${API_PATH}`, timeout: 2000, }); -searchApi.interceptors.request.use( +shopApi.interceptors.request.use( (config) => { const accessToken = sessionStorage.getItem('accessToken'); // eslint-disable-next-line no-param-reassign @@ -15,4 +15,4 @@ searchApi.interceptors.request.use( }, ); -export default searchApi; +export default shopApi; diff --git a/src/assets/images/home/selected-marker.png b/src/assets/images/home/selected-marker.png index 2f0a2d5d..47b06b64 100644 Binary files a/src/assets/images/home/selected-marker.png and b/src/assets/images/home/selected-marker.png differ diff --git a/src/assets/svg/common/home.svg b/src/assets/svg/common/home.svg deleted file mode 100644 index 1e298368..00000000 --- a/src/assets/svg/common/home.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/svg/common/my-page.svg b/src/assets/svg/common/my-page.svg deleted file mode 100644 index 7bf32308..00000000 --- a/src/assets/svg/common/my-page.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/assets/svg/common/nav-sprite.svg b/src/assets/svg/common/nav-sprite.svg new file mode 100644 index 00000000..3a599285 --- /dev/null +++ b/src/assets/svg/common/nav-sprite.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/common/setting.svg b/src/assets/svg/common/setting.svg deleted file mode 100644 index ea7f7e4d..00000000 --- a/src/assets/svg/common/setting.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/assets/svg/common/write.svg b/src/assets/svg/common/write.svg deleted file mode 100644 index 4e079dde..00000000 --- a/src/assets/svg/common/write.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/components/common/BottomNavigation/BottomNavigation.module.scss b/src/components/common/BottomNavigation/BottomNavigation.module.scss index 1d4294af..260a8090 100644 --- a/src/components/common/BottomNavigation/BottomNavigation.module.scss +++ b/src/components/common/BottomNavigation/BottomNavigation.module.scss @@ -6,6 +6,7 @@ left: 0; width: 100%; height: 80px; + background-color: #ffffff; } .tab { diff --git a/src/components/common/BottomNavigation/index.tsx b/src/components/common/BottomNavigation/index.tsx index 8ad972d1..a3546013 100644 --- a/src/components/common/BottomNavigation/index.tsx +++ b/src/components/common/BottomNavigation/index.tsx @@ -1,30 +1,30 @@ -import { ReactComponent as HomeIcon } from 'assets/svg/common/home.svg'; -import { ReactComponent as WriteIcon } from 'assets/svg/common/write.svg'; -import { ReactComponent as MyPageIcon } from 'assets/svg/common/my-page.svg'; import { Link, useLocation } from 'react-router-dom'; import cn from 'utils/ts/classNames'; +import { useAuth } from 'store/auth'; import styles from './BottomNavigation.module.scss'; - -const NAV_TABS = [ - { - pathname: '/', - icon: HomeIcon, - text: '홈', - }, - { - pathname: '/search', - icon: WriteIcon, - text: '글쓰기', - }, - { - pathname: '/profile', - icon: MyPageIcon, - text: '마이페이지', - }, -]; +import SpriteSvg from '../SpriteSvg'; export default function BottomNavigation(): JSX.Element { const { pathname } = useLocation(); + const auth = useAuth(); + + const NAV_TABS = [ + { + pathname: '/', + icon: 'home', + text: '홈', + }, + { + pathname: '/post', + icon: 'write', + text: '글쓰기', + }, + { + pathname: auth ? '/profile' : '/login', + icon: 'my-page', + text: '마이페이지', + }, + ]; return (