Feat:edu frontend (#17251)
Co-authored-by: crazywoola <427733928@qq.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com>
This commit is contained in:
67
web/service/use-education.ts
Normal file
67
web/service/use-education.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import { get, post } from './base'
|
||||
import {
|
||||
useMutation,
|
||||
useQuery,
|
||||
} from '@tanstack/react-query'
|
||||
import { useInvalid } from './use-base'
|
||||
import type { EducationAddParams } from '@/app/education-apply/types'
|
||||
|
||||
const NAME_SPACE = 'education'
|
||||
|
||||
export const useEducationVerify = () => {
|
||||
return useMutation({
|
||||
mutationKey: [NAME_SPACE, 'education-verify'],
|
||||
mutationFn: () => {
|
||||
return get<{ token: string }>('/account/education/verify', {}, { silent: true })
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export const useEducationAdd = ({
|
||||
onSuccess,
|
||||
}: {
|
||||
onSuccess?: () => void
|
||||
}) => {
|
||||
return useMutation({
|
||||
mutationKey: [NAME_SPACE, 'education-add'],
|
||||
mutationFn: (params: EducationAddParams) => {
|
||||
return post<{ message: string }>('/account/education', {
|
||||
body: params,
|
||||
})
|
||||
},
|
||||
onSuccess,
|
||||
})
|
||||
}
|
||||
|
||||
type SearchParams = {
|
||||
keywords?: string
|
||||
page?: number
|
||||
limit?: number
|
||||
}
|
||||
export const useEducationAutocomplete = () => {
|
||||
return useMutation({
|
||||
mutationFn: (searchParams: SearchParams) => {
|
||||
const {
|
||||
keywords = '',
|
||||
page = 0,
|
||||
limit = 40,
|
||||
} = searchParams
|
||||
return get<{ data: string[]; has_next: boolean; curr_page: number }>(`/account/education/autocomplete?keywords=${keywords}&page=${page}&limit=${limit}`)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export const useEducationStatus = (disable?: boolean) => {
|
||||
return useQuery({
|
||||
enabled: !disable,
|
||||
queryKey: [NAME_SPACE, 'education-status'],
|
||||
queryFn: () => {
|
||||
return get<{ result: boolean }>('/account/education')
|
||||
},
|
||||
retry: false,
|
||||
})
|
||||
}
|
||||
|
||||
export const useInvalidateEducationStatus = () => {
|
||||
return useInvalid([NAME_SPACE, 'education-status'])
|
||||
}
|
Reference in New Issue
Block a user