feat(ui/lineage): Make show ghost entities toggle local storage sticky (#13424)

This commit is contained in:
Andrew Sikowitz 2025-05-05 14:40:00 -07:00 committed by GitHub
parent d8739c4e3e
commit 2aa11a6bf6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 30 additions and 3 deletions

View File

@ -13,9 +13,10 @@ import {
NodeContext,
useIgnoreSchemaFieldStatus,
} from '@app/lineageV2/common';
import useShouldHideTransformations from '@app/lineageV2/settings/useShouldHideTransformations';
import useShouldShowDataProcessInstances from '@app/lineageV2/settings/useShouldShowDataProcessInstances';
import useShouldShowGhostEntities from '@app/lineageV2/settings/useShouldShowGhostEntities';
import useSearchAcrossLineage from '@app/lineageV2/useSearchAcrossLineage';
import useShouldHideTransformations from '@app/lineageV2/useShouldHideTransformations';
import useShouldShowDataProcessInstances from '@app/lineageV2/useShouldShowDataProcessInstances';
import TabFullsizedContext from '@app/shared/TabFullsizedContext';
import { EntityType, LineageDirection } from '@types';
@ -41,7 +42,7 @@ export default function LineageExplorer(props: Props) {
const [hideTransformations, setHideTransformations] = useShouldHideTransformations();
const [showDataProcessInstances, setShowDataProcessInstances] = useShouldShowDataProcessInstances();
const [showGhostEntities, setShowGhostEntities] = useState(false);
const [showGhostEntities, setShowGhostEntities] = useShouldShowGhostEntities();
const context: NodeContext = {
rootUrn: urn,

View File

@ -0,0 +1,26 @@
import { useCallback, useState } from 'react';
export default function useShouldShowGhostEntities(): [boolean, (value: boolean) => void] {
const defaultValue = inLocalStorage() ? loadFromLocalStorage() : false;
const [showGhostEntities, setShowGhostEntities] = useState(defaultValue);
const setter = useCallback((value: boolean) => {
setShowGhostEntities(value);
saveToLocalStorage(value);
}, []);
return [showGhostEntities, setter];
}
const SHOW_GHOST_ENTITIES_KEY = 'lineageV2__showGhostEntities';
function inLocalStorage(): boolean {
return localStorage.getItem(SHOW_GHOST_ENTITIES_KEY) !== null;
}
function loadFromLocalStorage(): boolean {
return localStorage.getItem(SHOW_GHOST_ENTITIES_KEY) === 'true';
}
function saveToLocalStorage(showGhostEntities: boolean) {
localStorage.setItem(SHOW_GHOST_ENTITIES_KEY, String(showGhostEntities));
}