1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { useCallback } from 'react'
- import { useDispatch } from 'react-redux'
- import Taro from '@tarojs/taro'
- import { dispatchUpdateUserInfo } from '@/actions/user'
- import { queryUserPhone } from '@/services/user'
- import { UPDATE_USER_INFO } from '@/constants/user'
-
- export default function useAuth() {
- const dispatch = useDispatch()
-
- const updateUserInfo = useCallback((data) => {
- return new Promise((resolve, reject) => {
- const sessionKey = Taro.getStorageSync('sessionKey')
- Object.assign(data, { sessionKey })
- dispatchUpdateUserInfo(data)(dispatch).then(() => {
- resolve()
- }).catch((err) => {
- console.error(err)
- reject(err)
- })
- })
- }, [dispatch])
-
- const updatePhoneNumber = useCallback((data) => {
- return new Promise((resolve, reject) => {
- const sessionKey = Taro.getStorageSync('sessionKey')
- Object.assign(data, { sessionKey })
- queryUserPhone(data).then((res) => {
- dispatch({
- type: UPDATE_USER_INFO,
- payload: {
- phone: res.phoneNumber
- }
- })
- resolve()
- }).catch((err) => {
- console.error(err)
- reject(err)
- })
- })
- }, [dispatch])
-
- return { updateUserInfo, updatePhoneNumber }
- }
|