Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
69bd8cd
feat(api): 공연장 프로필 응답 타입을 스웨거 스키마에 맞게 확장
hexdrinker Jun 11, 2026
5c9306a
feat(ui): PreviewMapWithProvider export 추가
hexdrinker Jun 11, 2026
c3fd793
feat(place): 공연장 프로필 웹뷰 앱 신규 추가
hexdrinker Jun 11, 2026
1e24414
Merge branch 'develop' into feat/boolti-place
hexdrinker Jun 22, 2026
b33035e
feat(api): 공연장 프로필 응답에 대관(rental) 정보 타입 추가
hexdrinker Jun 22, 2026
4392734
feat(place): 공연장 프로필 대관 정보 탭 구현
hexdrinker Jun 22, 2026
4774d24
feat(api): 공연장 전체 사진 목록 조회 추가
hexdrinker Jun 22, 2026
8be6d85
feat(place): 홈 탭 사진 갤러리(목록·크게보기) 및 소개 접기 구현
hexdrinker Jun 22, 2026
88387d5
fix(place): 지하철 노선 뱃지 라벨을 노선별 규칙으로 매핑
hexdrinker Jun 22, 2026
cb89c2f
feat(ui): 지하철 노선 뱃지(SubwayLineBadge) 공통 컴포넌트 추가
hexdrinker Jun 22, 2026
eb72bef
refactor(super-admin): 노선 뱃지를 @boolti/ui SubwayLineBadge로 교체
hexdrinker Jun 22, 2026
d79bfbd
feat(place): 공연장 ID 경로 라우팅 및 미매칭 경로 에러 처리
hexdrinker Jun 22, 2026
405511b
refactor(place): 문의처 버튼 3종 상시 노출 및 빈 항목 안내 토스트
hexdrinker Jun 22, 2026
55b69af
feat(super-admin): 공연장 주소 선택 시 카카오 지오코딩으로 좌표 취합
hexdrinker Jun 22, 2026
8e7fb17
refactor(place): 노선 뱃지를 @boolti/ui SubwayLineBadge로 교체
hexdrinker Jun 22, 2026
0eb441f
feat(ui): 네이버 지도 geocode Provider/훅 추가
hexdrinker Jun 24, 2026
dc855d1
refactor(super-admin): 공연장 주소 좌표 취합을 네이버 geocode로 전환
hexdrinker Jun 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions .pnp.cjs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions apps/place/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
29 changes: 29 additions & 0 deletions apps/place/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="https://boolti.in/favicon.png" />
<meta name="description" content="지금 불티에서 당신의 공연을 시작해 보세요." />
<meta property="og:title" content="핫한 공연 예매의 시작, 불티" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="핫한 공연 예매의 시작, 불티" />
<meta property="og:description" content="지금 불티에서 당신의 공연을 시작해 보세요." />
<meta property="og:url" content="https://boolti.in/" />
<meta property="og:image" content="https://boolti.in/thumbnail.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="600" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:domain" content="boolti.in" />
<meta property="twitter:url" content="https://boolti.in/" />
<meta property="twitter:title" content="핫한 공연 예매의 시작, 불티" />
<meta property="twitter:description" content="지금 불티에서 당신의 공연을 시작해 보세요." />
<meta property="twitter:image" content="/thumbnail.png" />
<link rel="canonical" href="https://boolti.in/" />
<title>핫한 공연 예매의 시작, 불티</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
38 changes: 38 additions & 0 deletions apps/place/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"name": "place",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"lint": "TIMING=1 eslint . --ext ts,tsx --report-unused-disable-directives",
"lint:fix": "TIMING=1 eslint . --ext ts,tsx --fix",
"type-check": "tsc --noEmit",
"preview": "vite preview"
},
"dependencies": {
"@boolti/api": "*",
"@boolti/bridge": "*",
"@boolti/icon": "*",
"@boolti/ui": "*",
"@emotion/react": "^11.11.3",
"@emotion/styled": "^11.11.0",
"react": "^18.2.0",
"react-compiler-runtime": "^1.0.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.21.3",
"the-new-css-reset": "^1.11.2"
},
"devDependencies": {
"@boolti/eslint-config": "*",
"@boolti/typescript-config": "*",
"@emotion/babel-plugin": "^11.11.0",
"@types/react": "^18.2.43",
"@types/react-dom": "^18.2.17",
"@vitejs/plugin-react": "^4.2.1",
"babel-plugin-react-compiler": "^1.0.0",
"typescript": "^5.2.2",
"vite": "^5.0.8"
}
}
1 change: 1 addition & 0 deletions apps/place/public/_redirects
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* /index.html 200
34 changes: 34 additions & 0 deletions apps/place/src/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import 'the-new-css-reset/css/reset.css';
import './index.css';

import { QueryClientProvider } from '@boolti/api';
import { BooltiUIProvider } from '@boolti/ui';
import { Suspense } from 'react';
import { createBrowserRouter, RouterProvider } from 'react-router-dom';

import ConcertHallPage from './pages/ConcertHallPage';
import ErrorPage from './pages/ErrorPage';

const router = createBrowserRouter([
{
path: '/:concertHallId',
element: <ConcertHallPage />,
errorElement: <ErrorPage />,
},
{
path: '*',
element: <ErrorPage />,
},
]);

const App = () => (
<QueryClientProvider>
<BooltiUIProvider>
<Suspense fallback={null}>
<RouterProvider router={router} />
</Suspense>
</BooltiUIProvider>
</QueryClientProvider>
);

export default App;
Binary file added apps/place/src/assets/images/default-hall.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions apps/place/src/components/ComingSoon/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import styled from '@emotion/styled';

const Container = styled.div`
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
height: 290px;
width: 100%;
`;

const Title = styled.span`
font-family: 'SB Aggro';
font-size: 20px;
line-height: 30px;
letter-spacing: -0.6px;
color: ${({ theme }) => theme.palette.mobile.grey.g20};
`;

const Description = styled.span`
font-size: 16px;
line-height: 24px;
color: ${({ theme }) => theme.palette.mobile.grey.g30};
`;

const ComingSoon = () => (
<Container>
<Title>COMING SOON</Title>
<Description>조금만 기다려주세요!</Description>
</Container>
);

export default ComingSoon;
Loading
Loading