space-slack-sync/client/src/app/service/spacePermissions.ts (21 lines of code) (raw):

import { ApprovePermissionsResponse } from "../space/space"; export function approveChannelPermissions(spaceChannelId: string, onSuccess: () => void) { const asyncRequestAndFetch = async () => { await approveChannelPermissionsImpl(spaceChannelId, onSuccess); }; asyncRequestAndFetch().catch(console.error); } async function approveChannelPermissionsImpl(spaceChannelId: string, onSuccess: () => void) { const scope = `channel:${spaceChannelId}:Channel.ViewChannel channel:${spaceChannelId}:Channel.ViewMessages channel:${spaceChannelId}:Channel.ImportMessages` let response: ApprovePermissionsResponse = await new Promise((resolve) => { const channel = new MessageChannel(); channel.port1.onmessage = e => resolve(e.data); window.parent.postMessage({ type: "ApprovePermissionsRequest", permissionScope: scope, }, "*", [channel.port2]); }); if (response.success === true) { onSuccess() } }