{"version":3,"sources":["webpack://@lemon8/web-seo/../common/temp/split__lemon8_web_seo/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","webpack://@lemon8/web-seo/../common/temp/split__lemon8_web_seo/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","webpack://@lemon8/web-seo/../common/temp/split__lemon8_web_seo/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/head/json-ld.tsx","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/shared/use-user-desc.ts","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/head/og.tsx","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/head/twitter.tsx","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/head/index.tsx","webpack://@lemon8/web-seo/./client/utils/image.ts","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/constant/method.ts","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/body/follow-topic/index.tsx","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/body/index.tsx","webpack://@lemon8/web-seo/./client/routes/$user_link_name_.topic/__remix_browser_route__route.tsx"],"names":["trimmedEndIndex","reTrimStart","baseTrim","string","module","reWhitespace","index","isObject","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","other","isBinary","JsonLD","user","useAtomValue","$CurrentAvailableUserOrNull","canonicalUrl","$PageLevelTraffic","jsx","Fragment","children","BreadcrumbJSONLD","nameList","nickName","path","useUserDesc","t","useTranslation","description","replace","OG","jsxs","property","content","avatar","endsWith","Twitter","name","UserFollowTopicHeadInner","fb_appid","noIndex","privacyStatus","EPrivacyStatus","keywords","title","concat","rel","href","String","UserFollowTopicHead","Suspense","webpReg","RegExp","processWebp","arguments","length","undefined","forceJPGReg","forceJPG","url","getImageUrl","uri","type","useWebp","_uri","test","includes","Methods","FollowTopic","isMobile","$UserAgent","region","$Locale","userLinkName","$CurrentUserLinkName","userId","$CurrentUserAsAvailable","data","$UserFollowingTopic","cursor","topicList","has_more","hasMore","topicLoader","useRouteLoader","user_id","count","atomFamilies","$UserFollowTopicLoadmore","loadData","load","className","cs","isPC","LoadMore","isEnd","alwaysShowLoading","loadingText","Loading","variant","fitParent","endText","initList","render","map","item","i","share_url","topicCanonicalUrl","addRegionToSemanticUrl","origin_uri","background","imgSrc","HashtagCard","aHref","isDefault","viewsCount","views_count","size","UserFollowTopicBody","NotFound","links","loader","shouldRevalidate","args","currentUserLinkName","defaultShouldRevalidate","UserFollowTopicPage"],"mappings":"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","file":"routes/$user_link_name_.topic-449d2bcd9762a9964446.js","sourcesContent":["var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","import { BreadcrumbJSONLD } from '~/utils/json-ld/breadcrumb';\nimport { useAtomValue } from 'jotai';\nimport { $CurrentAvailableUserOrNull } from '@user/shared/atoms/current-user';\nimport { $PageLevelTraffic } from 'shared/atoms';\nimport { FC } from 'react';\n\nexport const JsonLD: FC = () => {\n const user = useAtomValue($CurrentAvailableUserOrNull);\n const { canonicalUrl } = useAtomValue($PageLevelTraffic);\n\n if (!user) {\n return null;\n }\n\n return (\n <>\n \n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { useAtomValue } from 'jotai';\nimport { $CurrentAvailableUserOrNull } from '@user/shared/atoms/current-user';\n\nexport const useUserDesc = (): string => {\n const user = useAtomValue($CurrentAvailableUserOrNull);\n const { t } = useTranslation();\n\n if (!user) {\n return '';\n }\n\n const { nickName, description } = user;\n\n return t('user_helmet_description_1')\n .replace('%1$s', nickName || '')\n .replace('%2$s', description || '');\n};\n","import { useAtomValue } from 'jotai';\nimport { useUserDesc } from '../shared/use-user-desc';\nimport { $CurrentAvailableUserOrNull } from '@user/shared/atoms/current-user';\nimport { $PageLevelTraffic } from 'shared/atoms';\nimport { FC } from 'react';\n\nexport const OG: FC = () => {\n const user = useAtomValue($CurrentAvailableUserOrNull);\n const description = useUserDesc();\n const { canonicalUrl } = useAtomValue($PageLevelTraffic);\n\n if (!user) {\n return null;\n }\n\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n","import { useAtomValue } from 'jotai';\nimport { useUserDesc } from '../shared/use-user-desc';\nimport { $CurrentAvailableUserOrNull } from '@user/shared/atoms/current-user';\nimport { FC } from 'react';\n\nexport const Twitter: FC = () => {\n const user = useAtomValue($CurrentAvailableUserOrNull);\n const description = useUserDesc();\n\n if (!user) {\n return null;\n }\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n","import { Suspense, FC } from 'react';\nimport { useAtomValue } from 'jotai';\nimport { useTranslation } from 'react-i18next';\nimport { JsonLD } from './json-ld';\nimport { OG } from './og';\nimport { useUserDesc } from '../shared/use-user-desc';\nimport { Twitter } from './twitter';\nimport { $PageLevelTraffic } from 'shared/atoms';\nimport { $CurrentAvailableUserOrNull } from '@user/shared/atoms/current-user';\nimport { EPrivacyStatus } from 'shared/models';\n\nexport const UserFollowTopicHeadInner: FC = () => {\n const { t } = useTranslation();\n const { canonicalUrl } = useAtomValue($PageLevelTraffic);\n const user = useAtomValue($CurrentAvailableUserOrNull);\n const description = useUserDesc();\n\n if (!user) {\n return null;\n }\n\n const fb_appid = 426786581540674;\n const noIndex = user.privacyStatus >= EPrivacyStatus.PrivateUser;\n const { nickName } = user;\n const keywords = t('keyword_default');\n const title = `${t('user_helmet_title')\n .replace('%1$s', nickName || '')\n .replace('%2$s', t('contribute'))}|Lemon8`;\n\n return (\n <>\n {title}\n \n \n {noIndex && }\n \n \n \n \n \n \n );\n};\n\nexport const UserFollowTopicHead: FC = () => {\n return (\n \n \n \n );\n};\n","const webpReg = new RegExp(/\\.webp$/);\nexport const processWebp = (url = ''): string => url.replace(webpReg, '.jpg');\nconst forceJPGReg = new RegExp(/\\.\\w+$/);\nexport const forceJPG = (url: string): string => `${url.replace(forceJPGReg, '')}.jpg`;\n\nexport function getImageUrl(uri: string, type = 'large', useWebp = true): string {\n let _uri = uri;\n if (!_uri) {\n return _uri;\n }\n\n if (/^(http:|https:){0,1}\\/\\//.test(_uri)) {\n return _uri;\n }\n\n if (!_uri.includes('tos') && !_uri.includes('pgc')) {\n _uri = `tos-maliva-p-0000/${_uri}`;\n }\n\n _uri = `//p16-va.topbuzzcdn.com/${type}/${_uri}`;\n\n if (!useWebp) {\n _uri = processWebp(_uri);\n }\n // va cdn没有跨域头,先用sg的地址,记得改回来\n return _uri;\n}\n","/**\n * 该路由下所有可能用到的方法\n */\n\nexport enum Methods {\n UserFollowingTopicLoadMore = 'user-follow-topic-load-more',\n}\n","import React, { useEffect } from 'react';\nimport { useFetcher } from '@remix-run/react';\nimport cs from 'classnames';\nimport { useAtom, useAtomValue } from 'jotai';\nimport { $UserAgent, $Locale } from '@lemon8/web-app-shared/atom';\nimport { $UserFollowingTopic, $UserFollowTopicLoadmore } from 'shared/atoms';\nimport LoadMore from '~/components/load-more';\nimport { Loading } from '~/components/loading';\nimport HashtagCard from '~/components/simple-topic-card';\nimport { useTranslation } from 'react-i18next';\nimport { addRegionToSemanticUrl } from '~/utils/add-region-to-semantic-url';\nimport { fetchDataRoute } from '~/utils/fetch-data-route';\nimport { getImageUrl } from '~/utils/image';\nimport { Methods } from '../../constant';\nimport { $CurrentUserAsAvailable, $CurrentUserLinkName } from '@user/shared/atoms/current-user';\n\nimport './style.scss';\nimport { useRouteLoader } from '~/utils/use-route-loader';\n\nconst FollowTopic: React.FC = () => {\n const { t } = useTranslation();\n const { isMobile } = useAtomValue($UserAgent);\n const { region } = useAtomValue($Locale);\n const userLinkName = useAtomValue($CurrentUserLinkName);\n\n const { userId } = useAtomValue($CurrentUserAsAvailable);\n const data = useAtomValue($UserFollowingTopic(userLinkName));\n const { cursor = 0, data: topicList, has_more: hasMore } = data;\n\n const topicLoader = useRouteLoader(\n Methods.UserFollowingTopicLoadMore,\n {\n user_id: userId,\n count: 10,\n cursor,\n },\n {\n atomFamilies: {\n $UserFollowTopicLoadmore,\n },\n },\n );\n\n const loadData = async (): Promise<{\n data: any[];\n }> => {\n topicLoader.load();\n\n return { data: [] };\n };\n\n return (\n
\n
\n }\n endText={topicList.length > 0 ? t('no_more_items') : t('no_content')}\n initList={topicList}\n render={() => (\n
\n {topicList.map((item: any, i: number) => {\n const { share_url } = item;\n const { canonicalUrl: topicCanonicalUrl } = addRegionToSemanticUrl(share_url, '', region);\n const { origin_uri } = item.background || {};\n let imgSrc = origin_uri ? getImageUrl(origin_uri) : '';\n if (imgSrc && !imgSrc.includes('http')) {\n imgSrc = `https:${imgSrc}`;\n }\n return (\n {\n // event.preventDefault();\n // navigate(`${topicPath}?region=${region}`, {\n // state: {\n // page: PageType.topic,\n // data: item,\n // },\n // });\n // }}\n />\n );\n })}\n
\n )}\n />\n
\n
\n );\n};\n\nexport default FollowTopic;\n","import React, { FC } from 'react';\nimport FollowTopic from './follow-topic';\nimport { useAtomValue } from 'jotai';\nimport { $CurrentAvailableUserOrNull } from '@user/shared/atoms/current-user';\nimport { NotFound } from '~/components/not-found';\n\nexport const UserFollowTopicBody: FC = () => {\n const user = useAtomValue($CurrentAvailableUserOrNull);\n\n if (!user) {\n return ;\n }\n\n return ;\n};\n","\"use strict\";\n\nimport \"core-js/modules/web.dom-collections.iterator.js\";\nimport { RemixPage } from \"~/utils/remix-page\";\nimport { cssLinks } from \"@ttark/css-links\";\nimport { UserFollowTopicHead } from \"./head\";\nimport { UserFollowTopicBody } from \"./body\";\nimport { buildMasterLoader } from \"~/utils/build-master-loader\";\nvar links = () => [...cssLinks(\"routes/$user_link_name_.topic\")];\nvar loader = buildMasterLoader(\"userTopic\");\nvar shouldRevalidate = args => {\n const {\n currentParams: {\n user_link_name: currentUserLinkName\n },\n nextParams: {\n user_link_name: userLinkName\n },\n defaultShouldRevalidate\n } = args;\n if (currentUserLinkName === userLinkName) {\n console.log(\"[shouldRevalidate] same route, skip revalidate\");\n return false;\n }\n return defaultShouldRevalidate;\n};\nvar UserFollowTopicPage = class extends RemixPage {\n constructor() {\n super(...arguments);\n this.Head = UserFollowTopicHead;\n this.Body = UserFollowTopicBody;\n }\n};\nexport { UserFollowTopicPage as default, links, shouldRevalidate };"],"sourceRoot":""}