update electron android adb over browser

This commit is contained in:
Kenta420 2024-01-19 17:53:48 +07:00
parent 21109e4bf9
commit f6295a9c2f
26 changed files with 1551 additions and 172 deletions

View 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

View file

@ -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