{"version":3,"sources":["utils/helpers.ts","context/AppContext.tsx","utils/locale.ts","components/Loading.tsx","utils/decorators.tsx","modules lazy /^/.//.*$/ groupOptions: {} namespace object","locales lazy /^/.//.*/.json$/ groupOptions: {} namespace object","routers/loadable.tsx","routers/index.tsx","routers/config.ts","assets/logo@2x.png","assets/logo-black@2x.png","components/Header/index.tsx","components/Video/index.tsx","components/Footer/index.tsx","App.tsx","main.tsx"],"names":["switchCase","fn","obj","Array","map","item","Object","obj1","keys","forEach","key","isCNMode","str","replace","_match","_p1","p2","toUpperCase","p1","toLowerCase","locale","isMobile","navigator","userAgent","match","isUrl","Context","createContext","contextData","currentLocale","isMuteVideo","updateContext","data","AppConsumer","React","Component","props","Consumer","context","SUPPORT_LOCALES","name","value","Loading","timedOut","error","pastDelay","retry","style","display","flex","justifyContent","alignItems","height","minHeight","intl","get","type","onClick","color","loadLang","state","loading","callback","determineLocale","urlLocaleKey","cookieLocaleKey","find","query","qs","parse","window","location","href","split","lang","cookie","set","expires","then","m","options","locales","fallbackLocale","commonLocaleDataUrls","init","loadLocales","setState","document","title","this","PureComponent","AnchorTop","anchorId","top","id","position","width","LazyComponent","innerHTML","once","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","e","Error","code","ids","all","slice","t","module","exports","useState","setLoading","useEffect","timer","setTimeout","clearTimeout","className","AsyncComponent","loadable","path","fallback","Loadable","hashLinkScroll","hash","element","getElementById","scrollIntoView","PCHeader","require","isScroll","setIsScroll","setIsAboutUs","isHeaderScrollChange","setIsHeaderScrollChange","onScroll","scrollTop","pageYOffset","addEventListener","removeEventListener","includes","src","logoblack","logo","alt","exact","to","activeClassName","target","role","tabIndex","useLocation","pathname","console","log","PCFooter","rel","Footer","App","toggleVoice","tmp","voice","bind","basename","process","config","mainRouters","entries","onUpdate","component","redirect","render","Weblog","fps","timing","radar","projectId","sampling","ReactDOM"],"mappings":"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ACb,GACA,EACA,GAED,cAAe,CACd,GACA,EACA,GAED,wBAAyB,CACxB,GACA,EACA,GAED,6BAA8B,CAC7B,GACA,EACA,IAED,4BAA6B,CAC5B,GACA,EACA,GAED,mBAAoB,CACnB,GACA,EACA,GAED,wBAAyB,CACxB,GACA,EACA,IAED,uBAAwB,CACvB,GACA,EACA,GAED,aAAc,CACb,GACA,EACA,GAED,cAAe,CACd,GACA,EACA,GAED,wBAAyB,CACxB,GACA,EACA,GAED,6BAA8B,CAC7B,GACA,EACA,IAED,4BAA6B,CAC5B,GACA,EACA,GAED,mBAAoB,CACnB,GACA,EACA,GAED,wBAAyB,CACxB,GACA,EACA,IAED,uBAAwB,CACvB,GACA,EACA,GAED,eAAgB,CACf,GACA,EACA,EACA,GAED,gBAAiB,CAChB,GACA,EACA,EACA,GAED,4BAA6B,CAC5B,GACA,EACA,GAED,iCAAkC,CACjC,GACA,EACA,IAED,gCAAiC,CAChC,GACA,EACA,GAED,qBAAsB,CACrB,GACA,EACA,EACA,GAED,0BAA2B,CAC1B,GACA,EACA,IAED,yBAA0B,CACzB,GACA,EACA,EACA,GAED,QAAS,CACR,GACA,EACA,GAED,SAAU,CACT,GACA,EACA,GAED,cAAe,CACd,GACA,EACA,IAED,mBAAoB,CACnB,GACA,EACA,IAED,kBAAmB,CAClB,GACA,EACA,IAED,cAAe,CACd,GACA,EACA,GAED,mBAAoB,CACnB,GACA,EACA,IAED,kBAAmB,CAClB,GACA,EACA,GAED,aAAc,CACb,GACA,EACA,GAED,cAAe,CACd,GACA,EACA,GAED,wBAAyB,CACxB,GACA,EACA,IAED,6BAA8B,CAC7B,GACA,EACA,IAED,4BAA6B,CAC5B,GACA,EACA,IAED,mBAAoB,CACnB,GACA,EACA,GAED,wBAAyB,CACxB,GACA,EACA,IAED,uBAAwB,CACvB,GACA,EACA,GAED,UAAW,CACV,GACA,EACA,EACA,GAED,WAAY,CACX,GACA,EACA,EACA,GAED,kBAAmB,CAClB,GACA,EACA,EACA,IAED,uBAAw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","file":"static/js/main.4ea101e0.chunk.js","sourcesContent":["// 下划线转驼峰\nexport const camelCase = (str) =>\n str.replace(/(-|_)+(.)?/g, (_match, _p1, p2) => (p2 ? p2.toUpperCase() : ''));\n\n// 驼峰转下划线\nexport const underscoreCase = (str) =>\n str.replace(/([A-Z])/g, (_match, p1) => (p1 ? `_${p1.toLowerCase()}` : ''));\n\n// 驼峰&下划线互转\nconst switchCase = (fn) => (obj) => {\n if (obj instanceof Array) {\n return obj.map((item) => switchCase(fn)(item));\n }\n\n if (obj instanceof Object) {\n const obj1: Record = {};\n Object.keys(obj).forEach((key) => {\n obj1[fn(key)] = switchCase(fn)(obj[key]);\n });\n return obj1;\n }\n\n return obj;\n};\n\n// 将 json key 中的下划线转为驼峰\nexport const camelJson = switchCase(camelCase);\n\n// 将 json key 中的驼峰转为下划线\nexport const underscoreJson = switchCase(underscoreCase);\n\n// 移除图片base64后的前缀\nexport const removeBase64Prefix = (str) => str.replace(/.*base64,/, '');\n\n/**\n * 从对象中拷贝指定字段\n * @param obj 源对象\n * @param fields 指定字段列表\n */\nexport const copyObjectByFields = (\n obj: Record,\n fields: string[]\n) => {\n if (!obj) {\n return {};\n }\n\n const tmp = {};\n for (const field of fields) {\n tmp[field] = obj[field];\n }\n\n return tmp;\n};\n\n/**\n * 延迟 t 豪秒后执行某个函数\n * 用法:delay(3000).then(() => console.log('Hello'))\n * @param t\n */\nexport const delay = (t) => new Promise((resolve) => setTimeout(resolve, t));\n\nexport const isCNMode = (locale: string) => locale === 'zh-CN';\n\nexport const setLocale = (lang) => {\n window.location.search = `?lang=${lang}`;\n};\n\n// judge whether mobile end or not\nexport const isMobile = () => {\n return (\n navigator.userAgent.match(/Android/i) ||\n navigator.userAgent.match(/webOS/i) ||\n navigator.userAgent.match(/iPhone/i) ||\n navigator.userAgent.match(/iPad/i) ||\n navigator.userAgent.match(/iPod/i) ||\n navigator.userAgent.match(/BlackBerry/i) ||\n navigator.userAgent.match(/Windows Phone/i)\n );\n};\n\nexport const isUrl = () => {\n const env = process.env.REACT_APP_BASENAME;\n let basename;\n if (env === '/') {\n basename = '/';\n }\n if (env === '/en') {\n basename = '/en/';\n }\n if (env === '/en-website') {\n basename = '/en-website/';\n }\n return basename;\n};\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport React, { createContext, Children } from 'react';\nimport { init } from '@rematch/core';\n\nconst Context = createContext({\n contextData: {\n currentLocale: 'en-US',\n isMuteVideo: true\n },\n updateContext: (data) => {}\n});\n\ninterface IAppProviderProps {\n initContextData: any;\n}\n\nexport class AppProvider extends React.Component {\n initContextData: any;\n\n constructor(props) {\n super(props);\n // const { initContextData } = this.props;\n this.initContextData = {\n currentLocale: 'en-US',\n isMuteVideo: true,\n ...this.initContextData\n };\n this.state = {};\n }\n\n updateContext = (newContext) => {\n this.setState(newContext);\n };\n\n render() {\n const { children } = this.props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport const AppConsumer = (Component) => (props) => (\n \n {(context) => (\n \n )}\n \n);\n","import cookie from 'js-cookie';\nimport qs from 'qs';\nimport intl from 'react-intl-universal';\n\nconst SUPPORT_LOCALES = [\n {\n name: 'English',\n value: 'en-US'\n }\n];\n\nconst loadLocales = (callback) => {\n let currentLocale = 'en-US';\n currentLocale = intl.determineLocale({\n urlLocaleKey: 'lang',\n cookieLocaleKey: 'lang'\n });\n\n if (!SUPPORT_LOCALES.find((item) => item.value === currentLocale)) {\n currentLocale = 'en-US';\n }\n\n const query = qs.parse(window.location.href.split('?')[1]);\n if (query && query.lang) {\n cookie.set('lang', query.lang, { expires: 1000 });\n }\n\n import(`../locales/${currentLocale}.json`)\n .then((m) => {\n const options = {\n currentLocale,\n locales: {\n [currentLocale]: m\n },\n fallbackLocale: 'en-US',\n commonLocaleDataUrls: {}\n };\n intl.init(options);\n })\n .then(() => {\n if (callback) {\n callback(currentLocale);\n }\n });\n};\n\nexport { SUPPORT_LOCALES, loadLocales };\n","import React from 'react';\nimport intl from 'react-intl-universal';\n\ninterface ILoadingProps {\n timedOut?: boolean;\n error?: string;\n pastDelay?: boolean;\n retry?: any;\n}\n\nconst Loading = ({\n timedOut = false,\n error = '',\n pastDelay = false,\n retry = null\n}: ILoadingProps) => {\n const style = {\n display: 'flex',\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n minHeight: '300px'\n };\n\n if (timedOut || error) {\n return (\n
\n {intl.get('timeout')}\n \n
\n );\n }\n\n if (pastDelay) {\n return
Loading...
;\n }\n\n return null;\n};\n\nexport default Loading;\n","import React, { PureComponent, useRef, useState } from 'react';\nimport intl from 'react-intl-universal';\nimport LazyLoad from 'react-lazyload';\nimport { loadLocales } from './locale';\nimport Loading from '../components/Loading';\n\n/**\n * 下载语言包,并重新加载被装饰的组件\n * @param Component\n * @returns {Wrapper}\n */\nexport const loadLang = (Component) => {\n class Wrapper extends PureComponent {\n constructor(props: any) {\n super(props);\n // const { loading } = this.props;\n this.state = {\n loading: true,\n currentLocale: 'en-US'\n };\n }\n\n componentDidMount() {\n loadLocales((currentLocale) => {\n this.setState({\n loading: false,\n currentLocale\n });\n document.title = intl.get('app');\n });\n }\n\n render() {\n const { loading } = this.state;\n const { currentLocale } = this.state;\n return loading ? (\n \n ) : (\n \n );\n }\n }\n\n return Wrapper;\n};\n\nexport const AnchorTop = ({ anchorId, top = '-120px' }) => {\n return (\n \n  \n \n );\n};\n\nexport const LazyComponent = (height, innerHTML) => {\n return (\n \n {innerHTML}\n \n );\n};\n","var map = {\n\t\"./about-us\": [\n\t\t22,\n\t\t9,\n\t\t2\n\t],\n\t\"./about-us/\": [\n\t\t22,\n\t\t9,\n\t\t2\n\t],\n\t\"./about-us/PCAbout-us\": [\n\t\t44,\n\t\t9,\n\t\t8\n\t],\n\t\"./about-us/PCAbout-us.scss\": [\n\t\t86,\n\t\t7,\n\t\t16\n\t],\n\t\"./about-us/PCAbout-us.tsx\": [\n\t\t44,\n\t\t9,\n\t\t8\n\t],\n\t\"./about-us/index\": [\n\t\t22,\n\t\t9,\n\t\t2\n\t],\n\t\"./about-us/index.scss\": [\n\t\t92,\n\t\t7,\n\t\t17\n\t],\n\t\"./about-us/index.tsx\": [\n\t\t22,\n\t\t9,\n\t\t2\n\t],\n\t\"./business\": [\n\t\t23,\n\t\t9,\n\t\t3\n\t],\n\t\"./business/\": [\n\t\t23,\n\t\t9,\n\t\t3\n\t],\n\t\"./business/PCBusiness\": [\n\t\t48,\n\t\t9,\n\t\t9\n\t],\n\t\"./business/PCBusiness.scss\": [\n\t\t87,\n\t\t7,\n\t\t18\n\t],\n\t\"./business/PCBusiness.tsx\": [\n\t\t48,\n\t\t9,\n\t\t9\n\t],\n\t\"./business/index\": [\n\t\t23,\n\t\t9,\n\t\t3\n\t],\n\t\"./business/index.scss\": [\n\t\t93,\n\t\t7,\n\t\t19\n\t],\n\t\"./business/index.tsx\": [\n\t\t23,\n\t\t9,\n\t\t3\n\t],\n\t\"./contact-us\": [\n\t\t24,\n\t\t9,\n\t\t1,\n\t\t7\n\t],\n\t\"./contact-us/\": [\n\t\t24,\n\t\t9,\n\t\t1,\n\t\t7\n\t],\n\t\"./contact-us/PCContact-us\": [\n\t\t49,\n\t\t9,\n\t\t1\n\t],\n\t\"./contact-us/PCContact-us.scss\": [\n\t\t90,\n\t\t7,\n\t\t20\n\t],\n\t\"./contact-us/PCContact-us.tsx\": [\n\t\t49,\n\t\t9,\n\t\t1\n\t],\n\t\"./contact-us/index\": [\n\t\t24,\n\t\t9,\n\t\t1,\n\t\t7\n\t],\n\t\"./contact-us/index.scss\": [\n\t\t94,\n\t\t7,\n\t\t21\n\t],\n\t\"./contact-us/index.tsx\": [\n\t\t24,\n\t\t9,\n\t\t1,\n\t\t7\n\t],\n\t\"./csr\": [\n\t\t25,\n\t\t9,\n\t\t5\n\t],\n\t\"./csr/\": [\n\t\t25,\n\t\t9,\n\t\t5\n\t],\n\t\"./csr/PCCsr\": [\n\t\t45,\n\t\t9,\n\t\t11\n\t],\n\t\"./csr/PCCsr.scss\": [\n\t\t88,\n\t\t7,\n\t\t22\n\t],\n\t\"./csr/PCCsr.tsx\": [\n\t\t45,\n\t\t9,\n\t\t11\n\t],\n\t\"./csr/index\": [\n\t\t25,\n\t\t9,\n\t\t5\n\t],\n\t\"./csr/index.scss\": [\n\t\t95,\n\t\t7,\n\t\t23\n\t],\n\t\"./csr/index.tsx\": [\n\t\t25,\n\t\t9,\n\t\t5\n\t],\n\t\"./products\": [\n\t\t26,\n\t\t9,\n\t\t4\n\t],\n\t\"./products/\": [\n\t\t26,\n\t\t9,\n\t\t4\n\t],\n\t\"./products/PCProducts\": [\n\t\t47,\n\t\t9,\n\t\t10\n\t],\n\t\"./products/PCProducts.scss\": [\n\t\t89,\n\t\t7,\n\t\t24\n\t],\n\t\"./products/PCProducts.tsx\": [\n\t\t47,\n\t\t9,\n\t\t10\n\t],\n\t\"./products/index\": [\n\t\t26,\n\t\t9,\n\t\t4\n\t],\n\t\"./products/index.scss\": [\n\t\t96,\n\t\t7,\n\t\t25\n\t],\n\t\"./products/index.tsx\": [\n\t\t26,\n\t\t9,\n\t\t4\n\t],\n\t\"./prsee\": [\n\t\t27,\n\t\t9,\n\t\t0,\n\t\t6\n\t],\n\t\"./prsee/\": [\n\t\t27,\n\t\t9,\n\t\t0,\n\t\t6\n\t],\n\t\"./prsee/PCPrsee\": [\n\t\t46,\n\t\t9,\n\t\t0,\n\t\t12\n\t],\n\t\"./prsee/PCPrsee.scss\": [\n\t\t91,\n\t\t7,\n\t\t0\n\t],\n\t\"./prsee/PCPrsee.tsx\": [\n\t\t46,\n\t\t9,\n\t\t0,\n\t\t12\n\t],\n\t\"./prsee/index\": [\n\t\t27,\n\t\t9,\n\t\t0,\n\t\t6\n\t],\n\t\"./prsee/index.scss\": [\n\t\t97,\n\t\t7,\n\t\t26\n\t],\n\t\"./prsee/index.tsx\": [\n\t\t27,\n\t\t9,\n\t\t0,\n\t\t6\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1])\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 55;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./en-US.json\": [\n\t\t98,\n\t\t27\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 3);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 77;\nmodule.exports = webpackAsyncContext;","import React, { useState, useEffect } from 'react';\nimport loadable from '@loadable/component';\n\n// 按需加载 loading 效果\nconst Loading = () => {\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setLoading(true);\n }, 200);\n return () => clearTimeout(timer);\n });\n\n if (loading) {\n return (\n
\n
\n
\n
\n
\n );\n }\n return null;\n};\n\nconst AsyncComponent = loadable((props) => import(`../modules/${props.path}`), {\n fallback: \n});\n\nconst Loadable = (path) => () => ;\n\nexport default Loadable;\n","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport Loadable from './loadable';\n\nfunction hashLinkScroll() {\n const { hash } = window.location;\n if (hash !== '') {\n // Push onto callback queue so it runs after the DOM is updated,\n // this is required when navigating from a different page so that\n // the element is rendered on the page before trying to getElementById.\n setTimeout(() => {\n const id = hash.replace('#', '');\n const element = document.getElementById(id);\n if (element) element.scrollIntoView();\n }, 0);\n }\n}\n\nexport default function renderRouter(config) {\n // function onVoice() {\n // const element = document.getElementById('kuaishou-video');\n // if (isVoice) {\n // element.play();\n // } else {\n // element.onpause();\n // }\n // }\n\n return Object.entries(config).map((item: any) => {\n const props: any = {\n exact: true,\n path: item[0],\n onUpdate: { hashLinkScroll }\n };\n\n if (item[1] instanceof Object) {\n if (item[1].exact === false) {\n props.exact = false;\n }\n\n if (item[1].component) {\n props.component = Loadable(item[1].component);\n }\n\n if (item[1].redirect) {\n props.render = () => ;\n }\n } else {\n props.component = Loadable(item[1]);\n }\n\n return ;\n });\n}\n\n// export * from './config';\n","/**\n * 配置路由\n * 接受如下几种形式\n * (1)'/a/b': 'path/to/module' // 最常用,注意:path/to/module 是相对于 src/modules/ 的路径\n * (2)'/a/c: {component: 'path/to/module', exact: false} // 增加 exact: false,对路径进行模糊匹配\n * (3)'/a/d': {redirect: '/a/b'} // 重定向\n */\nexport default {\n // 这是一行用于测试的备注,可自行删除\n '/': 'about-us',\n '/products': 'products',\n '/business': 'business',\n '/csr': 'csr',\n '/prsee': 'prsee',\n '/contact-us': 'contact-us'\n};\n","export default __webpack_public_path__ + \"static/media/logo@2x.b9e956ac.png\";","export default __webpack_public_path__ + \"static/media/logo-black@2x.23adce5c.png\";","/* eslint-disable react/destructuring-assignment */\n/* eslint-disable react/no-unused-state */\nimport React, { useState, useEffect, useRef } from 'react';\nimport intl from 'react-intl-universal';\nimport { useLocation, NavLink, Link } from 'react-router-dom';\nimport { AppConsumer } from '../../context/AppContext';\nimport { isMobile, setLocale, isUrl } from '../../utils/helpers';\nimport logo from '../../assets/logo@2x.png';\nimport logoblack from '../../assets/logo-black@2x.png';\nimport voice from '../../assets/voice.png';\nimport mute from '../../assets/muted.png';\nimport { VoiceContext } from '../../utils/effects';\nimport { VideoVoiceButton } from '../Video';\n\nimport './index.scss';\n\nconst PCHeader = ({ path }) => {\n const [isScroll, setIsScroll] = useState(false);\n const [isVoice, setIsVoice] = useState(false);\n const [isAboutUs, setIsAboutUs] = useState(false);\n const [isHeaderScrollChange, setIsHeaderScrollChange] = useState(false);\n // save traffic\n const onScroll = () => {\n const scrollTop = window.pageYOffset; //\n if (scrollTop > 0) {\n setIsScroll(true);\n } else {\n setIsScroll(false);\n }\n };\n // listen scroll's change\n useEffect(() => {\n window.addEventListener('scroll', onScroll);\n return () => {\n window.removeEventListener('scroll', onScroll);\n };\n }, []);\n\n const onAboutUs = () => {\n if (path === '/') {\n setIsAboutUs(true);\n } else {\n setIsAboutUs(false);\n }\n };\n\n useEffect(() => {\n onAboutUs();\n });\n\n const onHeaderScrollChange = () => {\n if (isScroll) return setIsHeaderScrollChange(false);\n\n const specialPages = ['/', '/csr'];\n if (!specialPages.includes(path)) return setIsHeaderScrollChange(false);\n return setIsHeaderScrollChange(true);\n };\n\n useEffect(() => {\n onHeaderScrollChange();\n });\n\n const viewButton = () => {\n if (isAboutUs) {\n return (\n
  • \n \n
  • \n );\n }\n return <>;\n };\n\n return (\n
    \n
    \n
    \n \n
    \n
      \n
    • \n \n {intl.get('header.about-us')}\n \n
        \n
      • \n \n {intl.get('about-us.company-overview.title')}\n \n
      • \n
      • \n \n {intl.get('about-us.culture-and-values.title')}\n \n
      • \n
      • \n \n {intl.get('about-us.leadership.title')}\n \n
      • \n
      • \n \n {intl.get('about-us.milestones.title')}\n \n
      • \n
      \n
    • \n
    • \n \n {intl.get('header.products')}\n \n
        \n
      • \n \n {intl.get('products.kuaishou.title')}\n \n
      • \n
      • \n \n {intl.get('products.kuaishou-express.title')}\n \n
      • \n
      • \n \n {intl.get('products.kuaishou-concept.title')}\n \n
      • \n
      • \n \n {intl.get('products.yitian-camera.title')}\n \n
      • \n
      • \n \n {intl.get('products.kmovie.title')}\n \n
      • \n
      • \n \n {intl.get('products.acfun.title')}\n \n
      • \n
      • \n \n {intl.get('products.kwai.title')}\n \n
      • \n
      • \n \n {intl.get('products.snackVideo.title')}\n \n
      • \n
      \n
    • \n
    • \n \n {intl.get('header.business')}\n \n \n
    • \n
    • \n \n {intl.get('header.cooperate-social-responsibility')}\n \n
    • \n
    • \n \n {intl.get('header.prsee')}\n \n
    • \n
    • \n \n Investors\n \n
    • \n
    • \n \n {intl.get('header.contact-us')}\n \n
    • \n\n
    • \n \n 中文网站\n \n
    • \n {/* {viewButton()} */}\n
    \n
    \n
    \n );\n};\n\nconst Header = ({ contextData }) => {\n const { currentLocale } = contextData;\n const isCN = currentLocale === 'zh-CN';\n const location = useLocation();\n const { pathname: path } = location;\n console.log('new service');\n\n return isMobile() ? : ;\n};\n\nexport default AppConsumer(Header);\n","/* eslint-disable jsx-a11y/no-redundant-roles */\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport './index.scss';\n\nconst EventEmitter = require('events');\nconst ee = new EventEmitter();\nconst eventName = 'videoVoice';\nlet buttonClass;\n\nexport const Video = () => {\n const ref = useRef(null);\n\n useEffect(() => {\n const handleVoiceToggle = (voice) => {\n if (ref && ref.current) {\n ref.current.muted = !voice;\n }\n };\n\n ee.on(eventName, handleVoiceToggle);\n return () => {\n ee.removeListener(eventName, handleVoiceToggle);\n };\n }, []);\n\n const VideoMemo = useMemo(() => {\n return (\n \n );\n }, []);\n\n return <>{VideoMemo};\n};\n\nexport const VideoVoiceButton = (isHomePage) => {\n const [voice, setVoice] = useState(false);\n\n const handleClick = useCallback(() => {\n setVoice((preVoice) => !preVoice);\n }, []);\n\n const checkButtonClass = () => {\n if (isHomePage) {\n if (voice) {\n buttonClass = 'volumn-voiced';\n } else buttonClass = 'volumn-muted';\n } else buttonClass = 'li-delete';\n return buttonClass;\n };\n\n useEffect(() => {\n ee.emit(eventName, voice);\n }, [voice]);\n\n return (\n \n );\n};\n","import React from 'react';\nimport intl from 'react-intl-universal';\nimport { Link } from 'react-router-dom';\nimport { isMobile, isUrl } from '../../utils/helpers';\n\nimport './index.scss';\n\nconst basename = isUrl();\n\nconst PCFooter = () => {\n return (\n
    \n
    \n
      \n
    • \n
        \n
      • \n

        {intl.get('footer.about-us.title')}

        \n
      • \n
      • \n \n {intl.get('footer.about-us.company-overview')}\n \n
      • \n
      • \n \n {intl.get('footer.about-us.culture-and-values')}\n \n
      • \n
      • \n \n {intl.get('footer.about-us.leadership')}\n \n
      • \n
      • \n \n {intl.get('footer.about-us.milestones')}\n \n
      • \n
      \n
    • \n
    • \n
        \n
      • \n

        {intl.get('footer.products.title')}

        \n
      • \n
      • \n \n {intl.get('footer.products.kuaishou')}\n \n
      • \n
      • \n \n {intl.get('footer.products.kuaishou-express')}\n \n
      • \n
      • \n \n {intl.get('footer.products.kuaishou-concept')}\n \n
      • \n
      • \n \n {intl.get('footer.products.yitian-camera')}\n \n
      • \n
      • \n \n {intl.get('footer.products.kmovie')}\n \n
      • \n
      • \n \n {intl.get('footer.products.acfun')}\n \n
      • \n
      • \n \n {intl.get('footer.products.kwai')}\n \n
      • \n
      • \n \n {intl.get('footer.products.snackVideo')}\n \n
      • \n
      \n
    • \n
    • \n \n
    • \n
    • \n \n
    • \n
    \n
    \n \n
    \n );\n};\n\nconst Footer = () => {\n return isMobile() ? : ;\n};\n\nexport default Footer;\n","/* eslint-disable react/no-unused-state */\n/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport {\n BrowserRouter as Router,\n Route,\n Switch,\n Redirect,\n useLocation\n} from 'react-router-dom';\nimport renderRouter from './routers';\nimport { AppProvider } from './context/AppContext';\nimport mainRouters from './routers/config';\nimport { isMobile } from './utils/helpers';\nimport { loadLang } from './utils/decorators';\nimport Header from './components/Header';\nimport Footer from './components/Footer';\n\nimport 'antd/dist/antd.css';\nimport './styles/global.scss';\n\nimport { VoiceContext } from './utils/effects';\n\ninterface IAppProps {\n currentLocale: string | null;\n location: any;\n}\n\ninterface IAppState {\n voice: boolean;\n // eslint-disable-next-line @typescript-eslint/ban-types\n togggleVoice: () => {};\n}\n\nclass App extends React.Component {\n constructor(props) {\n super(props);\n\n // State 也包含了更新函数,因此它会被传递进 context provider。\n this.state = {\n voice: true,\n toggleVoice: this.toggleVoice\n };\n\n this.toggleVoice = this.toggleVoice.bind(this);\n }\n\n toggleVoice = () => {\n const tmp = this.state.voice;\n this.setState({\n voice: !tmp\n });\n };\n\n render() {\n return (\n \n
    \n \n {renderRouter(mainRouters)}\n \n \n