{"version":3,"file":"static/chunks/644-cb1327953218205f.js","mappings":"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","sources":["webpack://_N_E/./src/promotions/components/Video.tsx","webpack://_N_E/./src/promotions/components/DiscountTotal.tsx","webpack://_N_E/./src/promotions/hooks/usePlatformInfo.ts","webpack://_N_E/"],"sourcesContent":["import React from 'react';\nimport styled from '@emotion/styled';\n\nconst ATF_VIDEO_URL = 'https://prs.ohou.se/apne2/events/v1-307100170657920.mp4';\nconst ATF_POSTER_URL = 'https://prs.ohou.se/apne2/events/v1-307101245124673.png';\n\nexport function Video(): React.ReactElement {\n return (\n \n \n \n \n \n );\n}\n\nconst Wrapper = styled.div`\n overflow-x: clip;\n`;\n\nconst Player = styled.video`\n width: 100%;\n display: block;\n transform: scale(1.02);\n`;\n","import { ReactElement, useLayoutEffect, useRef, useState } from 'react';\nimport useSWR from 'swr';\nimport NumberFlow from '@number-flow/react';\nimport styled from '@emotion/styled';\nimport { BREAK_POINT, MEDIA_QUERY } from '@bucketplace/design-system';\nimport { GridItemProps } from '@bucketplace/design-system/bds';\n\nimport { cssColumn } from 'styles/grids';\nimport { Video } from './Video';\n\nconst EVENT_API_PATH = '/api/promotions';\n\ninterface DiscountTotalProps {\n promotionId: number;\n showDiscountTotal: boolean;\n startAt?: string;\n}\n\ninterface DiscountTotalResponse {\n blackFridayTotalDiscountAmount: {\n pollingIntervalMillis: number,\n totalDiscountAmount: string,\n };\n}\n\n// 시간 단위\nconst DISPLAY_HOUR = 9;\n\n// 시간을 밀리초 단위로 변환\nconst DISPLAY_TIME = DISPLAY_HOUR * 60 * 60 * 1000;\n\nconst fetcher = (url: string): Promise => fetch(url).then(res => res.json());\n\nexport function DiscountTotal({ promotionId, showDiscountTotal, startAt }: DiscountTotalProps): ReactElement {\n const [timeGap, setTimeGap] = useState(-1);\n const interval = useRef();\n\n const { data: discountTotalData, error: discountTotalError } = useSWR(\n `${EVENT_API_PATH}/${promotionId}/discount-total`, fetcher, {\n refreshInterval: 1000,\n isPaused: () => !showDiscountTotal,\n }\n );\n\n useLayoutEffect(() => {\n if (!startAt) {\n return null;\n }\n\n const compareDisplayDateToDuration = (): void => {\n // 블랙프라이데이 시작 시간 + n시간\n const startTime = new Date(new Date(startAt).getTime() + DISPLAY_TIME);\n const currentTime = new Date();\n const diff = startTime.getTime() - currentTime.getTime();\n\n if (currentTime >= startTime || diff <= 0) {\n setTimeGap(0);\n clearInterval(interval.current);\n } else {\n setTimeGap(diff);\n }\n };\n\n compareDisplayDateToDuration();\n\n interval.current = window.setInterval(compareDisplayDateToDuration, 1000);\n\n return () => clearInterval(interval.current);\n }, [startAt]);\n\n return (\n \n \n \n );\n}\n\nconst Container = styled.section`\n display: flex;\n flex-wrap: wrap;\n max-width: ${BREAK_POINT.desktop}px;\n margin: 0 auto;\n padding: 0 60px;\n ${MEDIA_QUERY.max('tablet', `\n padding: 0;\n `)}\n`;\n\nconst GridItem = styled.div<{ column: GridItemProps['column'] }>`\n position: relative;\n margin: 0 auto;\n ${({ column }) => cssColumn(column)};\n`;\n\nconst DiscountContainer = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n padding: 30px 12px;\n font-family: Pretendard;\n font-weight: 500;\n background-color: ${({ theme }) => theme.base.neutral700};\n`;\n\nconst Title = styled.p`\n color: ${({ theme }) => theme.colors.background};\n font-size: 15px;\n font-weight: 500;\n line-height: 15px;\n margin-bottom: 4px;\n`;\n\nconst PriceContainer = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 7px;\n`;\n\nconst PriceText = styled.span`\n color: #1AA7FF;\n font-size: 26px;\n font-weight: 500;\n line-height: normal;\n`;\n\nconst PriceWrapper = styled.span`\n display: flex;\n color: #1AA7FF;\n font-family: Quantico, sans-serif;\n font-weight: 400;\n font-size: 30px;\n line-height: 0px;\n letter-spacing: -1.2px;\n`;\n\nconst Description = styled.p`\n color: #3D3D3D;\n text-align: center;\n font-size: 11.8px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n`;\n","import { useMemo } from 'react';\nimport { useRouter } from 'next/router';\n\nexport type AppOsType = 'iOS' | 'Android';\nexport type WebOsType = 'mWebIOS' | 'mWebAndroid' | 'Web';\nexport type OsType = AppOsType | WebOsType;\n\nexport interface UsePlatformInfoReturn {\n osType: OsType;\n appVersion: string | null;\n isMobile: boolean;\n isInApp: boolean;\n}\n\n/**\n * 유저의 플랫폼 정보를 반환합니다.\n */\nexport const usePlatformInfo = (): UsePlatformInfoReturn => {\n const router = useRouter();\n\n const { os_type: appOsType, version } = router.query;\n const osType: OsType = useMemo(() => {\n const rtn = appOsType as AppOsType;\n if (typeof window === 'undefined' || rtn) {\n return rtn;\n }\n\n if (sessionStorage['os_type']) {\n return sessionStorage['os_type'] as AppOsType;\n }\n\n if (\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) ||\n /iPhone|iPad|iPod/i.test(navigator.userAgent)\n ) {\n return 'mWebIOS';\n } else if (/Android/i.test(navigator.userAgent)) {\n return 'mWebAndroid';\n } else {\n return 'Web';\n }\n }, [appOsType]);\n\n const appVersion: string | null = useMemo(() => {\n if (typeof window === 'undefined' || version) return version;\n return sessionStorage['os_version'] ?? null;\n }, [version]);\n\n return {\n osType,\n appVersion,\n isMobile: osType !== 'Web',\n isInApp: osType === 'iOS' || osType === 'Android',\n };\n};\n","\"use strict\";\n(self[\"webpackChunk_N_E\"] = self[\"webpackChunk_N_E\"] || []).push([[644],{\n\n/***/ 83675:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"U\": function() { return /* binding */ DiscountTotal; }\n});\n\n// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+styled@11.13.0_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js\nvar emotion_styled_base_browser_esm = __webpack_require__(12851);\n// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.3.1/node_modules/react/index.js\nvar react = __webpack_require__(75271);\n// EXTERNAL MODULE: ./node_modules/.pnpm/swr@1.3.0_react@18.3.1/node_modules/swr/dist/index.mjs\nvar dist = __webpack_require__(75182);\n// EXTERNAL MODULE: ./node_modules/.pnpm/@number-flow+react@0.3.0_react-dom@18.3.1_react@18.3.1/node_modules/@number-flow/react/dist/index.mjs + 1 modules\nvar react_dist = __webpack_require__(76935);\n// EXTERNAL MODULE: ./node_modules/.pnpm/@bucketplace+design-system@5.3.3_@bucketplace+ui@1.0.9_@emotion+react@11.13.3_@emotion+styled_gws5alfnqy5ixwsabrkna3jsv4/node_modules/@bucketplace/design-system/dist/esm/foundation.js\nvar foundation = __webpack_require__(54939);\n// EXTERNAL MODULE: ./src/styles/grids.ts\nvar grids = __webpack_require__(81213);\n// EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\nvar emotion_react_jsx_runtime_browser_esm = __webpack_require__(83128);\n;// CONCATENATED MODULE: ./src/promotions/components/Video.tsx\n\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n\n\nvar ATF_VIDEO_URL = 'https://prs.ohou.se/apne2/events/v1-307100170657920.mp4';\nvar ATF_POSTER_URL = 'https://prs.ohou.se/apne2/events/v1-307101245124673.png';\nfunction Video() {\n return (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Wrapper, {\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Player, {\n preload: \"metadata\",\n loop: true,\n autoPlay: true,\n muted: true,\n controls: false,\n playsInline: true,\n poster: ATF_POSTER_URL,\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(\"source\", {\n src: \"\".concat(ATF_VIDEO_URL, \"#t=0.5\"),\n type: \"video/mp4\"\n })\n })\n });\n}\n\nvar Wrapper = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e1e4hhkb1\"\n} : 0)( true ? {\n name: \"k2zp2x\",\n styles: \"overflow-x:clip\"\n} : 0);\n\nvar Player = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"video\", true ? {\n target: \"e1e4hhkb0\"\n} : 0)( true ? {\n name: \"1gm0vw5\",\n styles: \"width:100%;display:block;transform:scale(1.02)\"\n} : 0);\n;// CONCATENATED MODULE: ./src/promotions/components/DiscountTotal.tsx\n\n\nfunction DiscountTotal_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n\n\n\n\n\n\n\n\nvar EVENT_API_PATH = '/api/promotions';\n// 시간 단위\nvar DISPLAY_HOUR = 9; // 시간을 밀리초 단위로 변환\n\nvar DISPLAY_TIME = DISPLAY_HOUR * 60 * 60 * 1000;\n\nvar fetcher = function fetcher(url) {\n return fetch(url).then(function (res) {\n return res.json();\n });\n};\n\nfunction DiscountTotal(_ref) {\n var _discountTotalData$bl, _discountTotalData$bl2;\n\n var promotionId = _ref.promotionId,\n showDiscountTotal = _ref.showDiscountTotal,\n startAt = _ref.startAt;\n\n var _useState = (0,react.useState)(-1),\n timeGap = _useState[0],\n setTimeGap = _useState[1];\n\n var interval = (0,react.useRef)();\n\n var _useSWR = (0,dist/* default */.ZP)(\"\".concat(EVENT_API_PATH, \"/\").concat(promotionId, \"/discount-total\"), fetcher, {\n refreshInterval: 1000,\n isPaused: function isPaused() {\n return !showDiscountTotal;\n }\n }),\n discountTotalData = _useSWR.data,\n discountTotalError = _useSWR.error;\n\n (0,react.useLayoutEffect)(function () {\n if (!startAt) {\n return null;\n }\n\n var compareDisplayDateToDuration = function compareDisplayDateToDuration() {\n // 블랙프라이데이 시작 시간 + n시간\n var startTime = new Date(new Date(startAt).getTime() + DISPLAY_TIME);\n var currentTime = new Date();\n var diff = startTime.getTime() - currentTime.getTime();\n\n if (currentTime >= startTime || diff <= 0) {\n setTimeGap(0);\n clearInterval(interval.current);\n } else {\n setTimeGap(diff);\n }\n };\n\n compareDisplayDateToDuration();\n interval.current = window.setInterval(compareDisplayDateToDuration, 1000);\n return function () {\n return clearInterval(interval.current);\n };\n }, [startAt]);\n return (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Container, {\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(GridItem, {\n column: {\n mobile: 'full',\n tablet: 'full',\n laptop: 9\n },\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Video, {}), showDiscountTotal && !discountTotalError && timeGap <= 0 && (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(DiscountContainer, {\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Title, {\n children: \"\\uBE14\\uB799 \\uD504\\uB77C\\uC774\\uB370\\uC774 \\uB204\\uC801 \\uD560\\uC778 \\uAE08\\uC561\"\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsxs */.BX)(PriceContainer, {\n children: [(0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(PriceText, {\n style: {\n marginRight: '1.3px'\n },\n children: \"\\uCD1D\"\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(PriceWrapper, {\n children: (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(react_dist/* default */.ZP, {\n value: Number((_discountTotalData$bl = discountTotalData === null || discountTotalData === void 0 ? void 0 : (_discountTotalData$bl2 = discountTotalData.blackFridayTotalDiscountAmount) === null || _discountTotalData$bl2 === void 0 ? void 0 : _discountTotalData$bl2.totalDiscountAmount) !== null && _discountTotalData$bl !== void 0 ? _discountTotalData$bl : '0'),\n spinTiming: {\n duration: 300\n }\n })\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(PriceText, {\n style: {\n marginLeft: '1.3px'\n },\n children: \"\\uC6D0\"\n })]\n }), (0,emotion_react_jsx_runtime_browser_esm/* jsx */.tZ)(Description, {\n children: \"\\uD61C\\uD0DD \\uAE08\\uC561 \\uC720\\uC758 \\uC0AC\\uD56D\\uC740 \\uD558\\uB2E8\\uC744 \\uCC38\\uC870\\uD558\\uC138\\uC694.\"\n })]\n })]\n })\n });\n}\n\nvar Container = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"section\", true ? {\n target: \"e16nphk57\"\n} : 0)(\"display:flex;flex-wrap:wrap;max-width:\", foundation.B.desktop, \"px;margin:0 auto;padding:0 60px;\", foundation.M.max('tablet', \"\\n padding: 0;\\n \"), \";\" + ( true ? \"\" : 0));\n\nvar GridItem = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e16nphk56\"\n} : 0)(\"position:relative;margin:0 auto;\", function (_ref2) {\n var column = _ref2.column;\n return (0,grids/* cssColumn */.XG)(column);\n}, \";\" + ( true ? \"\" : 0));\n\nvar DiscountContainer = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e16nphk55\"\n} : 0)(\"display:flex;align-items:center;flex-direction:column;padding:30px 12px;font-family:Pretendard;font-weight:500;background-color:\", function (_ref3) {\n var theme = _ref3.theme;\n return theme.base.neutral700;\n}, \";\" + ( true ? \"\" : 0));\n\nvar Title = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"p\", true ? {\n target: \"e16nphk54\"\n} : 0)(\"color:\", function (_ref4) {\n var theme = _ref4.theme;\n return theme.colors.background;\n}, \";font-size:15px;font-weight:500;line-height:15px;margin-bottom:4px;\" + ( true ? \"\" : 0));\n\nvar PriceContainer = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"div\", true ? {\n target: \"e16nphk53\"\n} : 0)( true ? {\n name: \"wx18ik\",\n styles: \"display:flex;align-items:center;margin-bottom:7px\"\n} : 0);\n\nvar PriceText = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"span\", true ? {\n target: \"e16nphk52\"\n} : 0)( true ? {\n name: \"1w128b0\",\n styles: \"color:#1AA7FF;font-size:26px;font-weight:500;line-height:normal\"\n} : 0);\n\nvar PriceWrapper = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"span\", true ? {\n target: \"e16nphk51\"\n} : 0)( true ? {\n name: \"tt85rw\",\n styles: \"display:flex;color:#1AA7FF;font-family:Quantico,sans-serif;font-weight:400;font-size:30px;line-height:0px;letter-spacing:-1.2px\"\n} : 0);\n\nvar Description = /*#__PURE__*/(0,emotion_styled_base_browser_esm/* default */.Z)(\"p\", true ? {\n target: \"e16nphk50\"\n} : 0)( true ? {\n name: \"mahjkp\",\n styles: \"color:#3D3D3D;text-align:center;font-size:11.8px;font-style:normal;font-weight:400;line-height:16px\"\n} : 0);\n\n/***/ }),\n\n/***/ 32315:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"N\": function() { return /* binding */ usePlatformInfo; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75271);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17966);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\n/**\n * 유저의 플랫폼 정보를 반환합니다.\n */\nvar usePlatformInfo = function usePlatformInfo() {\n var router = (0,next_router__WEBPACK_IMPORTED_MODULE_1__.useRouter)();\n var _router$query = router.query,\n appOsType = _router$query.os_type,\n version = _router$query.version;\n var osType = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n var rtn = appOsType;\n\n if ( false || rtn) {\n return rtn;\n }\n\n if (sessionStorage['os_type']) {\n return sessionStorage['os_type'];\n }\n\n if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || /iPhone|iPad|iPod/i.test(navigator.userAgent)) {\n return 'mWebIOS';\n } else if (/Android/i.test(navigator.userAgent)) {\n return 'mWebAndroid';\n } else {\n return 'Web';\n }\n }, [appOsType]);\n var appVersion = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n var _sessionStorage$os_ve;\n\n if ( false || version) return version;\n return (_sessionStorage$os_ve = sessionStorage['os_version']) !== null && _sessionStorage$os_ve !== void 0 ? _sessionStorage$os_ve : null;\n }, [version]);\n return {\n osType: osType,\n appVersion: appVersion,\n isMobile: osType !== 'Web',\n isInApp: osType === 'iOS' || osType === 'Android'\n };\n};\n\n/***/ })\n\n}]);"],"names":["self","push","__unused_webpack_module","__webpack_exports__","__webpack_require__","d","DiscountTotal","emotion_styled_base_browser_esm","react","dist","react_dist","foundation","grids","emotion_react_jsx_runtime_browser_esm","Video","tZ","Wrapper","children","Player","preload","loop","autoPlay","muted","controls","playsInline","poster","src","concat","type","Z","target","name","styles","fetcher","url","fetch","then","res","json","_ref","_discountTotalData$bl","_discountTotalData$bl2","promotionId","showDiscountTotal","startAt","_useState","useState","timeGap","setTimeGap","interval","useRef","_useSWR","ZP","refreshInterval","isPaused","discountTotalData","data","discountTotalError","error","useLayoutEffect","compareDisplayDateToDuration","startTime","Date","getTime","DISPLAY_HOUR","currentTime","diff","clearInterval","current","window","setInterval","Container","BX","GridItem","column","mobile","tablet","laptop","DiscountContainer","Title","PriceContainer","PriceText","style","marginRight","PriceWrapper","value","Number","blackFridayTotalDiscountAmount","totalDiscountAmount","spinTiming","duration","marginLeft","Description","B","desktop","M","max","_ref2","XG","_ref3","theme","base","neutral700","_ref4","colors","background","usePlatformInfo","react__WEBPACK_IMPORTED_MODULE_0__","next_router__WEBPACK_IMPORTED_MODULE_1__","_router$query","router","useRouter","query","appOsType","os_type","version","osType","useMemo","sessionStorage","navigator","platform","maxTouchPoints","test","userAgent","appVersion","_sessionStorage$os_ve","isMobile","isInApp"],"sourceRoot":""}