Skip to content

Commit

Permalink
[APM] Fix for default fields in correlations view (elastic#91868) (el…
Browse files Browse the repository at this point in the history
…astic#92090)

* [APM] Fix for default fields in correlations view (elastic#91868)

* removes useCallback hook

Co-authored-by: Kibana Machine <[email protected]>
  • Loading branch information
ogupte and kibanamachine committed Feb 26, 2021
1 parent c5bb5c0 commit 3393a08
Showing 1 changed file with 22 additions and 20 deletions.
42 changes: 22 additions & 20 deletions x-pack/plugins/apm/public/hooks/useLocalStorage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,10 @@
import { useState, useEffect } from 'react';

export function useLocalStorage<T>(key: string, defaultValue: T) {
const [item, setItem] = useState<T>(getFromStorage());

function getFromStorage() {
const storedItem = window.localStorage.getItem(key);

let toStore: T = defaultValue;

if (storedItem !== null) {
try {
toStore = JSON.parse(storedItem) as T;
} catch (err) {
window.localStorage.removeItem(key);
// eslint-disable-next-line no-console
console.log(`Unable to decode: ${key}`);
}
}

return toStore;
}
const [item, setItem] = useState<T>(getFromStorage(key, defaultValue));

const updateFromStorage = () => {
const storedItem = getFromStorage();
const storedItem = getFromStorage(key, defaultValue);
setItem(storedItem);
};

Expand All @@ -51,5 +33,25 @@ export function useLocalStorage<T>(key: string, defaultValue: T) {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);

// item state must be updated with a new key or default value
useEffect(() => {
setItem(getFromStorage(key, defaultValue));
}, [key, defaultValue]);

return [item, saveToStorage] as const;
}

function getFromStorage<T>(keyName: string, defaultValue: T) {
const storedItem = window.localStorage.getItem(keyName);

if (storedItem !== null) {
try {
return JSON.parse(storedItem) as T;
} catch (err) {
window.localStorage.removeItem(keyName);
// eslint-disable-next-line no-console
console.log(`Unable to decode: ${keyName}`);
}
}
return defaultValue;
}

0 comments on commit 3393a08

Please sign in to comment.