diff --git a/package.json b/package.json index a0a615dc..a030571c 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "path-to-regexp": "^8.2.0", "react": "^19", "react-datepicker": "^7.4.0", + "react-daum-postcode": "^3.2.0", "react-dom": "^19", "react-error-boundary": "^4.1.2", "react-hook-form": "^7.53.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1af55a5..d954e936 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -71,6 +71,9 @@ importers: react-datepicker: specifier: ^7.4.0 version: 7.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-daum-postcode: + specifier: ^3.2.0 + version: 3.2.0(react@19.0.0) react-dom: specifier: ^19 version: 19.0.0(react@19.0.0) @@ -5472,6 +5475,11 @@ packages: react: ^16.9.0 || ^17 || ^18 react-dom: ^16.9.0 || ^17 || ^18 + react-daum-postcode@3.2.0: + resolution: {integrity: sha512-NHY8TUicZXMqykbKYT8kUo2PEU7xu1DFsdRmyWJrLEUY93Xhd3rEdoJ7vFqrvs+Grl9wIm9Byxh3bI+eZxepMQ==} + peerDependencies: + react: '>=16.8.0' + react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -12757,6 +12765,10 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + react-daum-postcode@3.2.0(react@19.0.0): + dependencies: + react: 19.0.0 + react-docgen-typescript@2.2.2(typescript@5.5.4): dependencies: typescript: 5.5.4 diff --git a/src/app/providers/google-map-provider.tsx b/src/app/providers/google-map-provider.tsx new file mode 100644 index 00000000..5fa9deb9 --- /dev/null +++ b/src/app/providers/google-map-provider.tsx @@ -0,0 +1,10 @@ +'use client' + +import { APIProvider } from '@vis.gl/react-google-maps' +import { ReactNode } from 'react' + +export const GoogleMapProvider = ({ children }: { children: ReactNode }) => { + const apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY || '' + + return {children} +} diff --git a/src/app/providers/index.tsx b/src/app/providers/index.tsx index 50ec8c2d..7f9eea6b 100644 --- a/src/app/providers/index.tsx +++ b/src/app/providers/index.tsx @@ -1,6 +1,7 @@ import { SessionProvider } from 'next-auth/react' import { ReactNode } from 'react' +import { GoogleMapProvider } from './google-map-provider' import { MSWProvider } from './msw-provider' import { QueryProvider } from './query-provider' import { ToastProvider } from './toast-provider' @@ -15,7 +16,9 @@ export const AppProviders = ({ basePath, children }: Props) => { - {children} + + {children} + diff --git a/src/entities/job-post/config/location.ts b/src/entities/job-post/config/location.ts index 070a4a9b..c8d7a0b0 100644 --- a/src/entities/job-post/config/location.ts +++ b/src/entities/job-post/config/location.ts @@ -1,19 +1,19 @@ export enum Location { - SEOUL = 'Seoul', - BUSAN = 'Busan', - DAEGU = 'Daegu', - INCHEON = 'Incheon', - GWANGJU = 'Gwangju', - DAEJEON = 'Daejeon', - ULSAN = 'Ulsan', - SEJONG = 'Sejong', - GYEONGGI = 'Gyeonggi', - GANGWON = 'Gangwon', - CHUNGBUK = 'Chungcheongbuk-do', - CHUNGNAM = 'Chungcheongnam-do', - JEONBUK = 'Jeollabuk-do', - JEONNAM = 'Jeollanam-do', - GYEONGBUK = 'Gyeongsangbuk-do', - GYEONGNAM = 'Gyeongsangnam-do', - JEJU = 'Jeju', + SEOUL = 'SEOUL', + BUSAN = 'BUSAN', + DAEGU = 'DAEGU', + INCHEON = 'INCHEON', + GWANGJU = 'GWANGJU', + DAEJEON = 'DAEJEON', + ULSAN = 'ULSAN', + SEJONG = 'SEJONG', + GYEONGGI = 'GYEONGGI', + GANGWON = 'GANGWON', + CHUNGBUK = 'CHUNGBUK', + CHUNGNAM = 'CHUNGNAM', + JEONBUK = 'JEONBUK', + JEONNAM = 'JEONNAM', + GYEONGBUK = 'GYEONGBUK', + GYEONGNAM = 'GYEONGNAM', + JEJU = 'JEJU', } diff --git a/src/entities/job-post/ui/academy-address/index.tsx b/src/entities/job-post/ui/academy-address/index.tsx index b9e4ebe5..9e006b68 100644 --- a/src/entities/job-post/ui/academy-address/index.tsx +++ b/src/entities/job-post/ui/academy-address/index.tsx @@ -1,6 +1,6 @@ 'use client' -import { AdvancedMarker, APIProvider, Map } from '@vis.gl/react-google-maps' +import { AdvancedMarker, Map } from '@vis.gl/react-google-maps' import React from 'react' const Pin = () => { @@ -29,22 +29,18 @@ type Props = { } const AcademyAddress = ({ address, lat, lng }: Props) => { - const apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY || '' - return (
- - - - - - - + + + + +
{address ?? '-'}
diff --git a/src/entities/job-post/ui/posting-title/index.tsx b/src/entities/job-post/ui/posting-title/index.tsx index 8f767735..16f28eed 100644 --- a/src/entities/job-post/ui/posting-title/index.tsx +++ b/src/entities/job-post/ui/posting-title/index.tsx @@ -1,5 +1,6 @@ import { format } from 'date-fns' -import { capitalize } from 'lodash-es' +import { lowerCase } from 'lodash-es' +import { useTranslations } from 'next-intl' import { colors } from 'shared/config' import { cn } from 'shared/lib' @@ -15,6 +16,8 @@ type Props = { } export const PostingTitle = ({ jobPost, size }: Props) => { + const t = useTranslations() + const studentType = convertStudentType({ forKindergarten: jobPost.forKindergarten, forElementary: jobPost.forElementary, @@ -32,7 +35,9 @@ export const PostingTitle = ({ jobPost, size }: Props) => {