Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH 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
The npm package @alexgorbatchev/storybook-addon-localstorage receives a total of 2,128 weekly downloads. As such, @alexgorbatchev/storybook-addon-localstorage popularity was classified as popular.
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
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.