{"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/article/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/article-card/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/campaign/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/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/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-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/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","webpack://@lemon8/web-seo/../libs/ark-css-links/dist/es/index.js"],"names":["LoadingBall","props","fitParent","style","loadingDiv","useRef","useEffect","current","lottie","container","renderer","loop","autoplay","animationData","LOADING_BALL","jsx","className","cls","children","ref","LoadingGradient","shadow","backgroundImage","concat","LOADING_GRADIENT_SHADOW","LOADING_GRADIENT_NO_SHADOW","Loading","variant","jsxs","Fragment","ArticleLargeImageSkeleton","ArticleAuthorSkeleton","xmlns","width","height","viewBox","fill","cx","cy","r","x","y","rx","ArticleTitleSkeleton","ArticleContentSkeleton","ArticleCommentSkeleton","transform","ArticleSkeleton","SkeletonWrapper","fix","CampaignSkeleton","ArticleCardSkeleton","SkeletonScanline","ArticleBodySkeleton","ArticleRecommendSkeleton","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","$DiscoverDataStore","$DiscoverData","keyword","data","resolve","pendingQueue","$DiscoverBreadCrumbsStore","$DiscoverBreadcrumbs","$DiscoverArticleRelatedPost","groupId","searchId","items","$DiscoverClassifyHotWordsStore","$DiscoverClassifyHotWords","$ArticleDetailStore","$ArticleDetail","newArticle","$ArticleCommentStore","$ArticleComments","comments","$ArticleCommentsLoadmore","nextItems","nextHasMore","nextCursor","output","$ArticleRelatedPostStore","$ArticleRelatedPost","$ArticleRelatedPostLoadmore","$ArticleRelatedHashtagStore","$ArticleRelatedHashtag","$ArticleCategoryPostStore","$ArticleCategoryPost","$ArticleCategoryPostLoadmore","$ArticleGuessCardsWordsStore","$ArticleGuessCardsWords","newData","$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","sessionImprId","$HashtagRelated","poiInfoPendingQueue","poiPostPendingQueue","poiRelatedPendingQueue","$PoiInfoStore","$PoiPostStore","$PoiRelatedStore","$PoiInfo","poiId","push","forEach","$PoiPost","$PoiPostLoadmore","posts","$PoiRelated","$PageLevelTraffic","$SearchSugData","$UserPostLoadmore","awaitOld","awaitedInput","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","manifestCache","getManifest","__remixManifest","cssLinks","routeId","routes","cssImports","map","href","rel"],"mappings":"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","file":"511-cf8ea39292438aae5154.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","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport {\n ArticleAuthorSkeleton,\n ArticleCommentSkeleton,\n ArticleContentSkeleton,\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","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 CampaignSkeleton: FC = () =>
;\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 { CampaignSkeleton } from '~/skeleton/common/campaign';\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};\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 (pageType === EPageType.article || pageType === EPageType.video) {\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 CampaignBanner {\n /**\n * 活动 Banner 图,对齐端内官号尺寸,即 1125 * 600\n */\n bannerUrl: string;\n title: string;\n campaignId: string;\n buttonText: string;\n startTime?: number;\n endTime?: number;\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, 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 { atom } from 'jotai';\nimport { IArticleDetail, IArticleUnavailableDetail } 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';\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 { 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, 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';\n\ninterface IUserFollowerData {\n cursor: number;\n has_more: boolean;\n data: any[];\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/index';\n\ninterface IUserFollowingData {\n cursor: number;\n has_more: boolean;\n data: any[];\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/index';\n\ninterface IUserFollowTopicData {\n cursor: number;\n has_more: boolean;\n data: any[];\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 hasMore: input.hasMore,\n sessionImprId: input.sessionImprId,\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 discover = 'discover',\n search_sug = 'search_sug',\n}\n\nexport const PageTypeUtils = {\n getPageTypeFromPathname: (pathname: string): EPageType | null => {\n if (pathname.startsWith('/discover/')) {\n return EPageType.discover;\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","var manifestCache;\nfunction getManifest() {\n if (manifestCache)\n return manifestCache;\n return (manifestCache = process.env.BUILD_TARGET === 'client' ? window.__remixManifest : require('ttark').assets);\n}\n// do not pass routeId directly, webpack CSSLinksPlugin will pass the routeId\nexport function cssLinks(routeId) {\n return (manifestCache || getManifest()).routes[routeId].cssImports.map(function (href) { return ({ rel: 'stylesheet', href: href }); });\n}\n//# sourceMappingURL=index.js.map"],"sourceRoot":""}