Browse Source
- AuthContext 增加 candidateSetupDone/enterpriseVerified 标记及 completeCandidateSetup/completeEnterpriseVerify - api.saveJobPreference + useJobPreference hook,统一从 index 导出 - 形成『身份 → 分端设置 → 对应端』漏斗的持久判定位master
5 changed files with 92 additions and 4 deletions
@ -0,0 +1,29 @@ |
|||||
|
import { useCallback } from 'react'; |
||||
|
import { fetchJobPreference, saveJobPreference } from '../api'; |
||||
|
import type { JobPreference } from '../types'; |
||||
|
import { useAsyncData } from './useAsyncData'; |
||||
|
|
||||
|
export interface UseJobPreferenceReturn { |
||||
|
/** 当前求职意向 */ |
||||
|
preference: JobPreference | null; |
||||
|
loading: boolean; |
||||
|
error: Error | null; |
||||
|
refresh: () => void; |
||||
|
/** 保存求职意向 */ |
||||
|
save: (preference: JobPreference) => Promise<JobPreference>; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 求职意向 hook:取数 + 保存。 |
||||
|
* 用于求职者选择身份后的「求职意向设置」步骤。 |
||||
|
*/ |
||||
|
export function useJobPreference(): UseJobPreferenceReturn { |
||||
|
const fetcher = useCallback(() => fetchJobPreference(), []); |
||||
|
const { data, loading, error, refresh } = useAsyncData<JobPreference>(fetcher); |
||||
|
|
||||
|
const save = useCallback(async (preference: JobPreference) => { |
||||
|
return saveJobPreference(preference); |
||||
|
}, []); |
||||
|
|
||||
|
return { preference: data, loading, error, refresh, save }; |
||||
|
} |
||||
Loading…
Reference in new issue