@storybook/addon-onboarding
Version:
Storybook Onboarding: Help new users learn how to write stories
43 lines (41 loc) • 1.3 kB
JavaScript
import {
IntentSurvey
} from "./chunk-IQU35HZW.js";
import {
ADDON_ONBOARDING_CHANNEL
} from "./chunk-VFOIHBP2.js";
import "./chunk-UBBB7RW7.js";
// src/Survey.tsx
import React, { useCallback, useEffect, useState } from "react";
import { ThemeProvider, convert } from "storybook/theming";
var theme = convert();
function Survey({ api }) {
let userAgent = globalThis?.navigator?.userAgent, [isOpen, setIsOpen] = useState(!0);
useEffect(() => {
api.emit(ADDON_ONBOARDING_CHANNEL, {
from: "guide",
type: "openSurvey",
userAgent
});
}, [api, userAgent]);
let disableOnboarding = useCallback(() => {
setIsOpen(!1), api.applyQueryParams({ onboarding: void 0 }, { replace: !0 });
}, [api]), complete = useCallback(
(answers) => {
api.emit(ADDON_ONBOARDING_CHANNEL, {
answers,
type: "survey",
userAgent
}), disableOnboarding();
},
[api, disableOnboarding, userAgent]
), dismiss = useCallback(() => {
api.emit(ADDON_ONBOARDING_CHANNEL, {
type: "dismissSurvey"
}), disableOnboarding();
}, [api, disableOnboarding]);
return React.createElement(ThemeProvider, { theme }, React.createElement(IntentSurvey, { isOpen, onComplete: complete, onDismiss: dismiss }));
}
export {
Survey as default
};