{"version":3,"sources":["webpack://_N_E/./components/hooks/use-swiper-auto-slide.ts","webpack://_N_E/./new/home/services/home.ts","webpack://_N_E/./lib/fetch-feed.ts","webpack://_N_E/./components/floor/floor-tab-title.tsx","webpack://_N_E/./components/new/sticky-header/index.tsx","webpack://_N_E/./components/hooks/use-sticky-header-observe.ts","webpack://_N_E/./new/home/components/common-top-text-card/index.tsx","webpack://_N_E/./components/statement-new.tsx","webpack://_N_E/./new/home/components/friendship-link/index.tsx","webpack://_N_E/./new/home/components/home-feed/index.tsx","webpack://_N_E/./lib/fake-webid.ts","webpack://_N_E/./node_modules/core-js/modules/es.promise.finally.js","webpack://_N_E/./components/new/sticky-header/sticky-header-provider.tsx","webpack://_N_E/./node_modules/core-js/modules/es.number.max-safe-integer.js"],"names":["useSwiperAutoSlide","swiper","offset","speed","positionRef","useRef","runningRef","isNextRef","timerRef","autoNext","useCallback","current","slideNext","slidePrev","setTimeout","useEffect","handleSlideChange","clearTimeout","on","off","handleMouseleave","handleMousemove","clientX","container","getBoundingClientRect","left","right","PGC_CAGETORY_SROUCE","getHomeOriginal","req","a","fetch","getUrl","json","status","Error","prompts","message","data","getHomeVideo","friendshipLinkData","console","error","getPGCVideoRank","list","getPGCArticleRank","getPGCCategoryList","source","VIDEO","getLiveRoomList","cityName","live_list","getLiveTabsList","getTodayNews","Array","isArray","getFocusPic","params","extraParams","category","window","localStorage","getItem","city","city_name","selected_city_name","defaultParams","impression_info","JSON","stringify","page_id","sub_tab","product_name","car_series_id","concern_id","aid","refer","channel","device_platform","web_id","getFakeWebid","motor_feed_extra_params","max_behot_time","Object","assign","count","url","serializeObject","then","result","FloorTabTitle","className","title","navList","onChange","onTitleClick","isFixed","append","useState","setSwiper","find","item","active","length","link","setList","handleMouseOver","id","hitItem","newList","map","index","useHoverDelay","start","cancel","autoStart","autoCancel","classNames","onClick","onMouseMove","e","currentTarget","onMouseLeave","onMouseDown","spaceBetween","slidesPerGroup","watchOverflow","slidesPerView","preventClicks","onSwiper","simulateTouch","loop","resizeObserver","style","width","key","onMouseOver","label","StickyHeader","renderContent","markOffset","markRef","useStickyHeaderObserve","getMarkNode","duration","isLeave","setIsLeave","Fragment","ref","maxWidth","zIndex","onAnimationEnd","enter","leave","Boolean","isObservePaused","isResetByScroll","getScrollTop","document","body","scrollTop","documentElement","setScrollTopWithStickyObserve","setScrollTop","removeScrollDirectionListener","subscribers","Set","observerRef","useContext","StickyHeaderContext","state","setState","isInitRef","markNode","setMarkNode","isIntersecting","setIsIntersecting","subscriber","isDown","distance","curDirection","preTop","handleScroll","curTop","curOffset","curIsDown","Math","abs","addEventListener","removeEventListener","addScrollDirectionListener","add","delete","size","IntersectionObserver","changes","forEach","change","boundingClientRect","bottom","rootMargin","observer","observe","disconnect","List","teaParams","props","href","target","sendTeaCommEvent","group_id","rank","formatNumber","viewCount","Statement","year","Date","getFullYear","rel","event_id","module_id","button_name","PubSub","publish","FriendshipLink","setFriendshipLinkData","getFriendshipLinkData","init","friendshipLink","name","tabs","HomeFeed","articlePGCRankData","conditionRef","loadCacheRef","loading","setLoading","videoList","setVideoList","useResponsive","useInView","threshold","inView","refRelate","inViewRelate","listRef","handleChange","isInit","top","fetchId","random","initLoading","cacheData","playLoad","tt_from","fetchFeed","filter","duplicate","isIinit","loadMoreHandler","info","behot_time","res","concat","finally","end","order","uniqueIdStr","unique_id_str","coverUrl","repost_info","image_url","video_duration","avatar","user_info","avatar_url","publishTime","publish_time","videoWatchCount","video_detail_info","video_watch_count","read_count","userId","user_id","userVerified","user_verified","motor_auth_show_info","auth_v_type","verifyType","authorTeaParams","contentTeaParams","module_title","storage","sessionStorage","err","min","max","Number","MAX_SAFE_INTEGER","floor","getInt64","setItem","$","IS_PURE","NativePromise","fails","getBuiltIn","speciesConstructor","promiseResolve","redefine","proto","real","forced","prototype","call","onFinally","C","this","isFunction","x","createContext","StickyHeaderProvider","children","Provider","value","stat"],"mappings":"sGAAA,gBAkFeA,IA/Ef,YAQG,IAPDC,EAOC,EAPDA,OAOC,IANDC,cAMC,MANQ,IAMR,MALDC,aAKC,MALO,IAKP,EACKC,EAAcC,iBAAO,GACrBC,EAAaD,kBAAO,GACpBE,EAAYF,kBAAO,GACnBG,EAAWH,mBAEXI,EAAWC,uBAAY,WACtBN,EAAYO,SAAYV,IAAUK,EAAWK,UAClDL,EAAWK,SAAU,EACjBJ,EAAUI,QACZV,EAAOW,UAAUT,GAEjBF,EAAOY,UAAUV,GAGnBK,EAASG,QAAUG,YAAW,WAC5BR,EAAWK,SAAU,IACpBR,MACF,CAACA,EAAOF,IAEXc,qBAAU,WACR,GAAKd,EAAL,CACA,IAAMe,EAAoB,WACxBC,aAAaT,EAASG,SACtBL,EAAWK,SAAU,GAGvB,OADAV,EAAOiB,GAAG,2BAA4BF,GAC/B,WACLf,EAAOkB,IAAI,2BAA4BH,OAExC,CAACP,EAAUR,IAEd,IAAMmB,EAAmBV,uBAAY,WACnCN,EAAYO,QAAU,IACrB,IAkCH,MAAO,CAAEU,gBAhCeX,uBASpB,YAA4B,IAAzBY,EAAyB,EAAzBA,QAAyB,IAAhBC,UACwBC,wBAA1BC,EADkB,EAClBA,KACR,GAAIH,EAFsB,EACZI,MACQxB,EAAQ,CAC5B,GAA4B,IAAxBE,EAAYO,QACd,OAEFP,EAAYO,QAAU,EACtBJ,EAAUI,SAAU,EACpBF,SACK,GAAIa,EAAUG,EAAOvB,EAAQ,CAClC,GAA4B,IAAxBE,EAAYO,QACd,OAEFP,EAAYO,QAAU,EACtBJ,EAAUI,SAAU,EACpBF,SAEAW,MAGJ,CAAClB,EAAQkB,EAAkBX,IAGLW,sB,waClBhBO,E,qEAfCC,EAAe,uCAAG,WAAOC,GAAP,eAAAC,EAAA,sEACVC,YACjBC,YAAO,2CAA4C,wBACnD,CACEH,QAJyB,UAQzB,aAPEI,EADuB,cAQzB,IAAMA,OAAN,EAAMA,EAAMC,QARa,sBASrBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SATP,uCAYtBJ,QAZsB,IAYtBA,OAZsB,EAYtBA,EAAMK,MAZgB,2CAAH,uD,SAehBX,O,iBAAAA,I,4BAAAA,M,KAYL,IAAMY,EAAY,uCAAG,WAAOV,GAAP,eAAAC,EAAA,sEACPC,YACjBC,YAAO,iDAEL,wBAEF,CACEH,QAPsB,UAWtB,aAVEI,EADoB,cAWtB,IAAMA,OAAN,EAAMA,EAAMC,QAXU,sBAYlBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAZV,uCAenBJ,QAfmB,IAenBA,OAfmB,EAenBA,EAAMK,MAfa,2CAAH,sDAkBZE,EAAkB,uCAAG,WAAOX,GAAP,eAAAC,EAAA,+EAEXC,YACjBC,YAAO,4CACP,CAAEH,QAJ0B,cAExBI,EAFwB,yBAMvBA,GAAQ,IANe,uCAQ9BQ,QAAQC,MAAR,MAR8B,kBASvB,IATuB,yDAAH,sDAoBlBC,EAAe,uCAAG,WAAOd,GAAP,iBAAAC,EAAA,+EAERC,YACjBC,YACE,oEACA,wBAEF,CAAEH,QAPuB,UASvB,aAPEI,EAFqB,cASvB,IAAMA,OAAN,EAAMA,EAAMC,QATW,sBAUnBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAVT,uCAYpBJ,QAZoB,IAYpBA,GAZoB,UAYpBA,EAAMK,YAZc,aAYpB,EAAYM,MAZQ,yDAcpB,IAdoB,yDAAH,sDAkBfC,EAAiB,uCAAG,WAAOhB,GAAP,iBAAAC,EAAA,+EAEVC,YACjBC,YACE,sEACA,wBAEF,CAAEH,QAPyB,UASzB,aAPEI,EAFuB,cASzB,IAAMA,OAAN,EAAMA,EAAMC,QATa,sBAUrBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAVP,uCAYtBJ,QAZsB,IAYtBA,GAZsB,UAYtBA,EAAMK,YAZgB,aAYtB,EAAYM,MAZU,yDActB,IAdsB,yDAAH,sDAkBjBE,EAAkB,uCAAG,WAChCjB,GADgC,6BAAAC,EAAA,6DAEhCiB,EAFgC,+BAEfpB,EAAoBqB,MAFL,kBAKXjB,YACjBC,YAAO,8CAAD,OAC0Ce,GAC9C,wBAEF,CAAElB,QAV0B,UAY1B,aAPEI,EALwB,cAY1B,IAAMA,OAAN,EAAMA,EAAMC,QAZc,sBAatBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAbN,uCAevBJ,QAfuB,IAevBA,OAfuB,EAevBA,EAAMK,MAfiB,2DAiBvB,IAjBuB,0DAAH,sDAkClBW,EAAe,uCAAG,WAC7BpB,GAD6B,+BAAAC,EAAA,6DAE7BoB,EAF6B,+BAElB,GAFkB,+BAGV,GAHU,SAKVnB,YACjBC,YAAO,uDAAD,OACmDkB,EADnD,+BACkFA,GACtF,uBAEF,CAAErB,QAVyB,UAYzB,aAPEI,EALuB,cAYzB,IAAMA,OAAN,EAAMA,EAAMC,QAZa,sBAarBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAbP,uCAetBJ,QAfsB,IAetBA,GAfsB,UAetBA,EAAMK,YAfgB,aAetB,EAAYa,WAfU,2CAAH,sDAuBfC,EAAe,uCAAG,WAAOvB,GAAP,eAAAC,EAAA,sEACVC,YACjBC,YAAO,6BAA8B,uBACrC,CAAEH,QAHyB,UAKzB,aAJEI,EADuB,cAKzB,IAAMA,OAAN,EAAMA,EAAMC,QALa,sBAMrBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SANP,uCAQtBJ,QARsB,IAQtBA,OARsB,EAQtBA,EAAMK,MARgB,2CAAH,sDAWfe,EAAY,uCAAG,WAAOxB,GAAP,iBAAAC,EAAA,+EAELC,YACjBC,YAAO,gCAAiC,uBACxC,CACEH,QALoB,cAElBI,EAFkB,OAQpBK,GAAW,OAAJL,QAAI,IAAJA,OAAA,EAAAA,EAAMK,OAAQ,GACpBgB,MAAMC,QAAQjB,KACjBA,EAAO,IAVe,kBAYjBA,GAZiB,uCAcxBG,QAAQC,MAAR,MAdwB,kBAejB,IAfiB,yDAAH,sDAmBZc,EAAW,uCAAG,WAAO3B,GAAP,eAAAC,EAAA,+EAEJC,YACjBC,YAAO,kCAAmC,uBAC1C,CACEH,QALmB,cAEjBI,EAFiB,0BAQZ,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMK,OAAQ,IARE,yDAUhB,IAVgB,yDAAH,uD,gxBCxJT,aAACmB,EAAiB5B,GAAoC,IAE/D6B,EAAc,GAClB,GAAiB,gBAFID,EAAbE,SAEwB,CAC9B,IAAMT,EAAWU,OAAOC,aAAaC,QAAQ,aAAe,GAC5DJ,EAAc,CACZK,KAAMb,EACNc,UAAWd,EACXe,mBAAoBf,GAIxB,IAAMgB,EAAgB,CACpBC,gBACEV,EAAOU,iBACPC,KAAKC,UAAU,CACbC,QAAS,kBACTC,QAASd,EAAOE,SAChBa,aAAc,MACdC,cAAehB,EAAOiB,aAE1BA,WAAYjB,EAAOiB,WACnBC,IAAK,OACLC,MAAO,EACPC,QAAS,MACTC,gBAAiB,MACjBC,OAAQC,cACRC,wBACExB,EAAOwB,yBACP,8DACFlC,OAAQ,MAENU,EAAOyB,gBACTC,OAAOC,OAAOlB,EAAe,CAC3BgB,eAAgBzB,EAAOyB,iBAGvBzB,EAAO4B,OACTF,OAAOC,OAAOlB,EAAe,CAC3BmB,MAAO5B,EAAO4B,QAIlB,IAAMC,EAAMtD,YAAO,2CAAD,OAC2BuD,IACzC9B,GAFc,YAGX8B,IAAgB,EAAD,KAAMrB,GAAkBR,KAC5C,+BAEF,OAAO3B,YAAMuD,EAAK,CAAEzD,QAAO2D,MAAK,SAACC,GAC/B,IAAKA,IAAWA,EAAOnD,KACrB,MAAM,IAAIH,MAAJ,yBAA4BiC,KAAKC,UAAUoB,KAKnD,OAAOA,O,03BCwCIC,IAlKyB,SAAC,GAQnC,QAPJC,iBAOI,MAPQ,GAOR,EANJC,EAMI,EANJA,MAMI,IALJC,eAKI,MALM,GAKN,EAJJC,EAII,EAJJA,SACAC,EAGI,EAHJA,aACAC,EAEI,EAFJA,QACAC,EACI,EADJA,OACI,EACwBC,mBAAc,MAAnCjG,EADH,KACWkG,EADX,OAEoBD,oBAAS,WAAM,MAMrC,OALgBL,EAAQO,MAAK,SAACC,GAAD,OAAUA,EAAKC,WAC5BT,EAAQU,OAAS,IAC/BV,EAAQ,GAAGS,QAAS,GAEtBR,GAAYA,EAAQ,UAACD,EAAQ,UAAT,aAAC,EAAYW,MAAM,GAChCX,KANFjD,EAFH,KAES6D,EAFT,KAWEC,EAAkBhG,uBACtB,SAACiG,GACC,IAAMC,EAAUhE,EAAKwD,MAAK,SAACC,GAAD,OAAUA,EAAKC,UACzC,IAAIM,GAAWA,EAAQJ,OAASG,EAAhC,CAGA,IAAME,EAAUjE,EAAKkE,KAAI,SAACT,EAAMU,GAC9B,cACKV,GADL,IAEEC,OAAQD,EAAKG,OAASG,OAI1BF,EAAQI,GACRf,GAAYA,EAASa,MAEvB,CAACb,EAAUlD,EAAM3C,IA3Bf,EA8BoB+G,YAAcN,GA9BlC,mBA8BGO,EA9BH,KA8BUC,EA9BV,OAgC0ClH,YAAmB,CAAEC,WAA3DoB,EAhCJ,EAgCIA,gBAAiBD,EAhCrB,EAgCqBA,iBAhCrB,EAkC4B4F,YAAc3F,EAAiB,KAlC3D,mBAkCG8F,EAlCH,KAkCcC,EAlCd,KAmCJ,OACE,+CA+EqBpB,EAAU,OAAS,OAEhBA,EAAU,OAAS,OAItBA,EAAU,OAAS,OAIzBA,EAAU,MAAQ,OAOfA,EAAU,OAAS,WAhGrC,KACaqB,IAAW,UAAW1B,EAAW,CAC1C,4BAA6BK,EAC7B,UAAWA,KAHf,KAMGJ,GACC,SAAuB0B,QAASvB,EAAhC,sCAwEiBC,EAAU,OAAS,OAEhBA,EAAU,OAAS,OAItBA,EAAU,OAAS,OAIzBA,EAAU,MAAQ,OAOfA,EAAU,OAAS,WAzFjC,UACGJ,IAGA,OAAJhD,QAAI,IAAJA,OAAA,EAAAA,EAAM2D,QAAS,GACd,SAEEgB,YAAa,SAACC,GACZL,EAAU,CAAE5F,UAAWiG,EAAEC,cAAenG,QAASkG,EAAElG,WAErDoG,aAAc,WACZN,IACAhG,KAEFuG,YAAaP,EATf,sCAmEiBpB,EAAU,OAAS,OAEhBA,EAAU,OAAS,OAItBA,EAAU,OAAS,OAIzBA,EAAU,MAAQ,OAOfA,EAAU,OAAS,WApFjC,wDAWE,EAAC,IAAD,CACE4B,aAAc,EACdC,eAAgB,EAChBC,eAAe,EACfC,cAAe,OACfC,eAAe,EACfC,SAAU9B,EACV+B,eAAe,EACfC,MAAM,EACNC,gBAAgB,GAEfxF,EAAKkE,KAAI,SAACT,EAAMU,GACf,OACE,EAAC,IAAD,CAAasB,MAAO,CAAEC,MAAO,QAAUC,IAAKxB,GAC1C,SAKEwB,IAAKxB,EACLyB,YAAa,kBAAMvB,EAAMZ,EAAKG,OAC9BkB,aAAcR,EAPhB,sCA0COlB,EAAU,OAAS,OAEhBA,EAAU,OAAS,OAItBA,EAAU,OAAS,OAIzBA,EAAU,MAAQ,OAOfA,EAAU,OAAS,WA3DvB,KACaqB,IAAW,WAAY,CAChCf,OAAQD,EAAKC,OACb,kCAAmCN,KAHvC,KASE,gDAiCKA,EAAU,OAAS,OAEhBA,EAAU,OAAS,OAItBA,EAAU,OAAS,OAIzBA,EAAU,MAAQ,OAOfA,EAAU,OAAS,YAlDdK,EAAKoC,cAQzBxC,EACC,+CAwBiBD,EAAU,OAAS,OAEhBA,EAAU,OAAS,OAItBA,EAAU,OAAS,OAIzBA,EAAU,MAAQ,OAOfA,EAAU,OAAS,WAzCjC,KACaqB,IAAW,gCAAiC,CACrD,kCAAmCrB,KAFvC,KAKGC,GAED,KA9DN,gCA+EqBD,EAAU,OAAS,OAEhBA,EAAU,OAAS,OAItBA,EAAU,OAAS,OAIzBA,EAAU,MAAQ,OAOfA,EAAU,OAAS,SAhGrC,sZA+EqBA,EAAU,OAAS,OA/ExC,uCAiFwBA,EAAU,OAAS,OAjF3C,wEAqFqBA,EAAU,OAAS,OArFxC,gEAyFeA,EAAU,MAAQ,OAzFjC,uHAgGkBA,EAAU,OAAS,OAhGrC,2P,+ICuCW0C,IAzFwB,SAAC,GAIlC,IAHJC,EAGI,EAHJA,cAGI,IAFJC,kBAEI,MAFS,GAET,EADJjD,EACI,EADJA,UAEMkD,EAAUxI,iBAA8B,MAD1C,EAG0ByI,YAAuB,CACnDC,YAAa,kBAAMF,EAAQlI,WADrBqF,EAHJ,EAGIA,QAASgD,EAHb,EAGaA,SAHb,EAO0B9C,mBAASF,GAAhCiD,EAPH,KAOYC,EAPZ,KAeJ,OANAnI,qBAAU,WACJiF,GACFkD,GAAW,KAEZ,CAAClD,IAGF,EAAC,IAAMmD,SAAP,KACE,+CA+BcP,EAOWI,EAaAA,MAnDzB,KAAgB3B,IAAW,cAAe1B,IAA1C,KACE,SAAsByD,IAAKP,EAA3B,sCA8BYD,EAOWI,EAaAA,MAlDvB,UACA,SAKEX,MAAO,CAAEgB,SAAU,KAAMC,OAAQ,MALnC,sCA6BYV,EAOWI,EAaAA,MAjDvB,KACa3B,IAAW,CACpB,mFACE2B,GAAYC,KAHlB,KAOE,+CAsBUL,EAOWI,EAaAA,MA1CrB,KACa3B,IAAW,CACpB,uJACE2B,GAAYC,KAHlB,KAME,SACEM,eAAgB,kBAAML,EAAWlD,IADnC,sCAgBQ4C,EAOWI,EAaAA,MApCnB,KAEa3B,IAAW,CACpBmC,MAAOxD,EACPyD,OAAQzD,KAJZ,KAOG2C,EAAce,QAAQV,GAAYC,QAvB7C,gCAgCgBL,EAOWI,EAaAA,IApD3B,qEAgCgBJ,EAhChB,wGAuC2BI,EAvC3B,wEAuC2BA,EAvC3B,gEAuC2BA,EAvC3B,u0BAoD2BA,EApD3B,wEAoD2BA,EApD3B,gEAoD2BA,EApD3B,swB,sPCjBAW,EACAC,E,4iCAVG,SAASC,IACd,OAAOC,SAASC,KAAKC,WAAaF,SAASG,gBAAgBD,UAWtD,SAASE,EAA8BF,GAC5CL,GAAkB,EATb,SAAsBK,GAC3BF,SAASC,KAAKC,UAAYA,EAC1BF,SAASG,gBAAgBD,UAAYA,EAQrCG,CAAaH,GAKf,IAEII,EAFEC,EAAc,IAAIC,IA8JTxB,IAhHf,YAIG,IAHDC,EAGC,EAHDA,YAIMwB,EAAclK,mBADnB,EAG2BmK,qBAAWC,KAA/BC,EAHP,EAGOA,MAAOC,EAHd,EAGcA,SAETC,EAAYvK,kBAAO,GALxB,EAO+B6F,mBAA6B,MAAtD2E,EAPN,KAOgBC,EAPhB,KASD/J,qBAAU,WACR+J,EAAY/B,OACX,CAACA,IAQJhI,qBAAU,WACR,OAAO,WACL4J,EAAS,CACP3E,SAAS,EACTgD,SAAU,OAGb,IA1BF,MA4B2C9C,oBAAS,GAA9C6E,EA5BN,KA4BsBC,EA5BtB,KAyGD,OA3EAjK,qBAAU,WACR,IAAMkK,EAAyB,SAAC,GAAyB,IAAvBC,EAAuB,EAAvBA,QAAuB,EAAfC,SACxB,MAAQJ,IAAmBL,EAAM1E,UAAYkF,GAQ3DP,EAPe,CACb3E,QAASkF,EACTlC,SAAU,OAYhB,OAJI+B,GAAkBL,EAAM1E,YAzFhC,WACE,IAAIoE,EAAJ,CAIA,IACIgB,EADAD,EAAW,EAEXE,EAASxB,IAEPyB,EAAe,WACnB,IAAMC,EAAS1B,IACT2B,EAAYD,EAASF,EAE3B,GADAA,EAASE,EACL5B,EAIF,OAHAA,GAAkB,EAClBC,GAAkB,OAClBuB,EAAW,GAGb,IAAMM,EAAYD,EAAY,EAC1BC,IAAcL,GAChBD,EAAWK,EACXJ,EAAeK,GAEfN,GAAYK,EAfW,UAiBAnB,GAjBA,IAiBzB,4BACEY,EADoC,SACzB,CACTC,OAAQO,EACRN,SAAUO,KAAKC,IAAIR,KApBE,gCAyB3BvH,OAAOgI,iBAAiB,SAAUN,GAElClB,EAAgC,WAC9BxG,OAAOiI,oBAAoB,SAAUP,GACrClB,EAAgC,OAoD9B0B,GACAzB,EAAY0B,IAAId,IAEX,WACLZ,EAAY2B,OAAOf,GACM,IAArBZ,EAAY4B,MACV7B,GACFA,OAIL,CAACW,EAAgBL,EAAM1E,UAE1BjF,qBAAU,WACRwJ,EAAY5J,QAAU,IAAIuL,sBACxB,SAACC,GACCA,EAAQC,SAAQ,SAACC,GACf,IAAMtB,EACJsB,EAAOtB,gBAAkBsB,EAAOC,mBAAmBC,OAAS,GAC1D3B,EAAUjK,SAAYoK,GAI1BC,EAAkBD,GAEdpB,GAAmBC,EACjBA,EACFA,GAAkB,EAElBD,GAAkB,EAWtBgB,EAPe,CACb3E,QAAS+E,EACT/B,SAAU,OAfV4B,EAAUjK,SAAU,OAuB1B,CACE6L,WAAY,4BAGf,IAEHzL,qBAAU,WACR,GAAK8J,GAAaN,EAAY5J,QAA9B,CAEA,IAAM8L,EAAWlC,EAAY5J,QAI7B,OAFA8L,EAASC,QAAQ7B,GAEV,WACL4B,EAASE,iBAEV,CAAC9B,IAEGH,I,2LChDMkC,IAlHgB,SAAC,GAA6C,IAA3CjH,EAA2C,EAA3CA,UAAW/C,EAAgC,EAAhCA,KAAMiK,EAA0B,EAA1BA,UAAcC,EAAY,gDAC3E,OACE,uBAAyEA,EAAzE,gGAAwCnH,GAAuB,OAA/D,OACG/C,QADH,IACGA,OADH,EACGA,EAAMkE,KAAI,SAACT,EAAMU,GAChB,OACE,OAEEgG,KAAI,OAAE1G,QAAF,IAAEA,OAAF,EAAEA,EAAMG,KACZ+B,IAAKxB,EACLiG,OAAO,SACPpH,MAAK,OAAES,QAAF,IAAEA,OAAF,EAAEA,EAAMT,MACb0B,QAAS,WACHuF,GAGJI,YAAiB,YAAa9H,OAAOC,OAAOyH,EAAW,CACrDK,SAAU7G,EAAKM,GACfwG,KAAMpG,EAAM,OAZlB,sCAgBE,4DAAgCA,EAAM,KACtC,0CACE,4EAAkDV,QAAlD,IAAkDA,OAAlD,EAAkDA,EAAMT,OACxD,2CAAwBwH,IAAa/G,EAAKgH,WAA1C,2BAtBV,u7D,0UCdW,SAASC,IACtB,IAAMC,GAAO,IAAIC,MAAOC,cACxB,OACE,+CACE,4CAAOF,EAAP,uBACA,wDACA,mCACE,OACER,KAAK,8EACLC,OAAO,SACPU,IAAI,WAHN,oFAQF,mCACE,OAAGX,KAAK,6BAA6BC,OAAO,SAASU,IAAI,WAAzD,gEAIF,mCACE,OACEX,KAAK,4DACLC,OAAO,SACPU,IAAI,WAHN,gIAQF,mCACE,OACEX,KAAK,yEACLC,OAAO,SACPU,IAAI,WAHN,+GAQF,8IACA,6IACA,mCACE,OAAGX,KAAK,uBAAuBC,OAAO,SAASU,IAAI,WAAnD,iIAIF,2HACA,mCACE,OACEX,KAAK,wDACLC,OAAO,SACPU,IAAI,WAHN,0EAMK,IAPP,IAQI,IACF,OACEX,KAAK,sDACLC,OAAO,SACPU,IAAI,WAHN,0EAMK,IAfP,IAgBI,IACF,OACEX,KAAK,yEACLC,OAAO,SACPU,IAAI,WAHN,yDAQF,mCACE,OAEEX,KAAK,oCACLC,OAAO,SACPU,IAAI,WACJpG,QAAS,WACP2F,YAAiB,YAAa,CAC5B3I,QAAS,gBACTqJ,SAAU,6BACVC,UAAW,iBACXC,YAAa,8BAVnB,+DAeK,IAhBP,IAiBI,IACF,UAEEvG,QAAS,WACPwG,IAAOC,QAAQ,iBACfd,YAAiB,YAAa,CAC5B3I,QAAS,gBACTqJ,SAAU,6BACVC,UAAW,iBACXC,YAAa,8BARnB,+DAaQ,IA/BV,IAgCI,IACF,OAEEd,KAAK,sEACLC,OAAO,SACPU,IAAI,WACJpG,QAAS,WACP2F,YAAiB,YAAa,CAC5B3I,QAAS,gBACTqJ,SAAU,6BACVC,UAAW,iBACXC,YAAa,8BAVnB,gEArGJ,oR,8CCkFWG,MA5Ef,WAA0B,MAC4B9H,mBAAgC,IAA7E1D,EADiB,KACGyL,EADH,KAgBxB,OAbAlN,qBAAU,YACE,uCAAG,4BAAAe,EAAA,+EAEUoM,YAAsB,MAFhC,OAEHtL,EAFG,OAGTqL,EAAsBrL,GAHb,uGAAH,qDASVuL,KACC,IAEE3L,GAAuBA,EAAmB+D,OAE7C,8CACE,mDACG/D,QADH,IACGA,OADH,EACGA,EAAoBsE,KAAI,SAACsH,GACxB,OACE,OAEErB,KAAMqB,EAAe5H,KACrB+B,IAAK6F,EAAeC,KACpBX,IAAI,sBACJV,OAAO,SACP1F,QAAS,WACP2F,YAAiB,YAAa,CAC5B3I,QAAS,gBACTqJ,SAAU,8BACVC,UAAW,iBACXC,YAAaO,EAAeC,QAXlC,qCAeGD,EAAeC,UAnB1B,ypBAF4D,M,oHCFnDC,EAAO,CAClB,CACE3H,GAAI,YACJ8B,MAAO,gBAET,CACE9B,GAAI,wBACJ8B,MAAO,gBAET,CACE9B,GAAI,cACJ8B,MAAO,gBAET,CACE9B,GAAI,sBACJ8B,MAAO,gBAET,CACE9B,GAAI,gBACJ8B,MAAO,OAET,CACE9B,GAAI,iBACJ8B,MAAO,gBAET,CACE9B,GAAI,uBACJ8B,MAAO,sBAET,CACE9B,GAAI,uBACJ8B,MAAO,sBAET,CACE9B,GAAI,8BACJ8B,MAAO,4BAET,CACE9B,GAAI,gBACJ8B,MAAO,gBAET,CACE9B,GAAI,uBACJ8B,MAAO,gBAET,CACE9B,GAAI,wBACJ8B,MAAO,4BAET,CACE9B,GAAI,mBACJ8B,MAAO,sBAET,CACE9B,GAAI,oBACJ8B,MAAO,gBAET,CACE9B,GAAI,yBACJ8B,MAAO,iBA2QI8F,IAvQoB,SAAC,GAG9B,EAFJ/L,mBAEI,QADJgM,0BACI,MADiB,GACjB,EACEC,EAAepO,mBAKfqO,EAAerO,iBAA+B,IAC9CG,EAAWH,mBAPb,EAQ0B6F,oBAAS,GAAhCyI,EARH,KAQYC,EARZ,OAS8B1I,mBAAsB,IAAjD2I,EATH,KAScC,EATd,QAUeC,cACGC,YAAU,CAC9BC,UAAW,KAZT,mBAWG7F,EAXH,KAWQ8F,EAXR,OAc8BF,YAAU,CAC1CC,UAAW,IAfT,mBAcGE,EAdH,KAccC,EAdd,KAkBJrO,qBAAU,WACJmO,IACFjC,YAAiB,aAAc,CAC7B3I,QAAS,gBACTqJ,SAAU,0BACVC,UAAW,gBAEbX,YAAiB,aAAc,CAC7B3I,QAAS,gBACTqJ,SAAU,0BACVC,UAAW,yBAGd,CAACsB,IAEJnO,qBAAU,WACJqO,GACFnC,YAAiB,aAAc,CAC7B3I,QAAS,gBACTqJ,SAAU,0BACVC,UAAW,qBAGd,CAACwB,IAEJ,IAAMC,EAAUhP,iBAA8B,MAExCiP,EAAe5O,uBAAY,SAACiG,EAAI4I,EAAQvJ,GAC5C,GAAIqJ,EAAQ1O,QAAS,KACX6O,EAAQH,EAAQ1O,QAAQa,wBAAxBgO,IACJxJ,GACFkE,YAA8BL,cAAiB2F,EAAM,KAGrDhP,EAASG,SACXiD,OAAO3C,aAAaT,EAASG,SAE/BH,EAASG,QAAUG,WAAU,sBAAC,4CAAAgB,EAAA,yDACvByN,GACHtC,YAAiB,cAAe,CAC9B3I,QAAS,gBACTqJ,SAAU,kBACVC,UAAW,cACXC,YAAalH,IAIX8I,EAAU/D,KAAKgE,SACrBjB,EAAa9N,QAAU,CAAEgG,KAAI8I,UAASE,aAAa,GACnDf,GAAW,KAELgB,EAdsB,OAcVlB,QAdU,IAcVA,OAdU,EAcVA,EAAc/N,QAAd,OAAsB8N,QAAtB,IAAsBA,GAAtB,UAAsBA,EAAc9N,eAApC,aAAsB,EAAuBgG,KAdnC,uBAgB1BmI,EAAac,GACbnB,EAAa9N,QAAQgP,aAAc,EAjBT,iCAqB5Bf,GAAW,GACXE,EAAa,IAEPe,EAAoB,CACxBC,QAAS,aACTnM,SAAQ,OAAE8K,QAAF,IAAEA,GAAF,UAAEA,EAAc9N,eAAhB,aAAE,EAAuBgG,GACjCtB,MAAO,IA3BmB,UA+BP0K,YAAUF,GA/BH,YA+BtBpK,EA/BsB,QAgCrBnD,KAAP,OAAcmD,QAAd,IAAcA,OAAd,EAAcA,EAAQnD,KAAK0N,QAAO,SAAC3J,GAAD,OAAsBA,EAAK4J,cAE7C,OAAZxB,QAAY,IAAZA,GAAA,UAAAA,EAAc9N,eAAd,eAAuB8O,WAAYA,EAlCX,mDAqC5Bb,GAAW,GACXE,EAAarJ,EAAOnD,MACpBmM,EAAa9N,QAAQgP,aAAc,GAEnB,OAAZlB,QAAY,IAAZA,GAAA,UAAAA,EAAc9N,eAAd,eAAuBgG,MAAvB,OAA6B+H,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAc/N,WAC7C+N,EAAa/N,QAAb,OAAqB8N,QAArB,IAAqBA,GAArB,UAAqBA,EAAc9N,eAAnC,aAAqB,EAAuBgG,IAAMlB,EAAOnD,MA1C/B,4CA4C3B,OACF,IAoCH,OACE,SAAKqD,UAAU,0BAA0ByD,IAAKA,GAC5C,SAAKzD,UAAU,qCACb,SAAKA,UAAU,qCACb,EAAC,IAAD,CACEA,UAAW,UACXgD,cAAe,SAAC3C,GACd,OACE,EAAC,IAAD,CACEA,QAASA,EACTD,aAAc,kBAAM,GACpBF,QAASyI,EAAKxH,KAAI,SAACT,GAAD,MAAW,CAC3BG,KAAMH,EAAKM,GACX8B,MAAOpC,EAAKoC,UAEd3C,SAAU,SAACa,EAAIuJ,GAAL,OAAiBZ,EAAa3I,EAAIuJ,EAASlK,IACrDC,OACE,OAAG8G,KAAK,QAAQC,OAAQ,UACtB,EAAC,IAAD,CACE1F,QAAS,WACP2F,YAAiB,YAAa,CAC5BU,SAAU,mBAHhB,kCAeZ,EAAC,IAAD,CACEgB,QAASA,EACTwB,gBApEc,WAAM,cAE1B,OAAC1B,QAAD,IAACA,GAAD,UAACA,EAAc9N,eAAf,aAAC,EAAuBgG,KACxBgI,GACAF,EAAa9N,QAAQgP,cAIvBf,GAAW,GAEXmB,YAAU,CACRD,QAAS,YACTnM,SAAQ,OAAE8K,QAAF,IAAEA,GAAF,UAAEA,EAAc9N,eAAhB,aAAE,EAAuBgG,GACjCtB,MAAO,GACPH,eAAc,OAAE2J,QAAF,IAAEA,GAAF,UAAEA,GAAqB,OAATA,QAAS,IAATA,OAAA,EAAAA,EAAWtI,QAAS,UAAlC,iBAAE,EAAoC6J,YAAtC,aAAE,EAA0CC,aAEzD7K,MAAK,SAAC8K,GAAQ,UAQX,EAPI1N,EAAI,OAAG0N,QAAH,IAAGA,GAAH,UAAGA,EAAKhO,YAAR,aAAG,EAAW0N,QAAO,SAAC3J,GAAD,OAAsBA,EAAK4J,aACpDpJ,EAAO,OAAGgI,QAAH,IAAGA,OAAH,EAAGA,EAAW0B,OAAO3N,IAClCkM,EAAajI,IAGC,OAAZ4H,QAAY,IAAZA,GAAA,UAAAA,EAAc9N,eAAd,eAAuBgG,KACvB+H,EAAa/N,QAAb,OAAqB8N,QAArB,IAAqBA,GAArB,UAAqBA,EAAc9N,eAAnC,aAAqB,EAAuBgG,OAE5C+H,EAAa/N,QAAb,OAAqB8N,QAArB,IAAqBA,GAArB,UAAqBA,EAAc9N,eAAnC,aAAqB,EAAuBgG,IAAME,MAGrD2J,SAAQ,WACP5B,GAAW,QAwCP6B,KAAK,GAEL,SACE9K,UAAU,sEACVyD,IAAKiG,GAFP,OAIGR,QAJH,IAIGA,OAJH,EAIGA,EAAW/H,KAAI,SAACT,EAAWU,GAAkB,gDAC5C,OACE,SAAKpB,UAAU,mCAAmC4C,IAAKxB,GACrD,EAAC,IAAD,CACE2J,MAAO3J,EACPpD,UAAsB,OAAZ8K,QAAY,IAAZA,GAAA,UAAAA,EAAc9N,eAAd,eAAuBgG,KAAM,GACvCgK,YAAatK,EAAKuK,cAClBhL,MAAK,OAAES,QAAF,IAAEA,GAAF,UAAEA,EAAM+J,YAAR,aAAE,EAAYxK,MACnBiL,SAAQ,OAAExK,QAAF,IAAEA,GAAF,UAAEA,EAAM+J,KAAKU,mBAAb,aAAE,EAAwBC,UAClC/H,SAAQ,OAAE3C,QAAF,IAAEA,GAAF,UAAEA,EAAM+J,YAAR,aAAE,EAAYY,eACtBC,OAAM,OAAE5K,QAAF,IAAEA,GAAF,UAAEA,EAAM+J,YAAR,iBAAE,EAAYc,iBAAd,aAAE,EAAuBC,WAC/B9C,KAAI,OAAEhI,QAAF,IAAEA,GAAF,UAAEA,EAAM+J,YAAR,iBAAE,EAAYc,iBAAd,aAAE,EAAuB7C,KAC7B+C,YAAW,OAAE/K,QAAF,IAAEA,GAAF,UAAEA,EAAM+J,YAAR,aAAE,EAAYiB,aACzBC,iBACM,OAAJjL,QAAI,IAAJA,GAAA,UAAAA,EAAM+J,YAAN,mBAAYmB,yBAAZ,eAA+BC,qBAA/B,OACAnL,QADA,IACAA,GADA,UACAA,EAAM+J,YADN,aACA,EAAYqB,YAEdC,OAAM,OAAErL,QAAF,IAAEA,GAAF,UAAEA,EAAM+J,YAAR,iBAAE,EAAYc,iBAAd,aAAE,EAAuBS,QAC/BC,cACM,OAAJvL,QAAI,IAAJA,GAAA,UAAAA,EAAM+J,YAAN,mBAAYc,iBAAZ,eAAuBW,mBACtB,OAACxL,QAAD,IAACA,GAAD,UAACA,EAAM+J,YAAP,iBAAC,EAAYc,iBAAb,iBAAC,EAAuBY,4BAAxB,aAAC,EACEC,aAENC,WAAU,OACR3L,QADQ,IACRA,GADQ,UACRA,EAAM+J,YADE,iBACR,EAAYc,iBADJ,iBACR,EAAuBY,4BADf,aACR,EAA6CC,YAE/CE,gBAAiB,CACf3N,QAAS,gBACTqJ,SAAU,sBACVC,UAAW,eAEbsE,iBAAkB,CAChB5N,QAAS,gBACTqJ,SAAU,oBACVC,UAAW,sBAOtBe,EAAU,EAAC,IAAD,MAAc,OAG7B,SAAKhJ,UAAU,oCACb,aACE,EAAC,IAAD,CACEC,MAAM,iCACNG,aAAc,WACZkH,YAAiB,YAAa,CAC5B3I,QAAS,gBACTqJ,SAAU,0BACVC,UAAW,oBACXuE,aAAc,sCAIpB,EAAC,IAAD,CACEtF,UAAW,CACTvI,QAAS,gBACTqJ,SAAU,yBACVC,UAAW,qBAEbhL,KAAI,OAAE4L,QAAF,IAAEA,OAAF,EAAEA,EAAoB1H,KAAI,SAACT,GAAD,MAAW,CACvCM,GAAE,OAAEN,QAAF,IAAEA,OAAF,EAAEA,EAAM6G,SACV1G,KAAM,YAAF,cAAcH,QAAd,IAAcA,OAAd,EAAcA,EAAM6G,UACxBtH,MAAK,OAAES,QAAF,IAAEA,OAAF,EAAEA,EAAMT,MACbyH,UAAS,OAAEhH,QAAF,IAAEA,OAAF,EAAEA,EAAMhB,aAIvB,SAAKM,UAAU,UAAUyD,IAAK+F,GAC5B,EAAC,IAAD,CAAevJ,MAAM,2BAAOG,aAAc,kBAAM,KAChD,EAAC,EAAD,OAEF,EAACuH,EAAD,W,wFC1VK,SAAStI,IACtB,IAAI2B,EAAK,GACT,IACE,IAAMyL,EAAUC,eAAevO,QAAQ,aACnCsO,IACFzL,EAAKyL,GAEP,MAAOE,IACJ3L,IACHA,EAQJ,WACE,IAAM4L,EAAM,EACNC,EAAMC,OAAOC,kBAAoB,iBACvC,gBAAUhH,KAAKiH,MAAMjH,KAAKgE,UAAY8C,EAAMD,EAAM,GAAKA,IAXhDK,IAEP,IACEP,eAAeQ,QAAQ,YAAalM,GACpC,MAAO2L,IACT,OAAO3L,I,kCCbT,IAAImM,EAAI,EAAQ,QACZC,EAAU,EAAQ,QAClBC,EAAgB,EAAQ,QACxBC,EAAQ,EAAQ,QAChBC,EAAa,EAAQ,QACrBC,EAAqB,EAAQ,QAC7BC,EAAiB,EAAQ,QACzBC,EAAW,EAAQ,QASvBP,EAAE,CAAE9F,OAAQ,UAAWsG,OAAO,EAAMC,MAAM,EAAMC,SAN5BR,GAAiBC,GAAM,WACzCD,EAAcS,UAAmB,QAAEC,KAAK,CAAElO,KAAM,eAA+B,mBAKV,CACrE,QAAW,SAAUmO,GACnB,IAAIC,EAAIT,EAAmBU,KAAMX,EAAW,YACxCY,EAAiC,mBAAbH,EACxB,OAAOE,KAAKrO,KACVsO,EAAa,SAAUC,GACrB,OAAOX,EAAeQ,EAAGD,KAAanO,MAAK,WAAc,OAAOuO,MAC9DJ,EACJG,EAAa,SAAUtM,GACrB,OAAO4L,EAAeQ,EAAGD,KAAanO,MAAK,WAAc,MAAMgC,MAC7DmM,MAMLZ,GAAmC,mBAAjBC,GAAgCA,EAAcS,UAAmB,SACtFJ,EAASL,EAAcS,UAAW,UAAWP,EAAW,WAAWO,UAAmB,U,iHC3B3EhJ,EAAsBuJ,wBACjC,IAyBaC,IAnBwB,SAAC,GAAiB,IAAfC,EAAe,EAAfA,SAAe,EAC7BhO,mBAAS,CACjCF,SAAS,EACTgD,SAAU,IAFL0B,EADgD,KACzCC,EADyC,KAKvD,OACE,EAAC,IAAMxB,SAAP,KACE,EAACsB,EAAoB0J,SAArB,CACEC,MAAO,CACL1J,QACAC,aAGDuJ,M,uBC3BD,EAAQ,OAIhBpB,CAAE,CAAE9F,OAAQ,SAAUqH,MAAM,GAAQ,CAClC3B,iBAAkB","file":"static/chunks/995b8bc84e58a17c05dbb474cf935ca7b3e32630.5c072224f66af8016618.js","sourcesContent":["import { useCallback, useEffect, useRef } from 'react'\nimport SwiperClass from 'swiper/types/swiper-class'\n\nfunction useSwiperAutoSlide({\n swiper,\n offset = 100,\n speed = 150,\n}: {\n swiper?: SwiperClass\n offset?: number\n speed?: number\n}) {\n const positionRef = useRef(0)\n const runningRef = useRef(false)\n const isNextRef = useRef(false)\n const timerRef = useRef()\n\n const autoNext = useCallback(() => {\n if (!positionRef.current || !swiper || runningRef.current) return\n runningRef.current = true\n if (isNextRef.current) {\n swiper.slideNext(speed)\n } else {\n swiper.slidePrev(speed)\n }\n // 两端时 slideChangeTransitionEnd 不会执行 这里用定时器处理\n timerRef.current = setTimeout(() => {\n runningRef.current = false\n }, speed)\n }, [speed, swiper])\n\n useEffect(() => {\n if (!swiper) return\n const handleSlideChange = () => {\n clearTimeout(timerRef.current!)\n runningRef.current = false\n }\n swiper.on('slideChangeTransitionEnd', handleSlideChange)\n return () => {\n swiper.off('slideChangeTransitionEnd', handleSlideChange)\n }\n }, [autoNext, swiper])\n\n const handleMouseleave = useCallback(() => {\n positionRef.current = 0\n }, [])\n\n const handleMousemove = useCallback<\n ({\n clientX,\n container,\n }: {\n clientX: number\n container: HTMLElement\n }) => void\n >(\n ({ clientX, container }) => {\n const { left, right } = container.getBoundingClientRect()\n if (clientX > right - offset) {\n if (positionRef.current === 2) {\n return\n }\n positionRef.current = 2\n isNextRef.current = true\n autoNext()\n } else if (clientX < left + offset) {\n if (positionRef.current === 1) {\n return\n }\n positionRef.current = 1\n isNextRef.current = false\n autoNext()\n } else {\n handleMouseleave()\n }\n },\n [offset, handleMouseleave, autoNext]\n )\n\n return { handleMousemove, handleMouseleave }\n}\n\nexport default useSwiperAutoSlide\n","import fetch from 'lib/decorated-fetch'\nimport getUrl from 'lib/url'\n\nexport interface ICommonVideoInfo {\n cover_url: string\n video_id: string\n video_watch_count: number\n video_type: number\n video_duration: number\n video_size: string\n}\n\nexport interface ICommonUserInfo {\n avatar_url: string\n name: string\n description: string\n user_id: 4661945771\n user_verified: boolean\n verified_content: string\n motor_auth_show_info: {\n auth_v_type: number\n auth_v_desc: string\n }\n}\n\nexport interface ICommonColumn {\n id: 225\n uid: number\n mid: number\n logo: string\n name: string\n description: string\n modify_time: number\n create_time: number\n episode: number\n introduction: string\n}\n\nexport interface ICommonVideoData {\n unique_id_str: string\n title: string\n publish_time: number\n video_info: ICommonVideoInfo\n column: ICommonColumn\n}\n\nexport const getHomeOriginal = async (req: any) => {\n const json = await fetch(\n getUrl(`/motor/pc/content/home_original?count=30`, 'motor.pc_content.api'),\n {\n req,\n }\n )\n\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n\n return json?.data\n}\n\nexport enum PGC_CAGETORY_SROUCE {\n VIDEO = 1,\n VIDEO_HOME = 2,\n}\n\nexport interface IHomeVideoData {\n unique_id_str: string\n video_info: ICommonVideoInfo\n user_info: ICommonUserInfo\n column: ICommonColumn\n}\n\nexport const getHomeVideo = async (req: any) => {\n const json = await fetch(\n getUrl(\n `/motor/pc/content/home_video?count=48&source=1`,\n 'motor.pc_content.api'\n ),\n {\n req,\n }\n )\n\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n\n return json?.data\n}\n\nexport const friendshipLinkData = async (req: any) => {\n try {\n const json = await fetch(\n getUrl('/cloud/api/invoke/get_pc_friendship_link'),\n { req }\n )\n return json || []\n } catch (err) {\n console.error(err)\n return []\n }\n}\n\nexport interface ICommonContentRankItem {\n title: string\n count: number\n format_count: string\n group_id: string\n}\n\nexport const getPGCVideoRank = async (req: any) => {\n try {\n const json = await fetch(\n getUrl(\n '/motor/pc/content/pgc_content_rank?rank_type=pgc_video_total_rank',\n 'motor.pc_content.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data?.list\n } catch (e) {\n return []\n }\n}\n\nexport const getPGCArticleRank = async (req: any) => {\n try {\n const json = await fetch(\n getUrl(\n '/motor/pc/content/pgc_content_rank?rank_type=pgc_article_total_rank',\n 'motor.pc_content.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data?.list\n } catch (e) {\n return []\n }\n}\n\nexport const getPGCCategoryList = async (\n req: any,\n source: number = PGC_CAGETORY_SROUCE.VIDEO\n) => {\n try {\n const json = await fetch(\n getUrl(\n `/motor/pc/content/all_category_list?source=${source}`,\n 'motor.pc_content.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data\n } catch (e) {\n return []\n }\n}\n\nexport interface ILiveRoomItem {\n type: string\n room_id: string\n popularity: number\n title: string\n cover_url: string\n user_id: string\n user_name: string\n avatar: string\n rtmp_pull_url: string\n user_verified: boolean\n city_name: string\n}\nexport const getLiveRoomList = async (\n req: any,\n cityName = '',\n selectedCityName = ''\n) => {\n const json = await fetch(\n getUrl(\n `/motor/pc/common/home_live_rooms?count=48&city_name=${cityName}&selected_city_name=${cityName}`,\n 'motor.pc_common.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data?.live_list\n}\n\nexport interface ILiveBrandItem {\n brand_id: string\n brand_name: string\n logo: string\n}\nexport const getLiveTabsList = async (req: any) => {\n const json = await fetch(\n getUrl('/motor/pc/common/live_tabs', 'motor.pc_common.api'),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data\n}\n\nexport const getTodayNews = async (req: any) => {\n try {\n const json = await fetch(\n getUrl('/motor/pc/common/rcm_articles', 'motor.pc_common.api'),\n {\n req,\n }\n )\n let data = json?.data || []\n if (!Array.isArray(data)) {\n data = []\n }\n return data\n } catch (err) {\n console.error(err)\n return []\n }\n}\n\nexport const getFocusPic = async (req: any) => {\n try {\n const json = await fetch(\n getUrl('/motor/pc/common/home/focus_pic', 'motor.pc_common.api'),\n {\n req,\n }\n )\n return json?.data || []\n } catch (err) {\n return []\n }\n}\n\nexport const getFeedData = async (req: any) => {\n const json = await fetch(\n getUrl(\n '/motor/stream_entrance/get_feed_pc/v47/?tt_from=enter_auto&category=motor_car_use&sub_category=&impression_info=%7B\"page_id\"%3A\"page_car_series\"%2C\"sub_tab\"%3A\"motor_car_use\"%2C\"product_name\"%3A\"web\"%7D&aid=1839&refer=1&channel=web&device_platform=web&web_id=5999794205218462&motor_feed_extra_params=%7B\"new_feed\"%3A%20true%2C%20\"feed_type\"%3A%201%7D&source=pc',\n 'motor.stream.entrance'\n ),\n { req }\n )\n return json?.data\n}\n","// feed流接口\n\nimport fetch from 'lib/decorated-fetch'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport getUrl from './url'\nimport getFakeWebid from 'lib/fake-webid'\nimport { IUser } from 'Components/ugc/user'\nimport { IUserInfo } from './fetch-community-feed'\n\nexport interface IParams {\n // 下拉刷新时需要改变\n tt_from: 'enter_auto' | 'load_more' | ''\n // 频道\n category: string\n // 子频道\n sub_category?: string\n /* 车系id */\n concern_id?: number\n // 数量\n count?: number\n // 加载更多时最后一条数据的behot_time.\n max_behot_time?: number\n min_behot_time?: number\n motor_feed_extra_params?: string\n impression_info?: string\n}\n\n/**\n * feed流单个数据\n */\nexport interface IFeedData {\n type: number\n unique_id_str: string\n duplicate?: boolean\n info: {\n abstract_content: string\n source: string\n title: string\n group_id: string\n video_id?: string\n video_duration: number\n image_list: [\n {\n url: string\n width: number\n height: number\n url_list: { url: string }[]\n }\n ]\n repost_info?: {\n image_url?: string\n }\n read_count: number\n comment_count: number\n digg_count: number\n user_digg: boolean\n article_type: number\n behot_time: number\n display_time: number\n publish_time: number\n user_info: IUserInfo\n user_verified?: boolean\n cursor: number\n share_url: string\n video_detail_info: {\n detail_video_large_image: {\n url: string\n }\n }\n }\n}\n\n/**\n * feed流返回数据\n */\nexport interface IFeedResult {\n tips: {\n display_info: string\n }\n data: IFeedData[]\n}\n\nexport default (params: IParams, req?: any): Promise => {\n const { category } = params\n let extraParams = {}\n if (category === 'motor_local') {\n const cityName = window.localStorage.getItem('cityName') || ''\n extraParams = {\n city: cityName,\n city_name: cityName,\n selected_city_name: cityName,\n }\n }\n\n const defaultParams = {\n impression_info:\n params.impression_info ||\n JSON.stringify({\n page_id: 'page_car_series',\n sub_tab: params.category,\n product_name: 'web',\n car_series_id: params.concern_id,\n }),\n concern_id: params.concern_id,\n aid: '1839',\n refer: 1,\n channel: 'web',\n device_platform: 'web',\n web_id: getFakeWebid(),\n motor_feed_extra_params:\n params.motor_feed_extra_params ||\n '{\"new_feed\": true, \"feed_type\": 1, \"source_from\": \"web_pc\"}',\n source: 'pc',\n }\n if (params.max_behot_time) {\n Object.assign(defaultParams, {\n max_behot_time: params.max_behot_time,\n })\n }\n if (params.count) {\n Object.assign(defaultParams, {\n count: params.count,\n })\n }\n // console.log(params)\n const url = getUrl(\n `/motor/stream_entrance/get_feed_pc/v47/?${serializeObject(\n params\n )}&${serializeObject({ ...defaultParams, ...extraParams })}`,\n 'automobile.apigateway.proxy'\n )\n return fetch(url, { req }).then((result: Partial | null) => {\n if (!result || !result.data) {\n throw new Error(`Get Feed Error ${JSON.stringify(result)}`)\n }\n // if (params.category === 'video') {\n // result.data = result.data.filter(item => item.info.video_id)\n // }\n return result as IFeedResult\n })\n}\n","import React, { ReactNode, useCallback, useState } from 'react'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport classNames from 'classnames'\nimport useHoverDelay from 'Components/hooks/use-hover-delay'\nimport useSwiperAutoSlide from 'Components/hooks/use-swiper-auto-slide'\n\ninterface IProps {\n className?: string\n title?: JSX.Element | string\n navList?: { link: string; label: string; icon?: string; active?: boolean }[]\n onChange?: (id: string, isIinit?: boolean) => void\n onTitleClick: () => void\n isFixed?: boolean\n append?: ReactNode\n}\n\nconst FloorTabTitle: React.FC = ({\n className = '',\n title,\n navList = [],\n onChange,\n onTitleClick,\n isFixed,\n append,\n}) => {\n const [swiper, setSwiper] = useState(null!)\n const [list, setList] = useState(() => {\n const hitItem = navList.find((item) => item.active)\n if (!hitItem && navList.length > 0) {\n navList[0].active = true\n }\n onChange && onChange(navList[0]?.link, true)\n return navList\n })\n\n const handleMouseOver = useCallback(\n (id) => {\n const hitItem = list.find((item) => item.active)\n if (hitItem && hitItem.link === id) {\n return\n }\n const newList = list.map((item, index) => {\n return {\n ...item,\n active: item.link === id ? true : false,\n }\n })\n\n setList(newList as any)\n onChange && onChange(id)\n },\n [onChange, list, swiper]\n )\n\n const [start, cancel] = useHoverDelay(handleMouseOver)\n\n const { handleMousemove, handleMouseleave } = useSwiperAutoSlide({ swiper })\n\n const [autoStart, autoCancel] = useHoverDelay(handleMousemove, 200)\n return (\n \n {title && (\n
\n {title}\n
\n )}\n {list?.length > 0 && (\n {\n autoStart({ container: e.currentTarget, clientX: e.clientX })\n }}\n onMouseLeave={() => {\n autoCancel()\n handleMouseleave()\n }}\n onMouseDown={autoCancel}\n >\n \n {list.map((item, index) => {\n return (\n \n start(item.link)}\n onMouseLeave={cancel}\n >\n {item.label}\n \n \n )\n })}\n \n \n )}\n {append ? (\n \n {append}\n \n ) : null}\n \n \n )\n}\n\nexport default FloorTabTitle\n","import React, { ReactNode, useEffect, useRef, useState } from 'react'\nimport classNames from 'classnames'\nimport useStickyHeaderObserve from 'Components/hooks/use-sticky-header-observe'\n\ninterface IProps {\n renderContent(isFixed: boolean): ReactNode\n markOffset?: number\n className?: string\n}\n\nconst StickyHeader: React.FC = ({\n renderContent,\n markOffset = 30,\n className,\n}) => {\n const markRef = useRef(null)\n\n const { isFixed, duration } = useStickyHeaderObserve({\n getMarkNode: () => markRef.current,\n })\n\n const [isLeave, setIsLeave] = useState(isFixed)\n\n useEffect(() => {\n if (isFixed) {\n setIsLeave(true)\n }\n }, [isFixed])\n\n return (\n \n
\n
\n \n \n setIsLeave(isFixed)}\n className={classNames({\n enter: isFixed,\n leave: !isFixed,\n })}\n >\n {renderContent(Boolean(duration && isLeave))}\n
\n
\n \n \n \n
\n )\n}\n\nexport default StickyHeader\n","import { useContext, useEffect, useRef, useState } from 'react'\nimport PubSub from 'pubsub-js'\nimport { StickyHeaderContext } from 'Components/new/sticky-header/sticky-header-provider'\n\nexport function getScrollTop() {\n return document.body.scrollTop || document.documentElement.scrollTop\n}\n\nexport function setScrollTop(scrollTop: number) {\n document.body.scrollTop = scrollTop\n document.documentElement.scrollTop = scrollTop\n}\n\nlet isObservePaused: boolean\nlet isResetByScroll: boolean\n\nexport function setScrollTopWithStickyObserve(scrollTop: number) {\n isObservePaused = true\n setScrollTop(scrollTop)\n}\n\ntype Subscriber = (params: { isDown: boolean; distance: number }) => void\n\nconst subscribers = new Set()\n\nlet removeScrollDirectionListener: (() => void) | null\n\nfunction addScrollDirectionListener() {\n if (removeScrollDirectionListener) {\n return\n }\n\n let distance = 0\n let curDirection: boolean\n let preTop = getScrollTop()\n\n const handleScroll = () => {\n const curTop = getScrollTop()\n const curOffset = curTop - preTop\n preTop = curTop\n if (isObservePaused) {\n isObservePaused = false\n isResetByScroll = true\n distance = 0\n return\n }\n const curIsDown = curOffset > 0\n if (curIsDown !== curDirection) {\n distance = curOffset\n curDirection = curIsDown\n } else {\n distance += curOffset\n }\n for (const subscriber of subscribers) {\n subscriber({\n isDown: curIsDown,\n distance: Math.abs(distance),\n })\n }\n }\n\n window.addEventListener('scroll', handleScroll)\n\n removeScrollDirectionListener = () => {\n window.removeEventListener('scroll', handleScroll)\n removeScrollDirectionListener = null\n }\n}\n\nfunction useStickyHeaderObserve({\n getMarkNode,\n}: {\n getMarkNode(): HTMLElement | null\n}) {\n const observerRef = useRef()\n\n const { state, setState } = useContext(StickyHeaderContext)\n\n const isInitRef = useRef(true)\n\n const [markNode, setMarkNode] = useState(null)\n\n useEffect(() => {\n setMarkNode(getMarkNode())\n }, [getMarkNode])\n\n // useEffect(() => {\n // if (!state.isFixed) {\n // PubSub.publish('SEARCH_INPUT_Hidden', state)\n // }\n // }, [state])\n\n useEffect(() => {\n return () => {\n setState({\n isFixed: false,\n duration: 0,\n })\n }\n }, [])\n\n const [isIntersecting, setIsIntersecting] = useState(false)\n\n useEffect(() => {\n const subscriber: Subscriber = ({ isDown, distance }) => {\n if ((distance > 120 || !isIntersecting) && state.isFixed !== isDown) {\n const result = {\n isFixed: isDown,\n duration: 300,\n }\n // if (result.isFixed) {\n // PubSub.publish('SEARCH_INPUT_Hidden', result)\n // }\n setState(result)\n }\n }\n if (isIntersecting || state.isFixed) {\n addScrollDirectionListener()\n subscribers.add(subscriber)\n }\n return () => {\n subscribers.delete(subscriber)\n if (subscribers.size === 0) {\n if (removeScrollDirectionListener) {\n removeScrollDirectionListener()\n }\n }\n }\n }, [isIntersecting, state.isFixed])\n\n useEffect(() => {\n observerRef.current = new IntersectionObserver(\n (changes) => {\n changes.forEach((change) => {\n const isIntersecting =\n change.isIntersecting || change.boundingClientRect.bottom < 0\n if (isInitRef.current && !isIntersecting) {\n isInitRef.current = false\n return\n }\n setIsIntersecting(isIntersecting)\n\n if (isObservePaused || isResetByScroll) {\n if (isResetByScroll) {\n isResetByScroll = false\n } else {\n isObservePaused = false\n }\n return\n }\n const result = {\n isFixed: isIntersecting,\n duration: 300,\n }\n // if (result.isFixed) {\n // PubSub.publish('SEARCH_INPUT_Hidden', result)\n // }\n setState(result)\n })\n },\n {\n rootMargin: '10000px 0px -100% 0px',\n }\n )\n }, [])\n\n useEffect(() => {\n if (!markNode || !observerRef.current) return\n\n const observer = observerRef.current\n\n observer.observe(markNode)\n\n return () => {\n observer.disconnect()\n }\n }, [markNode])\n\n return state\n}\n\nexport default useStickyHeaderObserve\n","import React from 'react'\nimport formatNumber from '@arsenal/arsenal/modules/formatNumber'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n\ninterface IProps {\n className?: string\n list: {\n id: string\n title: string\n link: string\n viewCount: number\n }[]\n teaParams: {[key:string]: string}\n [key:string]:any\n}\n\nconst List: React.FC = ({ className, list, teaParams, ...props }) => {\n return (\n
\n {list?.map((item, index) => {\n return (\n {\n if(!teaParams){\n return;\n }\n sendTeaCommEvent('clk_event', Object.assign(teaParams, {\n group_id: item.id,\n rank: index+''\n }))\n }}\n >\n
\n
\n
{item?.title}
\n
{formatNumber(item.viewCount)}次观看
\n
\n \n )\n })}\n \n
\n )\n}\n\nexport default List;\n","/* 声明文件 */\nimport React, { useState } from 'react'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport PubSub from 'pubsub-js'\nexport default function Statement() {\n const year = new Date().getFullYear()\n return (\n
\n

© {year} 懂车帝

\n

www.dongchedi.com

\n

\n \n 京公网安备 11010802026035号\n \n

\n

\n \n 京ICP备17027026号-3\n \n

\n

\n \n 增值电信业务经营许可证(京B2-20180202)\n \n

\n

\n \n 广播电视节目制作经营许可证\n \n

\n

网络文化经营许可证-京网文(2019)4715-493号

\n

公司名称:北京空间变换科技有限公司

\n

\n \n 中央网信办违法和不良信息举报中心\n \n

\n

违法和不良信息举报电话:400-140-2108

\n

\n \n 懂车帝用户协议\n {' '}\n |{' '}\n \n 懂车帝隐私政策\n {' '}\n |{' '}\n \n 营业执照\n \n

\n

\n {\n sendTeaCommEvent('clk_event', {\n page_id: 'page_main_new',\n event_id: 'related_module_bottom_link',\n module_id: 'related_module',\n button_name: '侵权投诉',\n })\n }}\n >\n 侵权投诉\n {' '}\n |{' '}\n {\n PubSub.publish('OPEN_FEEDBACK')\n sendTeaCommEvent('clk_event', {\n page_id: 'page_main_new',\n event_id: 'related_module_bottom_link',\n module_id: 'related_module',\n button_name: '我要反馈',\n })\n }}\n >\n 我要反馈\n {' '}\n |{' '}\n {\n sendTeaCommEvent('clk_event', {\n page_id: 'page_main_new',\n event_id: 'related_module_bottom_link',\n module_id: 'related_module',\n button_name: '加入我们',\n })\n }}\n >\n 加入我们\n \n

