# useSessionStorage
A hook that enables effortless storage and retrieval of values in the
browser's [Session Storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage).
### 💡 Why?
- A fast and efficient method to implement the `sessionStorage` functionality in your React components
### Basic Usage:
```jsx harmony
import React, { useCallback } from 'react';
import { Pill, Paragraph, Icon } from 'antd';
import useSessionStorage from 'beautiful-react-hooks/useSessionStorage';
const NotificationBadgeExample = ({ notifications }) => {
const [notificationCount, setNotificationCount] = useSessionStorage('demo-notification-count', notifications);
const clearNotifications = useCallback(() => {
setNotificationCount(0);
}, [notificationCount]);
const Actions = [
]
return (
Click on the following button to clear data from the demo-notification-count session storage key.
)
};
```
### Interface
```typescript
type SetValue = (value: TValue | ((previousValue: TValue) => TValue)) => void
declare const useSessionStorage: (storageKey: string, defaultValue?: any) => [TValue, SetValue]
```
### Mastering the hooks
#### ✅ When to use
- When you need to get/set values from and to the `sessionStorage`
#### 🛑 When not to use
- Do not use this hook as a state manager, the `sessionStorage` is meant to be used for small pieces of data
### Types
```typescript static
/**
* Save a value on session storage
*/
declare const useSessionStorage: (storageKey: string, defaultValue?: any) => [TValue | null, (value: TValue | ((previousValue: TValue) => TValue)) => void];
export default useSessionStorage;
```