|
|
@@ -1,4 +1,4 @@
|
|
|
-import { useCallback, useMemo, useRef, useState } from 'react';
|
|
|
+import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
|
import { buildPairMap, getPairId, groupPerms, matchesPerm, sortPerms } from '../lib/permUtils';
|
|
|
|
|
|
interface UsePermTreeOptions {
|
|
|
@@ -13,6 +13,11 @@ export const usePermTree = ({ allPerms, initialCheckedIds = [], onChange }: UseP
|
|
|
const onChangeRef = useRef(onChange);
|
|
|
onChangeRef.current = onChange;
|
|
|
|
|
|
+ const checkedKey = initialCheckedIds.join(',');
|
|
|
+ useEffect(() => {
|
|
|
+ setCheckedIds(new Set(initialCheckedIds));
|
|
|
+ }, [checkedKey]);
|
|
|
+
|
|
|
const sorted = useMemo(() => sortPerms(allPerms), [allPerms]);
|
|
|
const grouped = useMemo(() => groupPerms(sorted), [sorted]);
|
|
|
const pairMap = useMemo(() => buildPairMap(allPerms), [allPerms]);
|