Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-helsinki-headless-cms",
"version": "2.0.0",
"version": "2.0.1",
"description": "React components for displaying Headless CMS content according to guidelines set by HDS",
"main": "cjs/index.js",
"module": "index.js",
Expand Down
13 changes: 11 additions & 2 deletions src/common/utils/makeLocaleStorageValue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ type Options<T> = {
deserializer?: (value: string) => T;
};

// Utility function to check if we are in a browser environment
const isBrowser = () => typeof window !== 'undefined';

export default function makeLocaleStorageValue<T>(
key: string,
options?: Partial<Options<T>>,
Expand All @@ -16,13 +19,16 @@ export default function makeLocaleStorageValue<T>(

return function useLocaleStorageValue(): [T | null, (value?: T) => void] {
const readValueInLocalStorage = () => {
if (!isBrowser()) {
return null;
}
try {
const storedValue = localStorage.getItem(key);
return storedValue ? deserialize(storedValue) : null;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (_) {
// eslint-disable-next-line no-console
console.error('Failed to parse value in localStorage');
console.error('Failed to parse value in localStorage', { key });
}

return null;
Expand All @@ -33,6 +39,9 @@ export default function makeLocaleStorageValue<T>(
);

const storeValue = useCallback((value?: T) => {
if (!isBrowser()) {
return;
}
try {
if (value) {
setStateValue(value);
Expand All @@ -44,7 +53,7 @@ export default function makeLocaleStorageValue<T>(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (_) {
// eslint-disable-next-line no-console
console.error('Failed to save value into localStorage');
console.error('Failed to save value into localStorage', { key });
}
}, []);

Expand Down