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