useSessionStorage

Sync state to session storage.

https://www.shaktools.com/shak-hooks
State

API Reference

Installation

terminal
pnpm add @shak-hooks/usehooks
import.ts
import { useSessionStorage } from "@shak-hooks/usehooks";
Source: packages/react/src/useSessionStorage.ts

Signature

signature.ts
export function useSessionStorage<T>(key: string, initialValue: T, options: StorageOptions<T> = {})

Parameters

NameTypeOptionalDefault
keystringNo-
initialValueTNo-
optionsStorageOptions<T>Yes{}

Returns

unknown

Implementation

use-session-storage.ts
1import { useState, useEffect } from "react";
2
3export function useSessionStorage<T>(key: string, initialValue: T) {
4 const [storedValue, setStoredValue] = useState<T>(() => {
5 try {
6 const item = window.sessionStorage.getItem(key);
7 return item ? JSON.parse(item) : initialValue;
8 } catch (error) {
9 console.log(error);
10 return initialValue;
11 }
12 });
13
14 const setValue = (value: T | ((val: T) => T)) => {
15 try {
16 const valueToStore = value instanceof Function ? value(storedValue) : value;
17 setStoredValue(valueToStore);
18 window.sessionStorage.setItem(key, JSON.stringify(valueToStore));
19 } catch (error) {
20 console.log(error);
21 }
22 };
23
24 return [storedValue, setValue] as const;
25}

Advertisement

Google Ads

Usage

example.tsx
1import { useSessionStorage } from "@shak-hooks/usehooks";
2
3const result = useSessionStorage("...", undefined, undefined);
4// result: unknown
5// Use values directly (React state).

Let‘s do great work together

Empowering creators with free, high-performance AI, SEO, and developer tools. Join thousands of users optimizing their workflow with Shak-Tools.

Tools10+ Free
UsersGlobal

Stay in the loop

Join our newsletter for the latest AI tools and updates.

ShakTools
© 2025 Shaktools. All Rights Reserved.Privacy Policy