39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
// Metro module 13531 (f13532).
|
|
import { TransportTypes, RPC_AUTHENTICATED_SCOPE } from "../../Constants";
|
|
import { RPCErrors, RPCCommands } from "../../../../Constants";
|
|
import createRpcJoiSchemaObject from "../../helpers/createRpcJoiSchemaObject";
|
|
import RPCError from "../../RPCError";
|
|
import Dispatcher from "../../../../Dispatcher";
|
|
const r20 = {};
|
|
r20[RPCCommands.SET_CONFIG] = {
|
|
scope: RPC_AUTHENTICATED_SCOPE,
|
|
validation: (a0) => createRpcJoiSchemaObject(a0).required().keys({
|
|
use_interactive_pip: a0.boolean()
|
|
}),
|
|
handler: (a0) => {
|
|
const socket = a0.socket;
|
|
const use_interactive_pip = a0.args.use_interactive_pip;
|
|
if (socket.transport !== TransportTypes.POST_MESSAGE) {
|
|
throw new RPCError({
|
|
errorCode: RPCErrors.INVALID_COMMAND
|
|
}, `command not available from "${socket.transport} transport`);
|
|
}
|
|
if (socket.application.id == null) {
|
|
throw new RPCError({
|
|
errorCode: RPCErrors.INVALID_COMMAND
|
|
}, "invalid application");
|
|
}
|
|
Dispatcher.dispatch({
|
|
type: "EMBEDDED_ACTIVITY_SET_CONFIG",
|
|
applicationId: socket.application.id,
|
|
config: {
|
|
useInteractivePIP: use_interactive_pip
|
|
}
|
|
});
|
|
return Promise.resolve({
|
|
use_interactive_pip
|
|
});
|
|
}
|
|
};
|
|
export default r20;
|