{"version":3,"sources":["webpack://@lemon8/web-seo/./client/components/loading/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/article/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/campaign/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/article/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/article-card/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/skeleton-scanline/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/skeleton-wrapper/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/discover/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/discover/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/hashtag/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/hashtag/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/feed/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/poi/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/poi/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/user/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/user/index.tsx","webpack://@lemon8/web-seo/./client/utils/build-master-loader.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-comment-detail-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-comment-detail.ts","webpack://@lemon8/web-seo/./shared/atoms/common/campaign-banner.ts","webpack://@lemon8/web-seo/./shared/atoms/common/category.ts","webpack://@lemon8/web-seo/./shared/atoms/common/brand-banner.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/data.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/breadcrumbs.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/discover-article-related-post.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/hot-words.ts","webpack://@lemon8/web-seo/./shared/atoms/experience/experience-related-post.ts","webpack://@lemon8/web-seo/./shared/atoms/experience/experience-gpt-answer.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-detail.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-comments.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-comments-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-post.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-post-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-hashtag.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-experience.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-category-post.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-category-post-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-guess-words-cards.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-immersive-related-post.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-immersive-related-post-first-comments.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-post-with-immersive-data.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-post-with-immersive-data-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-detail.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-detail-v2.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-posts.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-related-user.ts","webpack://@lemon8/web-seo/./shared/atoms/user-follow/user-follower.ts","webpack://@lemon8/web-seo/./shared/atoms/user-follow/user-following.ts","webpack://@lemon8/web-seo/./shared/atoms/user-follow/user-follow-topic.ts","webpack://@lemon8/web-seo/./shared/atoms/feed/index.ts","webpack://@lemon8/web-seo/./shared/atoms/topic/index.ts","webpack://@lemon8/web-seo/./shared/atoms/poi/index.ts","webpack://@lemon8/web-seo/./shared/atoms/page-traffic/index.ts","webpack://@lemon8/web-seo/./shared/atoms/search-sug/index.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-posts-loadmore.ts","webpack://@lemon8/web-seo/./shared/models/page-type.ts","webpack://@lemon8/web-seo/./shared/utils/pending-queue.ts","webpack://@lemon8/web-seo/./shared/utils/node-pending-queue.ts","webpack://@lemon8/web-seo/./shared/utils/safe-atom-family.ts"],"names":["LoadingBall","props","fitParent","style","loadingDiv","useRef","useEffect","current","lottie","container","renderer","loop","autoplay","animationData","LOADING_BALL","React","createElement","className","cls","ref","LoadingGradient","shadow","backgroundImage","concat","LOADING_GRADIENT_SHADOW","LOADING_GRADIENT_NO_SHADOW","Loading","variant","Fragment","ArticleLargeImageSkeleton","ArticleAuthorSkeleton","xmlns","width","height","viewBox","fill","cx","cy","r","x","y","rx","ArticleTitleSkeleton","ArticleContentSkeleton","key","ArticleCommentSkeleton","transform","ArticleImmersivePostSkeleton","clipPath","id","CampaignSkeleton","ArticleSkeleton","SkeletonWrapper","fix","ArticleCardSkeleton","SkeletonScanline","ArticleBodySkeleton","ArticleRecommendSkeleton","ArticleImmersiveSkeleton","children","DiscoverSkeletonInfo","DiscoverSkeletonTitle","DiscoverFullSkeleton","DiscoverBodySkeleton","HashtagInfoSkeleton","HashtagSkeleton","HashtagBodySkeleton","FeedSkeleton","RootSkeleton","location","navigationLocation","useNavigation","currentLocation","useLocation","pathname","pageType","PageTypeUtils","EPageType","UserFullSkeleton","POIFullSkeleton","POIInfoSkeleton","POIBodySkeleton","UserProfileSkeleton","UserBodySkeleton","buildMasterLoader","name","args","context","loaders","setRemixParams","params","$ArticleCommentDetailLoadmore","safeAtomFamily","commentId","a","atom","get","set","input","commentDetail","$ArticleCommentDetail","replies","hasMore","nextReplies","cursor","debugLabel","encodeURIComponent","$ArticleCommentDetailStore","old","_objectSpread","$CampaignBanner","$CategoryList","Promise","$BrandBanner","bannerUrl","$DiscoverDataStore","$DiscoverData","keyword","data","resolve","pendingQueue","$DiscoverBreadCrumbsStore","$DiscoverBreadcrumbs","$DiscoverArticleRelatedPost","groupId","searchId","items","$DiscoverClassifyHotWordsStore","$DiscoverClassifyHotWords","$ExperienceRelatedPostStore","$ExperienceRelatedPost","Unreachable","$ExperienceGPTAnswerStore","$ExperienceGPTAnswer","$ArticleDetailStore","$ArticleDetail","newArticle","$ArticleCommentStore","$ArticleComments","comments","$ArticleCommentsLoadmore","nextItems","nextHasMore","nextCursor","output","$ArticleRelatedPostStore","$ArticleRelatedPost","$ArticleRelatedPostLoadmore","$ArticleRelatedHashtagStore","$ArticleRelatedHashtag","$ArticleRelatedExperienceStore","$ArticleRelatedExperience","$ArticleCategoryPostStore","$ArticleCategoryPost","$ArticleCategoryPostLoadmore","$ArticleGuessCardsWordsStore","$ArticleGuessCardsWords","newData","$ArticleImmersiveRelatedPostStore","$ArticleImmersiveRelatedPost","$ArticleImmersiveRelatedPostFirstCommentsStore","$ArticleImmersiveRelatedPostFirstComments","$ArticleRelatedPostWithImmersiveDataStore","$ArticleRelatedPostWithImmersiveData","$ArticleRelatedPostWithImmersiveDataLoadmore","$UserDetailStore","$UserDetail","userId","userDetail","$UserDetailV2Store","$UserDetailV2","userUniqueName","$UserPostStore","$UserPost","userLinkName","$UserRelatedStore","$UserRelatedUser","$UserFollowerStore","$UserFollower","$UserFollowerLoadmore","$UserFollowingStore","$UserFollowing","$UserFollowingLoadmore","$UserFollowingTopicStore","$UserFollowingTopic","$UserFollowTopicLoadmore","$FeedDataStore","$FeedData","categoryName","nextCategoryData","then","catch","$FeedDateLoadmore","minBeHotTime","maxBeHotTime","$HashtagInfoStore","$HashtagPopularPostStore","$HashtagRecentPostStore","$HashtagRelatedStore","$HashtagInfo","hashtagId","$HashtagPopularPost","$HashtagRecentPost","$HashtagRecentPostLoadmore","hashtag","$HashtagRelated","poiInfoPendingQueue","poiPostPendingQueue","poiRelatedPendingQueue","$PoiInfoStore","$PoiPostStore","$PoiRelatedStore","$PoiInfo","poiId","push","forEach","$PoiPost","$PoiPostLoadmore","posts","sessionImprId","$PoiRelated","$PageLevelTraffic","$SearchSugData","$UserPostLoadmore","awaitOld","awaitedInput","IMMERSIVE_POST_MODAL_NAME","DETAIL_POST_MODAL_NAME","getPageTypeFromPathname","startsWith","match","segmentCount","split","filter","Boolean","length","PendingQueue","constructor","_tasks","_doInterval","console","log","task","window","setInterval","NodePendingQueue","nodePendingQueue","initializeAtom","areEqual","family","initializeAtomWrapper","param","remove","atomFamily"],"mappings":"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","file":"vendors/755-cb33a1d6b3ba8304ecea-ade4ba9718be3d0b2f6b26782fbeda8b1ed36057.js","sourcesContent":["import { CSSProperties, useEffect, useRef } from 'react';\nimport LOADING_GRADIENT_SHADOW from './assets/gradient_shadow.png';\nimport LOADING_GRADIENT_NO_SHADOW from './assets/gradient_no_shadow.png';\nimport LOADING_BALL from './assets/loading_ball.json';\nimport cls from 'classnames';\nimport lottie from 'lottie-web/build/player/lottie_light_canvas';\n\nimport './style.scss';\n\nexport interface LoadingProps {\n variant: 'ball' | 'gradient';\n\n /**\n * @default false\n */\n shadow?: boolean;\n\n /**\n * @default false\n */\n fitParent?: boolean;\n\n style?: CSSProperties;\n}\n\nexport const LoadingBall = (props: { fitParent: boolean; style: CSSProperties }): JSX.Element => {\n const { fitParent, style = {} } = props;\n const loadingDiv = useRef(null);\n\n useEffect(() => {\n if (loadingDiv.current) {\n lottie.loadAnimation({\n container: loadingDiv.current,\n renderer: 'canvas',\n loop: true,\n autoplay: true,\n animationData: LOADING_BALL,\n });\n }\n }, []);\n\n return (\n \n
\n
\n );\n};\n\nexport const LoadingGradient = (props: { shadow: boolean; fitParent: boolean; style: CSSProperties }): JSX.Element => {\n const { shadow, fitParent, style = {} } = props;\n return (\n \n \n \n );\n};\n\nexport const Loading = (props: LoadingProps): JSX.Element => {\n const { variant, shadow = false, fitParent = false, style = {} } = props;\n\n return (\n <>\n {variant === 'ball' && }\n {variant === 'gradient' && }\n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const ArticleLargeImageSkeleton = () => {\n return
;\n};\n\nexport const ArticleAuthorSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n\nexport const ArticleTitleSkeleton: FC = () => {\n return (\n
\n \n \n \n
\n );\n};\n\nexport const ArticleContentSkeleton: FC = () => {\n return (\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n );\n};\n\nexport const ArticleCommentSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport const ArticleImmersivePostSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const CampaignSkeleton: FC = () =>
;\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport {\n ArticleAuthorSkeleton,\n ArticleCommentSkeleton,\n ArticleContentSkeleton,\n ArticleImmersivePostSkeleton,\n ArticleLargeImageSkeleton,\n ArticleTitleSkeleton,\n} from '~/skeleton/article/component';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\nimport { CampaignSkeleton } from '~/skeleton/common/campaign';\n\nexport const ArticleSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ArticleBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const ArticleRecommendSkeleton: FC = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport const ArticleImmersiveSkeleton: FC = () => {\n return (\n \n \n \n \n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const ArticleCardSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const SkeletonScanline: FC = () =>
;\n","import { FC, PropsWithChildren } from 'react';\nimport cls from 'classnames';\n\nimport './style.scss';\n\ninterface ISkeletonWrapperProps {\n /**\n * true - skeleton will prevent document scroll\n * @default false\n */\n fix?: boolean;\n}\n\n/**\n * wrapper for skeleton\n *\n * FIXME: move skeleton-scan-line logic into this component\n */\nexport const SkeletonWrapper: FC> = (props) => {\n const { children, fix = false } = props;\n return
{children}
;\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const DiscoverSkeletonInfo: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n\nexport const DiscoverSkeletonTitle: FC = () => {\n return (\n
\n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { DiscoverSkeletonInfo } from '~/skeleton/discover/component';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport {\n ArticleAuthorSkeleton,\n ArticleContentSkeleton,\n ArticleLargeImageSkeleton,\n ArticleTitleSkeleton,\n} from '~/skeleton/article/component';\n\nexport const DiscoverFullSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const DiscoverBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const HashtagInfoSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\nimport { HashtagInfoSkeleton } from '~/skeleton/hashtag/component';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\n\nexport const HashtagSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const HashtagBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\n\nexport const FeedSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n","import { FC } from 'react';\nimport { useLocation, useNavigation } from '@remix-run/react';\nimport { EPageType, PageTypeUtils } from 'shared/models/page-type';\nimport { DiscoverFullSkeleton } from '~/skeleton/discover';\nimport { FeedSkeleton } from '~/skeleton/feed';\nimport { ArticleSkeleton } from '~/skeleton/article';\nimport { UserFullSkeleton } from '~/skeleton/user';\nimport { POIFullSkeleton } from '~/skeleton/poi';\nimport { Loading } from '~/components/loading';\nimport { HashtagSkeleton } from '~/skeleton/hashtag';\n\nimport './common/style/index.scss';\n\nexport const RootSkeleton: FC = () => {\n const { location: navigationLocation } = useNavigation();\n const currentLocation = useLocation();\n\n const { pathname } = navigationLocation || currentLocation;\n const pageType = PageTypeUtils.getPageTypeFromPathname(pathname);\n\n if (pageType === EPageType.discover) {\n return ;\n }\n\n if (pageType === EPageType.feed) {\n return ;\n }\n\n /**\n * cannot distinct page type from video and article by pathname only.\n */\n if (\n pageType === EPageType.article ||\n pageType === EPageType.video ||\n pageType === EPageType.experience ||\n pageType === EPageType.experience_article\n ) {\n return ;\n }\n\n if (pageType === EPageType.user) {\n return ;\n }\n\n if (pageType === EPageType.poi) {\n return ;\n }\n\n if (pageType === EPageType.hashtag) {\n return ;\n }\n\n return ;\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const POIInfoSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { POIInfoSkeleton } from '~/skeleton/poi/component';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\n\nexport const POIFullSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport const POIBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const UserProfileSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\nimport { UserProfileSkeleton } from '~/skeleton/user/component';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\n\nexport const UserFullSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport const UserBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n );\n};\n","import { LoaderFunction } from '@remix-run/node';\n\nexport const buildMasterLoader = (name: string): LoaderFunction => {\n return (args: any) => {\n const {\n context: { loaders, setRemixParams },\n params,\n } = args;\n\n setRemixParams(params);\n return loaders[name]();\n };\n};\n","import { atom } from 'jotai';\nimport { $ArticleCommentDetail, IArticleCommentDetail } from './article-comment-detail';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleCommentDetailLoadmore = safeAtomFamily((commentId: string) => {\n const a = atom(null, (get, set, input: IArticleCommentDetail) => {\n const commentDetail = get($ArticleCommentDetail(commentId));\n const { replies } = commentDetail;\n const { hasMore, replies: nextReplies, cursor } = input;\n\n set($ArticleCommentDetail(commentId), {\n hasMore,\n replies: [...replies, ...nextReplies],\n cursor,\n });\n });\n\n a.debugLabel = `$ArticleCommentDetailLoadmore+${encodeURIComponent(commentId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { TComment } from 'shared/models';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleCommentDetail {\n replies: TComment[];\n hasMore: boolean;\n cursor: number;\n}\n\ntype TArticleCommentDetailStore = { [key: string]: IArticleCommentDetail | undefined };\n\nconst $ArticleCommentDetailStore = atom({});\n\nexport const $ArticleCommentDetail = safeAtomFamily((commentId: string) => {\n const a = atom(\n (get) => {\n return (\n get($ArticleCommentDetailStore)[commentId] || {\n replies: [],\n hasMore: true,\n cursor: 0,\n }\n );\n },\n (get, set, input: IArticleCommentDetail) => {\n const old = get($ArticleCommentDetailStore);\n\n set($ArticleCommentDetailStore, {\n ...old,\n [commentId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleCommentDetail+${encodeURIComponent(commentId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\n\nexport interface ICampaignBanner {\n /**\n * 活动 Banner 图,对齐端内官号尺寸,即 1125 * 600\n */\n bannerUrl: string;\n title: string;\n campaignId: string;\n buttonText?: string;\n}\n\nexport const $CampaignBanner = atom([]);\n$CampaignBanner.debugLabel = '$CampaignBanner';\n","import { atom } from 'jotai';\nimport { FeedCategory } from 'shared/models/feed';\n\nexport const $CategoryList = atom>(new Promise(() => void 0));\n$CategoryList.debugLabel = '$CategoryList';\n","import { atom } from 'jotai';\n\nexport interface IBrandBanner {\n bannerUrl: string;\n}\n\nexport const $BrandBanner = atom({\n bannerUrl: '',\n});\n$BrandBanner.debugLabel = '$BrandBanner';\n","import { atom, PrimitiveAtom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { TDiscoverData } from 'shared/models';\n\ntype DiscoverStore = { [key: string]: Promise | undefined };\n\nconst $DiscoverDataStore: PrimitiveAtom = atom({});\n\nexport const $DiscoverData = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($DiscoverDataStore)[keyword];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, args: any) => {\n const old = get($DiscoverDataStore);\n set($DiscoverDataStore, { ...old, [keyword]: args });\n },\n );\n\n a.debugLabel = `$DiscoverData+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { DiscoverBreadcrumbs } from 'shared/models';\nimport { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype DiscoverBreadCrumbsStore = { [key: string]: DiscoverBreadcrumbs | undefined };\n\nexport const $DiscoverBreadCrumbsStore = atom({});\n\nexport const $DiscoverBreadcrumbs = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($DiscoverBreadCrumbsStore)[keyword];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: DiscoverBreadcrumbs) => {\n const old = get($DiscoverBreadCrumbsStore);\n set($DiscoverBreadCrumbsStore, { ...old, [keyword]: input });\n },\n );\n\n a.debugLabel = `$DiscoverBreadcrumbs+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai';\nimport { IArticleRelatedPost } from 'shared/atoms/article';\n\nexport const $DiscoverArticleRelatedPost = safeAtomFamily((groupId: string) => {\n const a = atom({\n searchId: '',\n items: [],\n cursor: 0,\n hasMore: true,\n });\n a.debugLabel = `$DiscoverArticleRelatedPost+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { DiscoverClassifyHotWords } from 'shared/models';\nimport { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype DiscoverClassifyHotWordsStore = { [key: string]: DiscoverClassifyHotWords | undefined };\n\nexport const $DiscoverClassifyHotWordsStore = atom({});\n\nexport const $DiscoverClassifyHotWords = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($DiscoverClassifyHotWordsStore)[keyword];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: DiscoverClassifyHotWords) => {\n const old = get($DiscoverClassifyHotWordsStore);\n set($DiscoverClassifyHotWordsStore, { ...old, [keyword]: input });\n },\n );\n\n a.debugLabel = `$DiscoverClassifyHotWords+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai';\nimport { ExperienceRelatedArticle } from 'shared/models';\nimport { Unreachable } from '@lemon8/web-app-shared/util';\n\ntype TExperienceRelatedPostStore = {\n [key: string]: Promise | ExperienceRelatedArticle | undefined;\n};\n\nconst $ExperienceRelatedPostStore = atom({});\n\nexport const $ExperienceRelatedPost = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($ExperienceRelatedPostStore)[keyword];\n if (!data) {\n return Unreachable(`no data for keyword: ${keyword}`);\n }\n return data;\n },\n (get, set, input: ExperienceRelatedArticle | Promise) => {\n const old = get($ExperienceRelatedPostStore);\n set($ExperienceRelatedPostStore, {\n ...old,\n [keyword]: input,\n });\n },\n );\n\n a.debugLabel = `$ExperienceRelatedPost+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { Unreachable } from '@lemon8/web-app-shared/util';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { ExperienceGPTAnswer, UnavailableExperienceData } from 'shared/models';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype ExperienceAnswerStore = { [key: string]: Promise | undefined };\n\nconst $ExperienceGPTAnswerStore: PrimitiveAtom = atom({});\n\nexport const $ExperienceGPTAnswer = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($ExperienceGPTAnswerStore)[keyword];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n return Unreachable(`no data for GPTAnswer: ${keyword}`);\n }\n return data;\n },\n (get, set, args: any) => {\n const old = get($ExperienceGPTAnswerStore);\n set($ExperienceGPTAnswerStore, { ...old, [keyword]: args });\n },\n );\n\n a.debugLabel = `$ExperienceGPTAnswer+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IArticleUnavailableDetail, TArticleDetail } from '../../models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleDetailStore = atom({});\n\nexport const $ArticleDetail = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleDetailStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve('$FeedData placeholder')));\n }\n return data;\n },\n (get, set, newArticle) => {\n const old = get($ArticleDetailStore);\n set($ArticleDetailStore, { ...old, [groupId]: newArticle });\n },\n );\n\n a.debugLabel = `$ArticleDetail+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IPrimaryComment } from 'shared/models/comments';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nconst $ArticleCommentStore = atom({});\n\nexport interface IArticleComments {\n items: IPrimaryComment[];\n hasMore: boolean;\n cursor: number;\n}\n\nexport const $ArticleComments = safeAtomFamily((groupId: string) => {\n const a = atom, [IArticleComments | Promise], void>(\n (get) => {\n return get($ArticleCommentStore)[groupId] || new Promise(() => void 0);\n },\n (get, set, comments) => {\n const old = get($ArticleCommentStore);\n set($ArticleCommentStore, { ...old, [groupId]: comments });\n },\n );\n\n a.debugLabel = `$ArticleComments+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IPrimaryComment } from 'shared/models';\nimport { $ArticleComments } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleCommentLoadmoreParam {\n items: IPrimaryComment[];\n hasMore: string;\n cursor: number;\n}\n\nexport const $ArticleCommentsLoadmore = safeAtomFamily((groupId: string) => {\n const a = atom(null, async (get, set, input: IArticleCommentLoadmoreParam) => {\n const comments = await get($ArticleComments(groupId));\n const { items } = comments;\n const { items: nextItems, hasMore: nextHasMore, cursor: nextCursor } = input;\n\n const output = {\n items: [...items, ...nextItems],\n hasMore: nextHasMore,\n cursor: nextCursor,\n };\n\n set($ArticleComments(groupId), output as any);\n });\n\n a.debugLabel = `$ArticleCommentsLoadmore+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { Article } from 'shared/models/legacy';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleRelatedPost {\n searchId: string;\n items: Article[];\n cursor: number;\n hasMore: boolean;\n}\n\ntype TArticleRelatedPostStore = { [key: string]: Promise | IArticleRelatedPost | undefined };\n\nconst $ArticleRelatedPostStore = atom({});\n\nexport const $ArticleRelatedPost = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleRelatedPostStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: IArticleRelatedPost | Promise) => {\n const old = get($ArticleRelatedPostStore);\n set($ArticleRelatedPostStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleRelatedPost+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { $ArticleRelatedPost, IArticleRelatedPost } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleRelatedPostLoadmore = safeAtomFamily((groupId: string) => {\n const a = atom(null, async (get, set, input: IArticleRelatedPost) => {\n const { items, searchId } = await get($ArticleRelatedPost(groupId));\n\n set($ArticleRelatedPost(groupId), {\n ...input,\n items: [...items, ...input.items],\n searchId, // searchId remains unchanged when load more\n });\n });\n\n a.debugLabel = `$ArticleRelatedPostLoadmore+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { Topic } from 'shared/models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleRelatedHashtag {\n items: Topic[];\n sugWords: string[];\n gptExtendWords: {\n highVolumeWords: string[];\n longTailWords: string[];\n relatedSEOWords: string[];\n };\n}\n\ntype TArticleRelatedHashtagStore = {\n [key: string]: Promise | IArticleRelatedHashtag | undefined;\n};\n\nconst $ArticleRelatedHashtagStore = atom({});\n\nexport const $ArticleRelatedHashtag = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleRelatedHashtagStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: IArticleRelatedHashtag | Promise) => {\n const old = get($ArticleRelatedHashtagStore);\n set($ArticleRelatedHashtagStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleRelatedHashtag+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { Unreachable } from '@lemon8/web-app-shared/util';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { ExpandKeywordInfo } from 'shared/models';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleRelatedExperience {\n answerReferralQuery: ExpandKeywordInfo[];\n}\n\ntype ArticleRelatedExperienceStore = { [key: string]: Promise | undefined };\n\nconst $ArticleRelatedExperienceStore: PrimitiveAtom =\n atom({});\n\nexport const $ArticleRelatedExperience = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleRelatedExperienceStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n return Unreachable(`no data for GPTAnswer: ${groupId}`);\n }\n return data;\n },\n (get, set, args: any) => {\n const old = get($ArticleRelatedExperienceStore);\n set($ArticleRelatedExperienceStore, { ...old, [groupId]: args });\n },\n );\n\n a.debugLabel = `$ArticleRelatedExperience+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { Article } from 'shared/models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleCategoryPost {\n items: Article[];\n hasMore: boolean;\n cursor: number;\n}\n\ntype TArticleCategoryPostStore = { [key: string]: Promise | IArticleCategoryPost | undefined };\n\nconst $ArticleCategoryPostStore = atom({});\n\nexport const $ArticleCategoryPost = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleCategoryPostStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: IArticleCategoryPost | Promise) => {\n const old = get($ArticleCategoryPostStore);\n set($ArticleCategoryPostStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleCategoryPost+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { $ArticleCategoryPost, IArticleCategoryPost } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleCategoryPostLoadmore = safeAtomFamily((groupId: string) => {\n const a = atom(null, async (get, set, input: IArticleCategoryPost) => {\n const { items } = await get($ArticleCategoryPost(groupId));\n\n set($ArticleCategoryPost(groupId), {\n ...input,\n items: [...items, ...input.items],\n });\n });\n\n a.debugLabel = `$ArticleCategoryPostLoadmore+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleGuessCardsWordsStore = atom({});\n\nexport const $ArticleGuessCardsWords = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleGuessCardsWordsStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve('$ArticleGuessCardsWords placeholder')));\n }\n return data;\n },\n (get, set, newData) => {\n const old = get($ArticleGuessCardsWordsStore);\n set($ArticleGuessCardsWordsStore, { ...old, [groupId]: newData });\n },\n );\n\n a.debugLabel = `$ArticleGuessCardsWords+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IUserDetail, TArticleDetail, TComment } from 'shared/models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface ImmersiveArticleData {\n article: TArticleDetail;\n author: IUserDetail;\n comments: TComment[];\n}\n\ntype TArticleRelatedPostStore = { [key: string]: Promise | ImmersiveArticleData[] | undefined };\n\nconst $ArticleImmersiveRelatedPostStore = atom({});\n\nexport const $ArticleImmersiveRelatedPost = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleImmersiveRelatedPostStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: ImmersiveArticleData[] | Promise) => {\n const old = get($ArticleImmersiveRelatedPostStore);\n set($ArticleImmersiveRelatedPostStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleImmersiveRelatedPost+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { TComment } from 'shared/models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TArticleImmersiveRelatedPostFirstCommentsStore = { [key: string]: Promise | TComment[] | undefined };\n\nconst $ArticleImmersiveRelatedPostFirstCommentsStore = atom({});\n\nexport const $ArticleImmersiveRelatedPostFirstComments = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleImmersiveRelatedPostFirstCommentsStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: TComment[] | Promise) => {\n const old = get($ArticleImmersiveRelatedPostFirstCommentsStore);\n set($ArticleImmersiveRelatedPostFirstCommentsStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleImmersiveRelatedPostFirstComments+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { ImmersiveArticleData } from './article-immersive-related-post';\n\nexport interface IArticleRelatedPostWithImmersiveData {\n searchId: string;\n items: ImmersiveArticleData[];\n cursor: number;\n hasMore: boolean;\n}\n\ntype TArticleRelatedPostWithImmersiveDataStore = {\n [key: string]: Promise | IArticleRelatedPostWithImmersiveData | undefined;\n};\n\nconst $ArticleRelatedPostWithImmersiveDataStore = atom({});\n\nexport const $ArticleRelatedPostWithImmersiveData = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleRelatedPostWithImmersiveDataStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: IArticleRelatedPostWithImmersiveData | Promise) => {\n const old = get($ArticleRelatedPostWithImmersiveDataStore);\n set($ArticleRelatedPostWithImmersiveDataStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleRelatedPostWithImmersiveData+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { IArticleRelatedPostWithImmersiveData, $ArticleRelatedPostWithImmersiveData } from 'shared/atoms';\n\nexport const $ArticleRelatedPostWithImmersiveDataLoadmore = safeAtomFamily((groupId: string) => {\n const a = atom(null, async (get, set, input: IArticleRelatedPostWithImmersiveData) => {\n const { items, searchId } = await get($ArticleRelatedPostWithImmersiveData(groupId));\n\n set($ArticleRelatedPostWithImmersiveData(groupId), {\n ...input,\n items: [...items, ...input.items],\n searchId, // searchId remains unchanged when load more\n });\n });\n\n a.debugLabel = `$ArticleRelatedPostWithImmersiveDataLoadmore+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IUserDetail, IUserUnavailableDetail } from '../../models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserDetailStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserDetailStore = atom({});\n\nexport const $UserDetail = safeAtomFamily((userId: string) => {\n const a = atom<\n PromiseOrValue,\n [PromiseOrValue],\n void\n >(\n (get) => {\n const data = get($UserDetailStore)[userId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve()));\n }\n return data;\n },\n (get, set, userDetail) => {\n const old = get($UserDetailStore);\n set($UserDetailStore, { ...old, [userId]: userDetail });\n },\n );\n\n a.debugLabel = `$UserDetail+${encodeURIComponent(userId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IUserDetail, IUserUnavailableDetail } from '../../models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserDetailStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserDetailV2Store = atom({});\n\n/**\n * get user detail data\n *\n * use user-unique-name as key\n */\nexport const $UserDetailV2 = safeAtomFamily((userUniqueName: string) => {\n const a = atom<\n PromiseOrValue,\n [PromiseOrValue],\n void\n >(\n (get) => {\n const data = get($UserDetailV2Store)[userUniqueName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, userDetail) => {\n const old = get($UserDetailV2Store);\n set($UserDetailV2Store, { ...old, [userUniqueName]: userDetail });\n },\n );\n\n a.debugLabel = `$UserDetailV2+${encodeURIComponent(userUniqueName)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { UserPosts } from 'shared/models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserPostStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserPostStore = atom({} as TUserPostStore);\n\nexport const $UserPost = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n const data = get($UserPostStore)[userLinkName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($UserPostStore);\n set($UserPostStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserPost+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { User } from 'shared/models/legacy';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserRelatedUserStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserRelatedStore = atom({} as TUserRelatedUserStore);\n\nexport const $UserRelatedUser = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n const data = get($UserRelatedStore)[userLinkName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: User[]) => {\n const old = get($UserRelatedStore);\n set($UserRelatedStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserRelatedUser+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai';\nimport { User } from 'shared/models';\n\nexport interface IUserFollowerData {\n cursor: number;\n hasMore: boolean;\n data: User[];\n}\n\ntype TUserFollowerStore = { [key: string]: IUserFollowerData };\n\nexport const $UserFollowerStore = atom({} as TUserFollowerStore);\n\nexport const $UserFollower = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n return get($UserFollowerStore)[userLinkName];\n },\n (get, set, input: IUserFollowerData) => {\n const old = get($UserFollowerStore);\n\n set($UserFollowerStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserFollower+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n\nexport const $UserFollowerLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, (get, set, input: IUserFollowerData) => {\n const old = get($UserFollower(userLinkName));\n set($UserFollower(userLinkName), {\n ...input,\n data: [...old.data, ...input.data],\n });\n });\n\n a.debugLabel = `$UserFollowerLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai';\nimport { User } from 'shared/models';\n\nexport interface IUserFollowingData {\n cursor: number;\n hasMore: boolean;\n data: User[];\n}\n\ntype TUserFollowingStore = { [key: string]: IUserFollowingData };\n\nexport const $UserFollowingStore = atom({} as TUserFollowingStore);\n\nexport const $UserFollowing = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n return get($UserFollowingStore)[userLinkName];\n },\n (get, set, input: IUserFollowingData) => {\n const old = get($UserFollowingStore);\n\n set($UserFollowingStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserFollowing+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n\nexport const $UserFollowingLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, (get, set, input: IUserFollowingData) => {\n const old = get($UserFollowing(userLinkName));\n set($UserFollowing(userLinkName), {\n ...input,\n data: [...old.data, ...input.data],\n });\n });\n\n a.debugLabel = `$UserFollowingLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai';\nimport { IUserFollowTopic } from 'shared/models';\n\nexport interface IUserFollowTopicData {\n cursor: number;\n hasMore: boolean;\n data: IUserFollowTopic[];\n}\n\ntype TUserFollowTopicStore = { [key: string]: IUserFollowTopicData };\n\nexport const $UserFollowingTopicStore = atom({} as TUserFollowTopicStore);\n\nexport const $UserFollowingTopic = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n return get($UserFollowingTopicStore)[userLinkName];\n },\n (get, set, input: IUserFollowTopicData) => {\n const old = get($UserFollowingTopicStore);\n\n set($UserFollowingTopicStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserFollowingTopic+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n\nexport const $UserFollowTopicLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, (get, set, input: IUserFollowTopicData) => {\n const old = get($UserFollowingTopic(userLinkName));\n set($UserFollowingTopic(userLinkName), {\n ...input,\n data: [...old.data, ...input.data],\n });\n });\n\n a.debugLabel = `$UserFollowTopicLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { FeedData } from 'shared/models';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype FeedStore = { [key: string]: Promise | FeedData | undefined };\n\nexport const $FeedDataStore: PrimitiveAtom = atom({});\n$FeedDataStore.debugLabel = '$FeedDataStore';\n\nexport const $FeedData = safeAtomFamily((categoryName: string) => {\n const a = atom(\n (get) => {\n const data = get($FeedDataStore)[categoryName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve()));\n }\n\n return data;\n },\n (get, set, nextCategoryData: Promise | FeedData) => {\n const old: FeedStore = get($FeedDataStore);\n\n set($FeedDataStore, {\n ...old,\n [categoryName]: nextCategoryData,\n });\n\n if (nextCategoryData instanceof Promise) {\n nextCategoryData\n .then((data) => {\n set($FeedDataStore, {\n ...old,\n [categoryName]: data,\n });\n })\n .catch(() => {\n set($FeedDataStore, {\n ...old,\n [categoryName]: void 0,\n });\n });\n }\n },\n );\n\n a.debugLabel = `$FeedData+${encodeURIComponent(categoryName)}`;\n\n return a;\n});\n\nexport const $FeedDateLoadmore = safeAtomFamily((categoryName: string) => {\n const a = atom(null, async (get, set, input: FeedData) => {\n const { minBeHotTime, items } = await get($FeedData(categoryName));\n const { maxBeHotTime, hasMore, items: nextItems } = input;\n\n set($FeedData(categoryName), {\n items: [...items, ...nextItems],\n minBeHotTime,\n maxBeHotTime,\n hasMore,\n });\n });\n\n a.debugLabel = `$FeedDateLoadmore+${encodeURIComponent(categoryName)}`;\n\n return a;\n});\n","import { HashtagInfo, HashtagPosts, HashtagRelated } from 'shared/models';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { ITopicUnavailableDetail } from 'shared/models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype HashtagInfoStore = { [key: string]: HashtagInfo | ITopicUnavailableDetail | undefined };\ntype HashtagPostsStore = { [key: string]: PromiseOrValue | undefined };\ntype HashtagRelatedStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $HashtagInfoStore: PrimitiveAtom = atom({});\nexport const $HashtagPopularPostStore: PrimitiveAtom = atom({});\nexport const $HashtagRecentPostStore: PrimitiveAtom = atom({});\nexport const $HashtagRelatedStore: PrimitiveAtom = atom({});\n\n// HashtagInfo HashtagPopularPost HashtagRecentPost HashtagRelated\nexport const $HashtagInfo = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagInfoStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: HashtagInfo | ITopicUnavailableDetail) => {\n const old = get($HashtagInfoStore);\n set($HashtagInfoStore, { ...old, [hashtagId]: input });\n },\n );\n a.debugLabel = `$HashtagInfo+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagPopularPost = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagPopularPostStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($HashtagPopularPostStore);\n set($HashtagPopularPostStore, { ...old, [hashtagId]: input });\n },\n );\n a.debugLabel = `$HashtagPopularPost+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagRecentPost = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagRecentPostStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($HashtagRecentPostStore);\n set($HashtagRecentPostStore, { ...old, [hashtagId]: input });\n },\n );\n\n a.debugLabel = `$HashtagRecentPost+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagRecentPostLoadmore = safeAtomFamily((hashtagId: string) => {\n const a = atom(null, async (get, set, input: HashtagPosts) => {\n const old = get($HashtagRecentPostStore);\n const hashtag = await old[hashtagId];\n if (hashtag) {\n set($HashtagRecentPostStore, {\n ...old,\n [hashtagId]: {\n ...hashtag,\n ...input,\n items: [...hashtag.items, ...input.items],\n },\n });\n }\n });\n\n a.debugLabel = `$HashtagRecentPostLoadmore+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagRelated = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagRelatedStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($HashtagRelatedStore);\n set($HashtagRelatedStore, { ...old, [hashtagId]: input });\n },\n );\n a.debugLabel = `$HashtagRelated+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n","import { PoiInfo, PoiPosts, PoiRelated } from 'shared/models';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype PoiInfoStore = { [key: string]: Promise };\ntype PoiPostsStore = { [key: string]: Promise | PoiPosts };\ntype PoiRelatedStore = { [key: string]: Promise };\n\nconst poiInfoPendingQueue: any[] = [];\nconst poiPostPendingQueue: any[] = [];\nconst poiRelatedPendingQueue: any[] = [];\n\nexport const $PoiInfoStore: PrimitiveAtom = atom({});\nexport const $PoiPostStore: PrimitiveAtom = atom({});\nexport const $PoiRelatedStore: PrimitiveAtom = atom({});\n\nexport const $PoiInfo = safeAtomFamily((poiId: string) => {\n const a = atom(\n (get) => {\n return (\n get($PoiInfoStore)[poiId] ||\n new Promise((r) => {\n poiInfoPendingQueue.push(r);\n })\n );\n },\n (get, set, args: any) => {\n const old = get($PoiInfoStore);\n\n set($PoiInfoStore, { ...old, [poiId]: args });\n\n // required,finish all pending suspense boundary\n poiInfoPendingQueue.forEach((r) => r());\n },\n );\n a.debugLabel = `$PoiInfo+${poiId}`;\n return a;\n});\n\nexport const $PoiPost = safeAtomFamily((poiId: string) => {\n const a = atom(\n (get) => {\n return (\n get($PoiPostStore)[poiId] ||\n new Promise((r) => {\n poiPostPendingQueue.push(r);\n })\n );\n },\n (get, set, args: any) => {\n const old = get($PoiPostStore);\n\n set($PoiPostStore, { ...old, [poiId]: args });\n },\n );\n a.debugLabel = `$PoiPost+${poiId}`;\n return a;\n});\n\nexport const $PoiPostLoadmore = safeAtomFamily((poiId: string) => {\n const a = atom(null, async (get, set, input: PoiPosts) => {\n const old = get($PoiPostStore);\n const posts = await old[poiId];\n\n if (posts) {\n set($PoiPostStore, {\n ...old,\n [poiId]: {\n hasMore: input.hasMore,\n sessionImprId: input.sessionImprId,\n items: [...posts.items, ...input.items],\n } as PoiPosts,\n });\n }\n });\n a.debugLabel = `$PoiPostLoadmore+${poiId}`;\n return a;\n});\n\nexport const $PoiRelated = safeAtomFamily((poiId: string) => {\n const a = atom(\n (get) => {\n return (\n get($PoiRelatedStore)[poiId] ||\n new Promise((r) => {\n poiRelatedPendingQueue.push(r);\n })\n );\n },\n (get, set, args: any) => {\n const old = get($PoiRelatedStore);\n\n set($PoiRelatedStore, { ...old, [poiId]: args });\n\n // required,finish all pending suspense boundary\n poiRelatedPendingQueue.forEach((r) => r());\n },\n );\n a.debugLabel = `$PoiRelated+${poiId}`;\n return a;\n});\n","import { atom } from 'jotai';\nimport { PageLevelTraffic } from 'shared/models/page-level-traffic';\n\nexport const $PageLevelTraffic = atom({} as PageLevelTraffic);\n$PageLevelTraffic.debugLabel = '$PageLevelTraffic';\n","import { atom } from 'jotai';\nimport { SearchSugItem } from 'shared/models';\n\nexport const $SearchSugData = atom([]);\n$SearchSugData.debugLabel = '$SearchSugData';\n","import { atom } from 'jotai';\nimport { UserPosts } from 'shared/models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { $UserPost } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $UserPostLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, async (get, set, input: PromiseOrValue) => {\n const awaitOld = await get($UserPost(userLinkName));\n const awaitedInput = await input;\n set($UserPost(userLinkName), {\n ...input,\n items: [...awaitOld.items, ...awaitedInput.items],\n });\n });\n\n a.debugLabel = `$UserPostLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","export enum EPageType {\n user = 'user',\n user_follow = 'user_follow',\n user_topic = 'user_topic',\n hashtag = 'hashtag',\n article = 'article',\n video = 'video',\n feed = 'feed',\n poi = 'poi',\n experience = 'experience',\n experience_article = 'experience_article',\n discover = 'discover',\n search_sug = 'search_sug',\n}\n\nexport const IMMERSIVE_POST_MODAL_NAME = 'article-immersive-post-modal';\nexport const DETAIL_POST_MODAL_NAME = 'article-detail-post-modal';\n\nexport const PageTypeUtils = {\n getPageTypeFromPathname: (pathname: string): EPageType | null => {\n if (pathname.startsWith('/discover/')) {\n return EPageType.discover;\n }\n if (pathname.startsWith('/experience/')) {\n return EPageType.experience;\n }\n if (pathname.startsWith('/feed')) {\n return EPageType.feed;\n }\n if (pathname.startsWith('/poi')) {\n return EPageType.poi;\n }\n if (pathname.startsWith('/topic')) {\n return EPageType.hashtag;\n }\n if (pathname.match(/^\\/[^\\/]+\\/follow/)) {\n return EPageType.user_follow;\n }\n if (pathname.match(/^\\/[^\\/]+\\/topic/)) {\n return EPageType.user_topic;\n }\n if (pathname.match(/^\\/search\\/sug/)) {\n return EPageType.search_sug;\n }\n\n // legacy article-i\n if (pathname.match(/^\\/article\\/i\\d+/)) {\n return EPageType.article;\n }\n\n // legacy user-share\n if (pathname.match(/^\\/user\\/\\d+\\/share/)) {\n return EPageType.user;\n }\n\n const segmentCount = pathname.split('/').filter(Boolean).length;\n if (segmentCount === 1) {\n return EPageType.user;\n }\n if (segmentCount === 2) {\n return EPageType.article;\n }\n return null;\n },\n};\n","export class PendingQueue {\n private _tasks: (() => void)[] = [];\n\n constructor() {\n if (typeof window !== 'undefined') {\n window.setInterval(this._doInterval, 16);\n }\n }\n\n public push(task: (...args: unknown[]) => void) {\n if (typeof window !== 'undefined') {\n this._tasks.push(task);\n }\n }\n\n private _doInterval = (): void => {\n if (this._tasks.length) {\n console.log('pending tasks found, total count: %d', this._tasks.length);\n this._tasks.forEach((task) => task());\n this._tasks = [];\n }\n };\n}\n\nexport const pendingQueue = new PendingQueue();\n","export class NodePendingQueue {\n private _tasks: (() => void)[] = [];\n\n constructor() {\n if (typeof window === 'undefined') {\n setInterval(this._doInterval, 500);\n }\n }\n\n public push(task: (...args: unknown[]) => void) {\n if (typeof window === 'undefined') {\n this._tasks.push(task);\n }\n }\n\n private _doInterval = (): void => {\n if (this._tasks.length) {\n console.log('pending tasks found, total count: %d', this._tasks.length);\n this._tasks.forEach((task) => task());\n this._tasks = [];\n }\n };\n}\n\nexport const nodePendingQueue = new NodePendingQueue();\n","import { atomFamily } from 'jotai/utils';\nimport { Atom } from 'jotai/vanilla';\nimport { AtomFamily } from 'jotai/vanilla/utils/atomFamily';\nimport { nodePendingQueue } from 'shared/utils/node-pending-queue';\n\nexport const safeAtomFamily = >(\n initializeAtom: (param: Param) => AtomType,\n areEqual?: (a: Param, b: Param) => boolean,\n): AtomFamily => {\n let family: AtomFamily | null = null;\n\n const initializeAtomWrapper = (param: Param): AtomType => {\n const atom = initializeAtom(param);\n if (typeof window === 'undefined') {\n nodePendingQueue.push(() => {\n family?.remove(param);\n });\n }\n\n return atom;\n };\n\n family = atomFamily(initializeAtomWrapper, areEqual);\n\n return family;\n};\n"],"sourceRoot":""}