update electron android adb over browser
This commit is contained in:
parent
21109e4bf9
commit
f6295a9c2f
26 changed files with 1551 additions and 172 deletions
19
client-electron/src/hooks/adb.ts
Normal file
19
client-electron/src/hooks/adb.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import {
|
||||
type AdbDaemonWebUsbDevice,
|
||||
AdbDaemonWebUsbDeviceManager
|
||||
} from '@yume-chan/adb-daemon-webusb'
|
||||
import { create } from 'zustand'
|
||||
|
||||
interface ADB {
|
||||
manager: AdbDaemonWebUsbDeviceManager | undefined
|
||||
device: AdbDaemonWebUsbDevice | undefined
|
||||
setDevice: (device: AdbDaemonWebUsbDevice | undefined) => void
|
||||
}
|
||||
|
||||
const useAdb = create<ADB>(set => ({
|
||||
manager: AdbDaemonWebUsbDeviceManager.BROWSER,
|
||||
device: undefined,
|
||||
setDevice: device => set({ device })
|
||||
}))
|
||||
|
||||
export default useAdb
|
||||
|
|
@ -1,14 +1,40 @@
|
|||
import { create } from 'zustand'
|
||||
import customAxios from '../utils/customAxios'
|
||||
|
||||
interface UserAuth {
|
||||
username: string | undefined
|
||||
email: string | undefined
|
||||
export interface UserInfo {
|
||||
id: string
|
||||
name: string
|
||||
email: string
|
||||
picture: string
|
||||
permissions: string[]
|
||||
}
|
||||
|
||||
const userAuthStore = create<UserAuth>(() => ({
|
||||
username: undefined,
|
||||
email: undefined
|
||||
interface UserAuth {
|
||||
userInfo: UserInfo | null
|
||||
setUserInfo: (userInfo: UserInfo | null) => void
|
||||
getUserInfo: () => Promise<UserInfo | null>
|
||||
logout: () => void
|
||||
}
|
||||
|
||||
const userAuthStore = create<UserAuth>(set => ({
|
||||
userInfo: null,
|
||||
setUserInfo: userInfo => set({ userInfo }),
|
||||
getUserInfo: () => {
|
||||
return customAxios
|
||||
.get<UserInfo>('/user/me')
|
||||
.then(res => {
|
||||
set({ userInfo: res.data })
|
||||
return res.data
|
||||
})
|
||||
.catch(() => {
|
||||
set({ userInfo: null })
|
||||
return null
|
||||
})
|
||||
},
|
||||
logout: () => {
|
||||
customAxios.post('/auth/logout')
|
||||
set({ userInfo: null })
|
||||
}
|
||||
}))
|
||||
|
||||
export const getUserName = userAuthStore(state => state.username)
|
||||
export const getUserEmail = userAuthStore(state => state.email)
|
||||
export default userAuthStore
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue