blob: df3f9055ee498b714f1ebded5a095b53040f3aa9 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// <if expr="_google_chrome">
import './data_sharing_sdk.js';
// </if>
// <if expr="not _google_chrome">
import './dummy_data_sharing_sdk.js';
// </if>
import type {BrowserProxy} from './browser_proxy.js';
import {BrowserProxyImpl} from './browser_proxy.js';
import type {DataSharingSdk} from './data_sharing_sdk_types.js';
import type {GroupData} from './group_data.mojom-webui.js';
import {toMojomGroupData} from './mojom_conversion_utils.js';
let initialized: boolean = false;
const dataSharingSdk: DataSharingSdk =
window.data_sharing_sdk.buildDataSharingSdk();
const browserProxy: BrowserProxy = BrowserProxyImpl.getInstance();
browserProxy.callbackRouter.onAccessTokenFetched.addListener(
(accessToken: string) => {
dataSharingSdk.setOauthAccessToken({accessToken});
if (!initialized) {
browserProxy.handler!.apiInitComplete();
initialized = true;
}
},
);
browserProxy.callbackRouter.readGroups.addListener((groupIds: string[]) => {
return new Promise((resolve) => {
dataSharingSdk.readGroups({groupIds})
.then(
({result, status}) => {
const groupData: GroupData[] =
result?.groupData.map(toMojomGroupData) ?? [];
resolve({result: {groups: groupData, statusCode: status}});
});
});
});