fix: visualize readme content for private repo with HF token

This commit is contained in:
Louis 2025-08-12 12:07:25 +07:00
parent 7c25d1dbfd
commit 1a72a592b9
No known key found for this signature in database
GPG Key ID: 44FA9F4D33C37DE2

View File

@ -27,6 +27,7 @@ import {
import { Progress } from '@/components/ui/progress' import { Progress } from '@/components/ui/progress'
import { Button } from '@/components/ui/button' import { Button } from '@/components/ui/button'
import { cn } from '@/lib/utils' import { cn } from '@/lib/utils'
import { useGeneralSetting } from '@/hooks/useGeneralSetting'
type SearchParams = { type SearchParams = {
repo: string repo: string
@ -42,6 +43,7 @@ export const Route = createFileRoute('/hub/$modelId')({
function HubModelDetail() { function HubModelDetail() {
const { modelId } = useParams({ from: Route.id }) const { modelId } = useParams({ from: Route.id })
const navigate = useNavigate() const navigate = useNavigate()
const { huggingfaceToken } = useGeneralSetting()
const { sources, fetchSources } = useModelSources() const { sources, fetchSources } = useModelSources()
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
const search = useSearch({ from: Route.id as any }) const search = useSearch({ from: Route.id as any })
@ -60,12 +62,15 @@ function HubModelDetail() {
}, [fetchSources]) }, [fetchSources])
const fetchRepo = useCallback(async () => { const fetchRepo = useCallback(async () => {
const repoInfo = await fetchHuggingFaceRepo(search.repo || modelId) const repoInfo = await fetchHuggingFaceRepo(
search.repo || modelId,
huggingfaceToken
)
if (repoInfo) { if (repoInfo) {
const repoDetail = convertHfRepoToCatalogModel(repoInfo) const repoDetail = convertHfRepoToCatalogModel(repoInfo)
setRepoData(repoDetail) setRepoData(repoDetail)
} }
}, [modelId, search]) }, [modelId, search, huggingfaceToken])
useEffect(() => { useEffect(() => {
fetchRepo() fetchRepo()
@ -151,7 +156,13 @@ function HubModelDetail() {
useEffect(() => { useEffect(() => {
if (modelData?.readme) { if (modelData?.readme) {
setIsLoadingReadme(true) setIsLoadingReadme(true)
fetch(modelData.readme) fetch(modelData.readme, {
headers: huggingfaceToken
? {
Authorization: `Bearer ${huggingfaceToken}`,
}
: {},
})
.then((response) => response.text()) .then((response) => response.text())
.then((content) => { .then((content) => {
setReadmeContent(content) setReadmeContent(content)
@ -162,7 +173,7 @@ function HubModelDetail() {
setIsLoadingReadme(false) setIsLoadingReadme(false)
}) })
} }
}, [modelData?.readme]) }, [modelData?.readme, huggingfaceToken])
if (!modelData) { if (!modelData) {
return ( return (