Skip to main content
Version: Svelte SDK

Svelte context and hooks

Hooks let you listen to Screeb lifecycle events. You can define hooks globally via the provider config or per-survey/per-message.

Available hooksโ€‹

Hook NameProvider config / initsurveyStartmessageStart
onReadyโœ…โŒโŒ
onSurveyDisplayAllowedโœ…โŒโŒ
onMessageDisplayAllowedโœ…โŒโŒ
onSurveyShowedโœ…โœ…โŒ
onSurveyStartedโœ…โœ…โŒ
onQuestionRepliedโœ…โœ…โœ…
onSurveyCompletedโœ…โœ…โŒ
onSurveyHiddenโœ…โœ…โŒ
onMessageShowedโœ…โŒโœ…
onMessageStartedโœ…โŒโœ…
onMessageCompletedโœ…โŒโœ…
onMessageHiddenโœ…โŒโœ…

Global hooks (provider config)โ€‹

Define hooks once in your root component:

<script lang="ts">
import { setScreebContext } from "@screeb/sdk-svelte";

setScreebContext({
websiteId: "<YOUR-CHANNEL-ID>",
autoInit: true,
hooks: {
version: "1.0.0",
onReady: (payload) => {
console.log("Screeb ready", payload);
},
onSurveyShowed: (payload) => {
console.log("Survey showed", payload);
},
onSurveyCompleted: (payload) => {
console.log("Survey completed", payload);
},
},
});
</script>

Per-survey hooksโ€‹

Pass hooks to surveyStart():

<script lang="ts">
import { useScreeb } from "@screeb/sdk-svelte";

const { surveyStart } = useScreeb();

await surveyStart("<survey-id>", undefined, false, {}, {
version: "1.0.0",
onSurveyCompleted: (payload) => {
console.log("Survey completed", payload);
},
});
</script>

Per-message hooksโ€‹

Pass hooks to messageStart():

<script lang="ts">
import { useScreeb } from "@screeb/sdk-svelte";

const { messageStart } = useScreeb();

await messageStart("<message-id>", true, {}, {
version: "1.0.0",
onMessageCompleted: (payload) => {
console.log("Message completed", payload);
},
});
</script>