Skip to content

Instantly share code, notes, and snippets.

@anhtuank7c
Forked from MarceloPrado/useToggleStorybook.ts
Created October 19, 2023 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anhtuank7c/d0fb60d9f52793544e309ebd42c76b07 to your computer and use it in GitHub Desktop.
Save anhtuank7c/d0fb60d9f52793544e309ebd42c76b07 to your computer and use it in GitHub Desktop.
Dynamically toggle between storybook and app
import { config } from "@/app/config";
import { createLogger } from "@/app/observability";
import { useEffect } from "react";
const { appEnv } = config;
const logger = createLogger("developer/storybook");
export const useToggleStorybook = () => {
const [isStorybookEnabled, setIsStorybookEnabled] = useState(false)
useEffect(() => {
if (appEnv === "dev") {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { registerDevMenuItems } = require("expo-dev-menu");
logger.info("Registering dev menu items");
const devMenuItems = [
{
name: "Toggle storybook",
callback: () => {
logger.info("Toggling storybook");
setIsStorybookEnabled(prev => !prev)
},
},
];
registerDevMenuItems(devMenuItems);
}
}, [toggle]);
return appEnv === "dev"
? { isStorybookEnabled }
: { isStorybookEnabled: false };
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment