diff --git a/.pnp.cjs b/.pnp.cjs index e3de4b40..5aca76e1 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -14739,7 +14739,7 @@ const RAW_RUNTIME_STATE = ["qrcode.react", "virtual:9845906954fdbefbb879db24fa8772d77a945dca59f459806df47a5b67245d4bc6502880b373cca7201062c81bea9f13f699f52de2004c037e79dbdbd5d97fb3#npm:3.1.0"],\ ["react", "npm:18.2.0"],\ ["react-dom", "virtual:de80dc576383b2386358abc0e9fe49c00e3397fe355a0337462b73ab3115c2e557eb85784ee0fe776394cc11dd020b4e84dbbd75acf72ee6d54415d82d21f5c5#npm:18.2.0"],\ - ["react-helmet", "virtual:0d9620f91cc1220bb659f4fc4375454dc3f511d634580e77befd72fe2f8a7c5971f905c99a7ff5b46030c3be1a39ff23ffff46b1a61faf7cc00e24d40b49b38f#npm:6.1.0"],\ + ["react-helmet-async", "virtual:0d9620f91cc1220bb659f4fc4375454dc3f511d634580e77befd72fe2f8a7c5971f905c99a7ff5b46030c3be1a39ff23ffff46b1a61faf7cc00e24d40b49b38f#npm:2.0.5"],\ ["react-router-dom", "virtual:0d9620f91cc1220bb659f4fc4375454dc3f511d634580e77befd72fe2f8a7c5971f905c99a7ff5b46030c3be1a39ff23ffff46b1a61faf7cc00e24d40b49b38f#npm:6.22.3"],\ ["the-new-css-reset", "npm:1.11.2"],\ ["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7"],\ @@ -16261,24 +16261,23 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["react-helmet", [\ - ["npm:6.1.0", {\ - "packageLocation": "./.yarn/cache/react-helmet-npm-6.1.0-20fd5447ff-1d2831d9c3.zip/node_modules/react-helmet/",\ + ["react-helmet-async", [\ + ["npm:2.0.5", {\ + "packageLocation": "./.yarn/cache/react-helmet-async-npm-2.0.5-f913a66ef6-f390ea8bf1.zip/node_modules/react-helmet-async/",\ "packageDependencies": [\ - ["react-helmet", "npm:6.1.0"]\ + ["react-helmet-async", "npm:2.0.5"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:0d9620f91cc1220bb659f4fc4375454dc3f511d634580e77befd72fe2f8a7c5971f905c99a7ff5b46030c3be1a39ff23ffff46b1a61faf7cc00e24d40b49b38f#npm:6.1.0", {\ - "packageLocation": "./.yarn/__virtual__/react-helmet-virtual-5233b4a808/0/cache/react-helmet-npm-6.1.0-20fd5447ff-1d2831d9c3.zip/node_modules/react-helmet/",\ + ["virtual:0d9620f91cc1220bb659f4fc4375454dc3f511d634580e77befd72fe2f8a7c5971f905c99a7ff5b46030c3be1a39ff23ffff46b1a61faf7cc00e24d40b49b38f#npm:2.0.5", {\ + "packageLocation": "./.yarn/__virtual__/react-helmet-async-virtual-9d616b1d06/0/cache/react-helmet-async-npm-2.0.5-f913a66ef6-f390ea8bf1.zip/node_modules/react-helmet-async/",\ "packageDependencies": [\ - ["react-helmet", "virtual:0d9620f91cc1220bb659f4fc4375454dc3f511d634580e77befd72fe2f8a7c5971f905c99a7ff5b46030c3be1a39ff23ffff46b1a61faf7cc00e24d40b49b38f#npm:6.1.0"],\ + ["react-helmet-async", "virtual:0d9620f91cc1220bb659f4fc4375454dc3f511d634580e77befd72fe2f8a7c5971f905c99a7ff5b46030c3be1a39ff23ffff46b1a61faf7cc00e24d40b49b38f#npm:2.0.5"],\ ["@types/react", "npm:18.2.48"],\ - ["object-assign", "npm:4.1.1"],\ - ["prop-types", "npm:15.8.1"],\ + ["invariant", "npm:2.2.4"],\ ["react", "npm:18.2.0"],\ ["react-fast-compare", "npm:3.2.2"],\ - ["react-side-effect", "virtual:5233b4a80839c2bceacd9cc42605007a041a89142e30bcb9bb5cf2097b240babc42f53cc8e7d902d8a2ac2d92982cc604cbd7d839c75ebc84e4fdada46f9aaa4#npm:2.1.2"]\ + ["shallowequal", "npm:1.1.0"]\ ],\ "packagePeers": [\ "@types/react",\ @@ -16679,28 +16678,6 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ - ["react-side-effect", [\ - ["npm:2.1.2", {\ - "packageLocation": "./.yarn/cache/react-side-effect-npm-2.1.2-c18e5fd8bd-5d934cae43.zip/node_modules/react-side-effect/",\ - "packageDependencies": [\ - ["react-side-effect", "npm:2.1.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:5233b4a80839c2bceacd9cc42605007a041a89142e30bcb9bb5cf2097b240babc42f53cc8e7d902d8a2ac2d92982cc604cbd7d839c75ebc84e4fdada46f9aaa4#npm:2.1.2", {\ - "packageLocation": "./.yarn/__virtual__/react-side-effect-virtual-b1d41bc895/0/cache/react-side-effect-npm-2.1.2-c18e5fd8bd-5d934cae43.zip/node_modules/react-side-effect/",\ - "packageDependencies": [\ - ["react-side-effect", "virtual:5233b4a80839c2bceacd9cc42605007a041a89142e30bcb9bb5cf2097b240babc42f53cc8e7d902d8a2ac2d92982cc604cbd7d839c75ebc84e4fdada46f9aaa4#npm:2.1.2"],\ - ["@types/react", "npm:18.2.48"],\ - ["react", "npm:18.2.0"]\ - ],\ - "packagePeers": [\ - "@types/react",\ - "react"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["react-style-singleton", [\ ["npm:2.2.1", {\ "packageLocation": "./.yarn/cache/react-style-singleton-npm-2.2.1-e45b97b153-6d66f3bdb6.zip/node_modules/react-style-singleton/",\ @@ -17331,6 +17308,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["shallowequal", [\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/shallowequal-npm-1.1.0-6688d419cb-b926efb51c.zip/node_modules/shallowequal/",\ + "packageDependencies": [\ + ["shallowequal", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["shebang-command", [\ ["npm:2.0.0", {\ "packageLocation": "./.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-a41692e7d8.zip/node_modules/shebang-command/",\ diff --git a/apps/admin/index.html b/apps/admin/index.html index fd324d3b..c89f935e 100644 --- a/apps/admin/index.html +++ b/apps/admin/index.html @@ -4,17 +4,11 @@ - - + + - - + + @@ -22,14 +16,11 @@ - - + + - 손쉬운 예매 빠른 입장은 불티 + 핫한 공연 예매의 시작, 불티 - - + +
+ + diff --git a/apps/preview/package.json b/apps/preview/package.json index cd0040fb..5c6fe854 100644 --- a/apps/preview/package.json +++ b/apps/preview/package.json @@ -21,7 +21,7 @@ "qrcode.react": "^3.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-helmet": "^6.1.0", + "react-helmet-async": "^2.0.5", "react-router-dom": "^6.22.3", "the-new-css-reset": "^1.11.2" }, diff --git a/apps/preview/public/favicon.png b/apps/preview/public/favicon.png new file mode 100644 index 00000000..1fe94d9c Binary files /dev/null and b/apps/preview/public/favicon.png differ diff --git a/apps/preview/public/thumbnail.png b/apps/preview/public/thumbnail.png new file mode 100644 index 00000000..87cdf9f3 Binary files /dev/null and b/apps/preview/public/thumbnail.png differ diff --git a/apps/preview/public/vite.svg b/apps/preview/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/apps/preview/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/preview/src/App.tsx b/apps/preview/src/App.tsx index 517c593f..02697ed7 100644 --- a/apps/preview/src/App.tsx +++ b/apps/preview/src/App.tsx @@ -6,6 +6,7 @@ import { BooltiUIProvider } from '@boolti/ui'; import { createBrowserRouter, RouterProvider } from 'react-router-dom'; import ShowPreviewPage from './pages/ShowPreviewPage/ShowPreviewPage'; +import { HelmetProvider } from 'react-helmet-async'; const router = createBrowserRouter([ { @@ -16,11 +17,13 @@ const router = createBrowserRouter([ const App = () => { return ( - - - - - + + + + + + + ); }; diff --git a/apps/preview/src/pages/ShowPreviewPage/ShowPreviewPage.tsx b/apps/preview/src/pages/ShowPreviewPage/ShowPreviewPage.tsx index be68b8a0..9324d521 100644 --- a/apps/preview/src/pages/ShowPreviewPage/ShowPreviewPage.tsx +++ b/apps/preview/src/pages/ShowPreviewPage/ShowPreviewPage.tsx @@ -4,7 +4,7 @@ import { Footer, ShowPreview, useDialog } from '@boolti/ui'; import { format, setDefaultOptions } from 'date-fns'; import { ko } from 'date-fns/locale'; import { QRCodeSVG } from 'qrcode.react'; -import { Helmet } from 'react-helmet'; +import { Helmet } from 'react-helmet-async'; import { Navigate, useParams } from 'react-router-dom'; import Styled from './ShowPreviewPage.styles'; @@ -50,20 +50,26 @@ const BooltiGrayLogo = () => ( const ShowPreviewPage = () => { const params = useParams<{ showId: string }>(); - const { data } = useShowPreview(Number(params.showId)); + const { isLoading, data } = useShowPreview(Number(params.showId)); const dialog = useDialog(); const dynamicLink = `https://boolti.page.link/?link=https://preview.boolti.in/show/${params.showId}&apn=com.nexters.boolti&ibi=com.nexters.boolti&isi=6476589322`; - if (params === undefined || Number.isNaN(Number(params.showId))) { + if (isLoading) { + return null; + } + + if (params === undefined || Number.isNaN(Number(params.showId)) || !data) { return ; } + const { name: title, notice: text } = data; + const shareButtonClickHandler = async () => { try { await navigator.share({ - title: data?.name ?? '', - text: data?.notice ?? '', + title, + text, url: dynamicLink, }); } catch (error) { @@ -104,20 +110,11 @@ const ShowPreviewPage = () => { return ( <> - - + + - + @@ -125,17 +122,11 @@ const ShowPreviewPage = () => { - - + + - {data?.name ? `${data.name} - 불티` : '손쉬운 예매 빠른 입장은 불티'} + {title} @@ -149,23 +140,23 @@ const ShowPreviewPage = () => { file.path) ?? [], - name: data?.name ?? '', - date: data?.date ? format(new Date(data.date), 'yyyy.MM.dd (E)') : '', - startTime: data?.date ? format(new Date(data.date), 'HH:mm') : '', - runningTime: data?.runningTime ? `${data.runningTime}` : '', - salesStartTime: data?.salesStartTime + images: data.showImg.map((file) => file.path) ?? [], + name: data.name ?? '', + date: data.date ? format(new Date(data.date), 'yyyy.MM.dd (E)') : '', + startTime: data.date ? format(new Date(data.date), 'HH:mm') : '', + runningTime: data.runningTime ? `${data.runningTime}` : '', + salesStartTime: data.salesStartTime ? format(new Date(data.salesStartTime), 'yyyy.MM.dd (E)') : '', - salesEndTime: data?.salesEndTime + salesEndTime: data.salesEndTime ? format(new Date(data.salesEndTime), 'yyyy.MM.dd (E)') : '', - placeName: data?.placeName ?? '', - placeStreetAddress: data?.streetAddress ?? '', - placeDetailAddress: data?.detailAddress ?? '', - notice: data?.notice ?? '', - hostName: data?.hostName ?? '', - hostPhoneNumber: data?.hostPhoneNumber ?? '', + placeName: data.placeName ?? '', + placeStreetAddress: data.streetAddress ?? '', + placeDetailAddress: data.detailAddress ?? '', + notice: data.notice ?? '', + hostName: data.hostName ?? '', + hostPhoneNumber: data.hostPhoneNumber ?? '', }} onClickLink={reservationButtonClickHandler} onClickLinkMobile={reservationButtonMobileClickHandler} diff --git a/apps/super-admin/index.html b/apps/super-admin/index.html index c83763ab..a72b9066 100644 --- a/apps/super-admin/index.html +++ b/apps/super-admin/index.html @@ -4,13 +4,11 @@ - - + + - - + + @@ -18,12 +16,11 @@ - - + + - 손쉬운 예매 빠른 입장은 불티 + 핫한 공연 예매의 시작, 불티
diff --git a/yarn.lock b/yarn.lock index 1957648a..1cfd270c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10801,7 +10801,7 @@ __metadata: qrcode.react: "npm:^3.1.0" react: "npm:^18.2.0" react-dom: "npm:^18.2.0" - react-helmet: "npm:^6.1.0" + react-helmet-async: "npm:^2.0.5" react-router-dom: "npm:^6.22.3" the-new-css-reset: "npm:^1.11.2" typescript: "npm:^5.2.2" @@ -11640,24 +11640,23 @@ __metadata: languageName: node linkType: hard -"react-fast-compare@npm:^3.1.1": +"react-fast-compare@npm:^3.2.2": version: 3.2.2 resolution: "react-fast-compare@npm:3.2.2" checksum: 10c0/0bbd2f3eb41ab2ff7380daaa55105db698d965c396df73e6874831dbafec8c4b5b08ba36ff09df01526caa3c61595247e3269558c284e37646241cba2b90a367 languageName: node linkType: hard -"react-helmet@npm:^6.1.0": - version: 6.1.0 - resolution: "react-helmet@npm:6.1.0" +"react-helmet-async@npm:^2.0.5": + version: 2.0.5 + resolution: "react-helmet-async@npm:2.0.5" dependencies: - object-assign: "npm:^4.1.1" - prop-types: "npm:^15.7.2" - react-fast-compare: "npm:^3.1.1" - react-side-effect: "npm:^2.1.0" + invariant: "npm:^2.2.4" + react-fast-compare: "npm:^3.2.2" + shallowequal: "npm:^1.1.0" peerDependencies: - react: ">=16.3.0" - checksum: 10c0/1d2831d9c3b4f5c91f020076aeb6502437a4788077d0c438421e466eb9633d5dc2aacedf7b779a970b807d61cf87793c5ff76ee3190a185d71c90b5cfb367e96 + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + checksum: 10c0/f390ea8bf13c2681850e5f8eb5b73d8613f407c245a5fd23e9db9b2cc14a3700dd1ce992d3966632886d1d613083294c2aeee009193f49dfa7d145d9f13ea2b0 languageName: node linkType: hard @@ -11872,15 +11871,6 @@ __metadata: languageName: node linkType: hard -"react-side-effect@npm:^2.1.0": - version: 2.1.2 - resolution: "react-side-effect@npm:2.1.2" - peerDependencies: - react: ^16.3.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/5d934cae438f701ce646f566750ae6a445e99185ce1a026108f9db728147f7962a22ecf8db79ff26089953a3799b3607766904f4f10194ce42bcd5a1aa0215e8 - languageName: node - linkType: hard - "react-style-singleton@npm:^2.2.1": version: 2.2.1 resolution: "react-style-singleton@npm:2.2.1" @@ -12484,6 +12474,13 @@ __metadata: languageName: node linkType: hard +"shallowequal@npm:^1.1.0": + version: 1.1.0 + resolution: "shallowequal@npm:1.1.0" + checksum: 10c0/b926efb51cd0f47aa9bc061add788a4a650550bbe50647962113a4579b60af2abe7b62f9b02314acc6f97151d4cf87033a2b15fc20852fae306d1a095215396c + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0"