Best JavaScript code snippet using storybook-root
utils.ts
Source:utils.ts
1import { rgba, lighten, darken } from 'polished';2import { window } from 'global';3import { logger } from '@storybook/client-logger';4export const mkColor = (color: string) => ({ color });5// Check if it is a string. This is for the sake of warning users6// and the successive guarding logics that use String methods.7const isColorString = (color: string) => {8 if (typeof color !== 'string') {9 logger.warn(10 `Color passed to theme object should be a string. Instead ` +11 `${color}(${typeof color}) was passed.`12 );13 return false;14 }15 return true;16};17// Passing arguments that can't be converted to RGB such as linear-gradient18// to library polished's functions such as lighten or darken throws the error19// that crashes the entire storybook. It needs to be guarded when arguments20// of those functions are from user input.21const isValidColorForPolished = (color: string) => {22 return !/(gradient|var|calc)/.test(color);23};24const applyPolished = (type: string, color: string) => {25 if (type === 'darken') {26 return rgba(`${darken(1, color)}`, 0.95);27 }28 if (type === 'lighten') {29 return rgba(`${lighten(1, color)}`, 0.95);30 }31 return color;32};33const colorFactory = (type: string) => (color: string) => {34 if (!isColorString(color)) {35 return color;36 }37 if (!isValidColorForPolished(color)) {38 return color;39 }40 // Guard anything that is not working with polished.41 try {42 return applyPolished(type, color);43 } catch (error) {44 return color;45 }46};47export const lightenColor = colorFactory('lighten');48export const darkenColor = colorFactory('darken');49// The default color scheme is light so unless the preferred color50// scheme is set to dark we always want to use the light theme51export const getPreferredColorScheme = () => {52 if (!window || !window.matchMedia) return 'light';53 const isDarkThemePreferred = window.matchMedia('(prefers-color-scheme: dark)').matches;54 if (isDarkThemePreferred) return 'dark';55 return 'light';...
App.jsx
Source:App.jsx
1import '@fontsource/kumbh-sans/300.css';2import '@fontsource/kumbh-sans/400.css';3import '@fontsource/kumbh-sans/700.css';4import 'reset-css';5import { AppContainer, Header } from '@components/layout';6import { DARK } from '@constants/themes';7import { useThemePreference } from '@hooks';8import { switchTheme } from '@store/ui/ui.slice';9import { HomePage } from '@views/Home';10import { JobPage } from '@views/Job';11import { NotFoundPage } from '@views/NotFound';12import { useLayoutEffect } from 'react';13import { ThemeProvider } from 'react-jss';14import { useDispatch, useSelector } from 'react-redux';15import { HashRouter as Router, Route, Switch } from 'react-router-dom';16import theme from './theme';17const App = () => {18 const currentTheme = useSelector((state) => state.ui.theme);19 const dispatch = useDispatch();20 const isDarkThemePreferred = useThemePreference();21 useLayoutEffect(() => {22 if (isDarkThemePreferred) dispatch(switchTheme(DARK));23 }, [isDarkThemePreferred, dispatch]);24 return (25 <ThemeProvider theme={{ ...theme, colors: theme.colors[currentTheme] }}>26 <AppContainer>27 <Router>28 <Header />29 <Switch>30 <Route exact path='/:id' component={JobPage} />31 <Route exact path='/' component={HomePage} />32 <Route component={NotFoundPage} />33 </Switch>34 </Router>35 </AppContainer>36 </ThemeProvider>37 );38};...
useColorTheme.ts
Source:useColorTheme.ts
1import { useMediaQuery } from '@material-ui/core';2import { ColorTheme } from '../interfaces/Styles/ColorTheme';3import React from 'react';4import Cookies from 'js-cookie';5export const useColorTheme = () => {6 const darkModeCookie = Cookies.get('isDarkTheme');7 const isDarkTheme = darkModeCookie ? JSON.parse(darkModeCookie) : null;8 const isDarkThemePreferred = useMediaQuery('(prefers-color-scheme: dark)');9 const prefersDarkMode = isDarkTheme ?? isDarkThemePreferred;10 const mode = prefersDarkMode ? ColorTheme.Dark : ColorTheme.Light;11 const [colorTheme, setColorTheme] = React.useState(mode);12 const changeColorTheme = () => {13 const isOldThemeDark = colorTheme === ColorTheme.Dark;14 setColorTheme(isOldThemeDark ? ColorTheme.Light : ColorTheme.Dark);15 Cookies.set('isDarkTheme', String(!isOldThemeDark), { expires: 7 });16 };17 return { colorTheme, changeColorTheme };...
Using AI Code Generation
1import { useDarkThemePreferred } from 'storybook-root-provider';2const App = () => {3 const isDarkThemePreferred = useDarkThemePreferred();4 return <div>{isDarkThemePreferred ? 'Dark' : 'Light'}</div>;5};6export default App;7import React from 'react';8import { storiesOf } from '@storybook/react';9import App from '../test';10storiesOf('App', module).add('App', () => <App />);
Using AI Code Generation
1import { isDarkThemePreferred } from 'storybook-root-provider';2const isDarkTheme = isDarkThemePreferred();3console.log(isDarkTheme);4import { isDarkThemePreferred } from 'storybook-root-provider';5const isDarkTheme = isDarkThemePreferred();6console.log(isDarkTheme);7import { isDarkThemePreferred } from 'storybook-root-provider';8const isDarkTheme = isDarkThemePreferred();9console.log(isDarkTheme);10import { isDarkThemePreferred } from 'storybook-root-provider';11const isDarkTheme = isDarkThemePreferred();12console.log(isDarkTheme);13import { isDarkThemePreferred } from 'storybook-root-provider';14const isDarkTheme = isDarkThemePreferred();15console.log(isDarkTheme);16import { isDarkThemePreferred } from 'storybook-root-provider';17const isDarkTheme = isDarkThemePreferred();18console.log(isDarkTheme);19import { isDarkThemePreferred } from 'storybook-root-provider';20const isDarkTheme = isDarkThemePreferred();21console.log(isDarkTheme);22import { isDarkThemePreferred } from 'storybook-root-provider';23const isDarkTheme = isDarkThemePreferred();24console.log(isDarkTheme);25import { isDarkThemePreferred } from 'storybook-root-provider';26const isDarkTheme = isDarkThemePreferred();27console.log(isDarkTheme);28import { isDarkThemePreferred } from 'storybook-root-provider';29const isDarkTheme = isDarkThemePreferred();30console.log(isDarkTheme);31import { isDark
Using AI Code Generation
1import { useDarkThemePreferred } from 'storybook-root-provider';2import { useTheme } from '@material-ui/core/styles';3import { useEffect } from 'react';4export const MyComponent = () => {5 const darkThemePreferred = useDarkThemePreferred();6 const theme = useTheme();7 useEffect(() => {8 console.log('darkThemePreferred', darkThemePreferred);9 console.log('theme', theme);10 }, [darkThemePreferred, theme]);11 return <div>MyComponent</div>;12};13import { addParameters } from '@storybook/react';14import { darkTheme, lightTheme } from './theme';15import { withRootProvider } from 'storybook-root-provider';16addParameters({17 rootProvider: {18 theme: {19 },20 },21});22export const decorators = [withRootProvider];23export const parameters = {24 actions: { argTypesRegex: "^on[A-Z].*" },25}26import { createMuiTheme } from '@material-ui/core/styles';27export const lightTheme = createMuiTheme({28 palette: {29 primary: {30 },31 },32});33export const darkTheme = createMuiTheme({34 palette: {35 primary: {36 },37 },38});39module.exports = {40 '../src/**/*.stories.@(js|jsx|ts|tsx)',41 core: {42 },43};44const path = require('path');45const { rootDirectory } = require('storybook-root-provider');46module.exports = async ({ config }) => {47 config.resolve.alias = {48 };49 config.resolve.modules = [path.resolve(rootDirectory, 'node_modules'), 'node_modules'];50 return config;51};52import { addParameters } from '@storybook/react';53import { darkTheme, lightTheme } from './theme';54import
Using AI Code Generation
1import { isDarkThemePreferred } from '@storybook/components';2export const isDarkTheme = isDarkThemePreferred();3import { isDarkTheme } from './test';4export const parameters = {5 darkMode: {6 onChange: () => {},7 },8};9 (Story) => {10 const { current } = useDarkMode();11 return <Story />;12 },13];14addParameters({15 docs: {16 },17});18const customTheme = create({19});20export const globalTypes = {21 theme: {22 toolbar: {23 },24 },25};26 (Story, context) => {27 const { theme } = context.globals;28 const customTheme = create({29 });30 return (31 <ThemeProvider theme={customTheme}>32 );33 },34];35addParameters({36 docs: {37 },38});39export const globalTypes = {40 theme: {
Using AI Code Generation
1import { useDarkThemePreferred } from 'storybook-root-provider';2const App = () => {3 const isDarkTheme = useDarkThemePreferred();4 return (5 {isDarkTheme ? <p>dark theme</p> : <p>light theme</p>}6 );7};8export default App;9import React, { useState, useEffect, useContext } from 'react';10import { ThemeProvider } from 'styled-components';11import { ThemeContext } from 'storybook-root-provider';12const App = () => {13 const [isDarkTheme, setIsDarkTheme] = useState(false);14 const { isDarkThemePreferred } = useContext(ThemeContext);15 useEffect(() => {16 setIsDarkTheme(isDarkThemePreferred);17 }, [isDarkThemePreferred]);18 return (19 <ThemeProvider theme={{ isDarkTheme }}>20 );21};22export default App;23import { addParameters } from '@storybook/react';24import { withThemesProvider } from 'storybook-addon-styled-component-theme';25import { ThemeProvider } from 'styled-components';26import { ThemeContext } from 'storybook-root-provider';27import { lightTheme, darkTheme } from '../src/themes';28import { GlobalStyle } from '../src/globalStyles';29addParameters({30 { name: 'Light', color: '#fff', default: true },31 { name: 'Dark', color: '#000' },32});33const withThemeProvider = (Story, context) => {34 const theme = context.globals.theme === 'Light' ? lightTheme : darkTheme;35 return (36 <ThemeProvider theme={theme}>37 <Story {...context} />38 );39};40export const decorators = [withThemesProvider, withThemeProvider];41import { addons } from '@storybook/addons';42import { themes } from '@storybook/theming';43import { create } from '@storybook/theming/create';44import { useDarkThemePreferred } from 'storybook-root-provider';45const isDarkTheme = useDarkThemePreferred();46const theme = create({
Using AI Code Generation
1import { isDarkThemePreferred } from '@storybook/ui/dist/components/sidebar/StorybookRootProvider';2const isDark = isDarkThemePreferred();3import { isDarkThemePreferred } from '@storybook/ui/dist/components/sidebar/StorybookRootProvider';4const isDark = isDarkThemePreferred();5import { isDarkThemePreferred } from '@storybook/ui/dist/components/sidebar/StorybookRootProvider';6const isDark = isDarkThemePreferred();
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!