diff --git a/src/renderer/components/maps-mangement-components/local-maps-list-panel.component.tsx b/src/renderer/components/maps-mangement-components/local-maps-list-panel.component.tsx index 0d113bee..8e3b2fc9 100644 --- a/src/renderer/components/maps-mangement-components/local-maps-list-panel.component.tsx +++ b/src/renderer/components/maps-mangement-components/local-maps-list-panel.component.tsx @@ -42,7 +42,7 @@ export const LocalMapsListPanel = forwardRef(({version, className, filter, searc const [selectedMaps$] = useState(new BehaviorSubject([])); const [itemPerRow, setItemPerRow] = useState(2); const [listHeight, setListHeight] = useState(0); - const isActiveOnce = useChangeOnce(isActive); + const isActiveOnce = useChangeOnce(isActive, true); const [loadPercent$] = useState(new BehaviorSubject(0)); diff --git a/src/renderer/hooks/use-change-once.hook.ts b/src/renderer/hooks/use-change-once.hook.ts index 09e64190..fee5c8bc 100644 --- a/src/renderer/hooks/use-change-once.hook.ts +++ b/src/renderer/hooks/use-change-once.hook.ts @@ -1,9 +1,9 @@ import equal from "fast-deep-equal"; import { useEffect, useRef, useState } from "react"; -export function useChangeOnce(initialValue: T): T { +export function useChangeOnce(initialValue: T, onlyFirstIfTruthy?: boolean): T { const [trackedValue, setTrackedValue] = useState(initialValue); - const didChangeOnceRef = useRef(false); + const didChangeOnceRef = useRef(onlyFirstIfTruthy ? !!initialValue : false); useEffect(() => { if(didChangeOnceRef.current || equal(initialValue, trackedValue)){ return; }