
Research
Security News
Lazarus Strikes npm Again with New Wave of Malicious Packages
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
@alexgorbatchev/storybook-addon-localstorage
Advanced tools
A Storybook v8 addong for mocking and displaying `localStorage` values
A Storybook v8 addon and decorator for mocking and displaying current values of the window.localStorage
in a Storybook panel
If you want to setup parameters
to be strongly typed, see @alexgorbatchev/storybook-parameters.
npm i --save-dev @alexgorbatchev/storybook-addon-localstorage
Register the addon in .storybook/main.js
export default {
stories: ['../stories/**/*.stories.tsx'],
addons: ['@alexgorbatchev/storybook-addon-localstorage'],
};
parameters.localStorage
is set, localStorage.clear()
will be called before
populating the values.parameters.localStorage
must be strings because localStorage
only works with strings. You can use JSON.stringify
or there's a helper function provided by the addon
called localStorageForStorybook
.localStorage
every 100ms.Given a simple component:
export const Header = () => {
const [user, setUser, { removeItem }] = useLocalStorage<{ name: string }>('user');
return (
<div>
{user ? (
<div>
<div>{`Logged in as ${user.name}`}</div>
<Button size="small" label="Log out" onClick={() => removeItem()} />
</div>
) : (
<div>
<div>No one is signed in</div>
<Button size="small" label="Log in" onClick={() => setUser({ name: 'John' })} />
</div>
)}
</div>
);
};
You can write a story as
import { localStorageForStorybook } from '@alexgorbatchev/storybook-addon-localstorage';
import { Meta, StoryObj } from '@storybook/react';
import { Header } from './Header';
const meta: Meta<typeof Header> = {
title: 'Example/Header',
component: Header,
};
export default meta;
type Story = StoryObj<typeof Header>;
export const JohnLoggedIn: Story = {
parameters: {
// this helper automatically stringifies the values using `JSON.stringify`
localStorage: localStorageForStorybook({
value: 123,
user: { name: 'John' },
}),
},
};
export const JaneLoggedIn: Story = {
parameters: {
// if you have own serialzer, you can use it as well
localStorage: {
value: '123',
user: JSON.stringify({ name: 'Jane' }),
},
},
};
Strongly typed example:
import { Meta, StoryObj } from '@alexgorbatchev/storybook-parameters';
import { LocalStorageParameters } from '@alexgorbatchev/storybook-addon-localstorage';
interface StoryParameters extends LocalStorageParameters {}
const meta: Meta<typeof Header, StoryParameters> = {
title: 'Header',
component: Header,
};
export default meta;
type Story = StoryObj<typeof Header, StoryParameters>;
export const JohnLoggedIn: Story = {
parameters: {
// `localStorage` will show up in `Parameters`
localStorage: {
key: 'value',
},
},
};
npm run storybook
starts Storybooktsup
build ./dist
FAQs
A Storybook v8 addong for mocking and displaying `localStorage` values
We found that @alexgorbatchev/storybook-addon-localstorage demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.
Security News
Opengrep continues building momentum with the alpha release of its Playground tool, demonstrating the project's rapid evolution just two months after its initial launch.