\n \n
\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { friendshipLinkData as getFriendshipLinkData } from '../../services/home'\n\ninterface IFriendshipLink {\n friendshipLinkData: IFriendshipLinkData[]\n}\n\nexport interface IFriendshipLinkData {\n name: string\n link: string\n}\n\nfunction FriendshipLink() {\n const [friendshipLinkData, setFriendshipLinkData] = useState([]!);\n\n useEffect(() => {\n const init = async () => {\n try {\n const list = await getFriendshipLinkData(null)\n setFriendshipLinkData(list);\n }\n catch(e) {\n\n }\n }\n init();\n }, [])\n\n if (!friendshipLinkData || !friendshipLinkData.length) return null\n return (\n
\n
\n {friendshipLinkData?.map((friendshipLink: IFriendshipLinkData) => {\n return (\n {\n sendTeaCommEvent('clk_event', {\n page_id: 'page_main_new',\n event_id: 'related_module_company_link',\n module_id: 'related_module',\n button_name: friendshipLink.name\n })\n }}\n >\n {friendshipLink.name}\n \n )\n })}\n
\n \n
\n )\n}\n\nexport default FriendshipLink\n","import React, { useCallback, useRef, useState, useEffect } from 'react'\nimport FeedItem from './item'\nimport { ICommonContentRankItem, getPGCArticleRank } from '../../services/home'\nimport FloorTabTitle from 'Components/floor/floor-tab-title'\nimport CommonTopTextCard from '../common-top-text-card'\nimport Statement from 'Components/statement-new'\nimport FriendshipLink, { IFriendshipLinkData } from '../friendship-link'\nimport ScrollLoader from 'Components/scroll-loader'\nimport Loading from 'Components/loading'\nimport fetchFeed, { IFeedData, IParams } from 'lib/fetch-feed'\nimport { useResponsive } from 'Components/hooks/use-responsive'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { useInView } from 'react-intersection-observer'\nimport StickyHeader from 'Components/new/sticky-header'\nimport classNames from 'classnames'\nimport { MoreButton } from 'New/search/components/title-bar'\nimport PubSub from 'pubsub-js'\nimport {\n getScrollTop,\n setScrollTopWithStickyObserve,\n} from 'Components/hooks/use-sticky-header-observe'\n\ninterface IProps {\n friendshipLinkData: IFriendshipLinkData[]\n articlePGCRankData: ICommonContentRankItem[]\n}\n\nexport const tabs = [\n {\n id: 'motor_car',\n label: '推荐',\n },\n {\n id: 'motor_car_new_arrival',\n label: '新车',\n },\n {\n id: 'motor_local',\n label: '本地',\n },\n {\n id: 'motor_car_new_guide',\n label: '导购',\n },\n {\n id: 'motor_car_suv',\n label: 'SUV',\n },\n {\n id: 'motor_industry',\n label: '行业',\n },\n {\n id: 'motor_car_new_energy',\n label: '新能源',\n },\n {\n id: 'motor_car_motorcycle',\n label: '摩托车',\n },\n {\n id: 'motor_car_independent_brand',\n label: '中国品牌',\n },\n {\n id: 'motor_car_use',\n label: '用车',\n },\n {\n id: 'motor_car_evaluating',\n label: '试车',\n },\n {\n id: 'motor_car_trail_diary',\n label: '提车作业',\n },\n {\n id: 'motor_car_travel',\n label: '自驾游',\n },\n {\n id: 'motor_car_offroad',\n label: '越野',\n },\n {\n id: 'motor_car_modification',\n label: '改装',\n },\n]\n\nconst HomeFeed: React.FC = ({\n friendshipLinkData,\n articlePGCRankData = [],\n}) => {\n const conditionRef = useRef<{\n id: string\n fetchId: number\n initLoading: boolean\n }>()\n const loadCacheRef = useRef<{ [key: string]: any }>({})\n const timerRef = useRef()\n const [loading, setLoading] = useState(false)\n const [videoList, setVideoList] = useState([])\n const responsive = useResponsive()\n const [ref, inView] = useInView({\n threshold: 0,\n })\n const [refRelate, inViewRelate] = useInView({\n threshold: 0,\n })\n\n useEffect(() => {\n if (inView) {\n sendTeaCommEvent('show_event', {\n page_id: 'page_main_new',\n event_id: 'common_conponent_module',\n module_id: 'feed_module',\n })\n sendTeaCommEvent('show_event', {\n page_id: 'page_main_new',\n event_id: 'common_conponent_module',\n module_id: 'group_rank_module',\n })\n }\n }, [inView])\n\n useEffect(() => {\n if (inViewRelate) {\n sendTeaCommEvent('show_event', {\n page_id: 'page_main_new',\n event_id: 'common_conponent_module',\n module_id: 'related_module',\n })\n }\n }, [inViewRelate])\n\n const listRef = useRef(null)\n\n const handleChange = useCallback((id, isInit, isFixed) => {\n if (listRef.current) {\n const { top } = listRef.current.getBoundingClientRect()\n if (isFixed) {\n setScrollTopWithStickyObserve(getScrollTop() + top - 100)\n }\n }\n if (timerRef.current) {\n window.clearTimeout(timerRef.current)\n }\n timerRef.current = setTimeout(async () => {\n if (!isInit) {\n sendTeaCommEvent('hover_event', {\n page_id: 'page_main_new',\n event_id: 'feed_module_nav',\n module_id: 'feed_module',\n button_name: id,\n })\n }\n\n const fetchId = Math.random()\n conditionRef.current = { id, fetchId, initLoading: true }\n setLoading(false)\n\n const cacheData = loadCacheRef?.current[conditionRef?.current?.id]\n if (cacheData) {\n setVideoList(cacheData)\n conditionRef.current.initLoading = false\n return\n }\n\n setLoading(true)\n setVideoList([])\n //conditionRef.current.initLoading = true;\n const playLoad: IParams = {\n tt_from: 'enter_auto',\n category: conditionRef?.current?.id,\n count: 24,\n }\n\n //feed 接口用的mobile的,无法支持分页,且每次请求参数依赖上次behot_time字段,只有串行加载, 待后端优化\n const result = await fetchFeed(playLoad)\n result.data = result?.data.filter((item: IFeedData) => !item.duplicate)\n\n if (conditionRef?.current?.fetchId !== fetchId) {\n return\n }\n setLoading(false)\n setVideoList(result.data)\n conditionRef.current.initLoading = false\n\n if (conditionRef?.current?.id && loadCacheRef?.current) {\n loadCacheRef.current[conditionRef?.current?.id] = result.data\n }\n }, 200)\n }, [])\n\n /* 懒加载 */\n const loadMoreHandler = () => {\n if (\n !conditionRef?.current?.id ||\n loading ||\n conditionRef.current.initLoading\n ) {\n return\n }\n setLoading(true)\n\n fetchFeed({\n tt_from: 'load_more',\n category: conditionRef?.current?.id,\n count: 20,\n max_behot_time: videoList?.[videoList?.length - 1]?.info?.behot_time,\n })\n .then((res) => {\n const list = res?.data?.filter((item: IFeedData) => !item.duplicate)\n const newList = videoList?.concat(list)\n setVideoList(newList)\n\n if (\n conditionRef?.current?.id &&\n loadCacheRef.current[conditionRef?.current?.id]\n ) {\n loadCacheRef.current[conditionRef?.current?.id] = newList\n }\n })\n .finally(() => {\n setLoading(false)\n })\n }\n\n return (\n
\n
\n
\n {\n return (\n 0}\n navList={tabs.map((item) => ({\n link: item.id,\n label: item.label,\n }))}\n onChange={(id, isIinit) => handleChange(id, isIinit, isFixed)}\n append={(\n \n {\n sendTeaCommEvent('clk_event', {\n event_id: 'all_news_btn',\n })\n }}\n >\n 全部资讯\n \n \n )}\n />\n )\n }}\n />\n \n \n {videoList?.map((item: any, index: number) => {\n return (\n
\n \n
\n )\n })}\n
\n {loading ? : null}\n \n
\n
\n
\n {\n sendTeaCommEvent('clk_event', {\n page_id: 'page_main_new',\n event_id: 'group_rank_module_title',\n module_id: 'group_rank_module',\n module_title: '文章排行榜',\n })\n }}\n />\n ({\n id: item?.group_id,\n link: `/article/${item?.group_id}`,\n title: item?.title,\n viewCount: item?.count,\n }))}\n />\n
\n
\n 0} />\n \n
\n \n
\n
\n \n )\n}\n\nexport default HomeFeed\n","export default function getFakeWebid(): string {\n let id = ''\n try {\n const storage = sessionStorage.getItem('fakeWebid')\n if (storage) {\n id = storage\n }\n } catch (err) {}\n if (!id) {\n id = getInt64()\n }\n try {\n sessionStorage.setItem('fakeWebid', id)\n } catch (err) {}\n return id\n}\n\nfunction getInt64(): string {\n const min = 0\n const max = Number.MAX_SAFE_INTEGER || 9007199254740991\n return `${Math.floor(Math.random() * (max - min + 1) + min)}`\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","import React, { createContext, Dispatch, SetStateAction, useState } from 'react'\n\ninterface IStickyHeaderState {\n isFixed: boolean\n duration: number\n}\n\nexport const StickyHeaderContext = createContext(\n {} as {\n state: IStickyHeaderState\n setState: Dispatch>\n }\n)\n\nconst StickyHeaderProvider: React.FC = ({ children }) => {\n const [state, setState] = useState({\n isFixed: false,\n duration: 0,\n })\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default StickyHeaderProvider\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n"],"sourceRoot":""}