improving communication between extension and website

This commit is contained in:
Myzel394 2022-11-26 22:32:13 +01:00
parent da58320e5c
commit 01918c97c7
2 changed files with 19 additions and 5 deletions

View File

@ -4,7 +4,6 @@ import {AxiosError} from "axios"
import {decrypt, readMessage, readPrivateKey} from "openpgp"
import {useMutation} from "@tanstack/react-query"
import AuthContext, {AuthContextType, EncryptionStatus} from "./AuthContext"
import {ServerUser, User} from "~/server-types"
import {REFRESH_TOKEN_URL, RefreshTokenResult, logout as logoutUser, refreshToken} from "~/apis"
@ -13,6 +12,8 @@ import {decryptString, encryptString} from "~/utils"
import {ExtensionKleckEvent} from "~/extension-types"
import PasswordShareConfirmationDialog from "~/AuthContext/PasswordShareConfirmationDialog"
import AuthContext, {AuthContextType, EncryptionStatus} from "./AuthContext"
export interface AuthContextProviderProps {
children: ReactNode
}
@ -225,7 +226,18 @@ export default function AuthContextProvider({children}: AuthContextProviderProps
break
case "ask-for-password":
setAskForPassword(true)
break
case "get-user":
window.dispatchEvent(
new CustomEvent("kleckrelay-blob", {
detail: {
type: "get-user",
data: {
user: user,
},
},
}),
)
break
}
},

View File

@ -1,17 +1,19 @@
interface ExtensionKleckMessagePasswordAvailable {
type: "password-available"
data: {
isAvailable: boolean
}
}
interface ExtensionKleckMessageAskForPassword {
type: "ask-for-password"
}
interface ExtensionKleckMessageUser {
type: "get-user"
}
export type ExtensionKleckMessage =
| ExtensionKleckMessagePasswordAvailable
| ExtensionKleckMessageAskForPassword
| ExtensionKleckMessageUser
export type ExtensionKleckEvent = MessageEvent & {
detail: ExtensionKleckMessage