Skip to content

Commit 367809f

Browse files
authored
feat(theme): Set theme config from embedded sdk (#32)
1 parent 77e4581 commit 367809f

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@preset-sdk/embedded",
3-
"version": "0.1.13",
3+
"version": "0.2.0",
44
"description": "Frontend SDK for embedding Preset data analytics into your own application",
55
"access": "public",
66
"keywords": [

src/index.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export type EmbeddedDashboard = {
6969
callbackFn: ObserveDataMaskCallbackFn
7070
) => void
7171
getDataMask: () => Record<string, any>
72+
setThemeConfig: (themeConfig: Record<string, any>) => void
7273
}
7374

7475
/**
@@ -196,13 +197,25 @@ export async function embedDashboard({
196197
ourPort.start()
197198
ourPort.defineMethod('observeDataMask', callbackFn)
198199
}
200+
const setThemeConfig = async (themeConfig: Record<string, any>): Promise<void> => {
201+
try {
202+
ourPort.emit('setThemeConfig', { themeConfig });
203+
log('Theme config sent successfully (or at least message dispatched)');
204+
} catch (error) {
205+
log(
206+
'Error sending theme config. Ensure the iframe side implements the "setThemeConfig" method.',
207+
);
208+
throw error;
209+
}
210+
};
199211
return {
200212
getScrollSize,
201213
unmount,
202214
getDashboardPermalink,
203215
getActiveTabs,
204216
observeDataMask,
205-
getDataMask
217+
getDataMask,
218+
setThemeConfig
206219
}
207220
}
208221

0 commit comments

Comments
 (0)