Skip to content

Commit

Permalink
use lzip to compress data
Browse files Browse the repository at this point in the history
  • Loading branch information
ksadov committed Jul 18, 2024
1 parent f70c4a9 commit fcc39c2
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 2 deletions.
1 change: 1 addition & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"diff-match-patch": "^1.0.5",
"gh-pages": "^6.1.1",
"lucide-react": "^0.400.0",
"lz-string": "^1.5.0",
"next-themes": "^0.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
Expand Down
7 changes: 5 additions & 2 deletions src/utils/ui/lstore.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { useState, useEffect } from "react";
import { compressToUTF16, decompressFromUTF16 } from "lz-string";
import { AppState } from "utils/ui/types";

// modified from https://github.com/paradigmxyz/flux/blob/main/src/utils/lstore.ts
Expand All @@ -10,11 +11,13 @@ export function clearLocalStorage() {

export function readLocalStorage<T>(key: string): T | null {
const storedValue = localStorage.getItem(key);
return storedValue ? JSON.parse(storedValue) : null;
const decompressed = storedValue ? decompressFromUTF16(storedValue) : null;
return decompressed ? JSON.parse(decompressed) : null;
}

export function writeLocalStorage(key: string, value: any) {
localStorage.setItem(key, JSON.stringify(value));
const compressed = compressToUTF16(JSON.stringify(value));
localStorage.setItem(key, compressed);
}

export function useLocalStorage<T>(
Expand Down

0 comments on commit fcc39c2

Please sign in to comment.