修复短效IP提取未登录时选择套餐的展示问题

This commit is contained in:
Eamon-meng
2025-08-13 17:01:56 +08:00
parent 13708483fc
commit f0f4b22356

View File

@@ -20,7 +20,8 @@ import {Combobox} from '@/components/ui/combobox'
import cities from './_assets/cities.json' import cities from './_assets/cities.json'
import ExtractDocs from '@/components/docs/extract.mdx' import ExtractDocs from '@/components/docs/extract.mdx'
import Markdown from '@/components/markdown' import Markdown from '@/components/markdown'
import Link from 'next/link'
import {useProfileStore} from '@/components/stores-provider'
const schema = z.object({ const schema = z.object({
resource: z.number({required_error: '请选择套餐'}), resource: z.number({required_error: '请选择套餐'}),
prov: z.string().optional(), prov: z.string().optional(),
@@ -324,20 +325,20 @@ FormFields.displayName = 'FormFields'
function SelectResource() { function SelectResource() {
const [resources, setResources] = useState<Resource[]>([]) const [resources, setResources] = useState<Resource[]>([])
const [status, setStatus] = useStatus() const [status, setStatus] = useStatus()
const profile = useProfileStore(state => state.profile)
const getResources = async () => { const getResources = async () => {
setStatus('load') setStatus('load')
try { try {
const resp = await allResource() const resp = await allResource()
if (!resp.success) { if (!resp.success) {
throw new Error('Unable to fetch packages.') console.log(11111)
throw new Error('获取套餐失败,请稍后再试')
} }
console.log(resp.data) setResources(resp.data ?? [])
setResources(resp.data)
setStatus('done') setStatus('done')
} }
catch (error) { catch (error) {
console.error('Error fetching packages:', error) toast.error((error as Error).message)
toast.error('获取套餐失败,请稍后再试')
setStatus('fail') setStatus('fail')
} }
} }
@@ -363,6 +364,11 @@ function SelectResource() {
<Loader className="animate-spin" size={20}/> <Loader className="animate-spin" size={20}/>
<span>...</span> <span>...</span>
</div> </div>
) : !profile ? (
<div className="p-4 flex gap-1 items-center">
<Loader className="animate-spin" size={20}/>
<span><Link href="/login" className="text-blue-600 hover:underline"></Link></span>
</div>
) : resources.length === 0 ? ( ) : resources.length === 0 ? (
<div className="p-4 flex gap-1 items-center"> <div className="p-4 flex gap-1 items-center">
<Loader className="animate-spin" size={20}/> <Loader className="animate-spin" size={20}/>