wwf
2025-05-20 938c3e5a587ce950a94964ea509b9e7f8834dfae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { useMutation } from '@tanstack/react-query'
import { create } from 'zustand'
import { sendDeleteAccountCode, submitDeleteAccountFeedback, verifyDeleteAccountCode } from '@/service/common'
 
type State = {
  sendEmailToken: string
  setSendEmailToken: (token: string) => void
}
 
export const useAccountDeleteStore = create<State>(set => ({
  sendEmailToken: '',
  setSendEmailToken: (token: string) => set({ sendEmailToken: token }),
}))
 
export function useSendDeleteAccountEmail() {
  const updateEmailToken = useAccountDeleteStore(state => state.setSendEmailToken)
  return useMutation({
    mutationKey: ['delete-account'],
    mutationFn: sendDeleteAccountCode,
    onSuccess: (ret) => {
      if (ret.result === 'success')
        updateEmailToken(ret.data)
    },
  })
}
 
export function useConfirmDeleteAccount() {
  return useMutation({
    mutationKey: ['confirm-delete-account'],
    mutationFn: verifyDeleteAccountCode,
  })
}
 
export function useDeleteAccountFeedback() {
  return useMutation({
    mutationKey: ['delete-account-feedback'],
    mutationFn: submitDeleteAccountFeedback,
  })
}