|
@@ -1,5 +1,5 @@
|
|
|
import {
|
|
import {
|
|
|
- useState, useCallback, useEffect, useMemo,
|
|
|
|
|
|
|
+ useState, useCallback, useEffect, useMemo, useRef,
|
|
|
} from 'react';
|
|
} from 'react';
|
|
|
|
|
|
|
|
import type { SelectablePage } from '../../interfaces/selectable-page';
|
|
import type { SelectablePage } from '../../interfaces/selectable-page';
|
|
@@ -8,6 +8,7 @@ import { useAiAssistantManagementModal } from '../stores/ai-assistant';
|
|
|
|
|
|
|
|
type UseSelectedPages = {
|
|
type UseSelectedPages = {
|
|
|
selectedPages: Map<string, SelectablePage>,
|
|
selectedPages: Map<string, SelectablePage>,
|
|
|
|
|
+ selectedPagesRef: React.RefObject<Map<string, SelectablePage>>,
|
|
|
selectedPagesArray: SelectablePage[],
|
|
selectedPagesArray: SelectablePage[],
|
|
|
addPage: (page: SelectablePage) => void,
|
|
addPage: (page: SelectablePage) => void,
|
|
|
removePage: (page: SelectablePage) => void,
|
|
removePage: (page: SelectablePage) => void,
|
|
@@ -17,10 +18,16 @@ export const useSelectedPages = (initialPages?: SelectablePage[]): UseSelectedPa
|
|
|
const [selectedPages, setSelectedPages] = useState<Map<string, SelectablePage>>(new Map());
|
|
const [selectedPages, setSelectedPages] = useState<Map<string, SelectablePage>>(new Map());
|
|
|
const { data: aiAssistantManagementModalData } = useAiAssistantManagementModal();
|
|
const { data: aiAssistantManagementModalData } = useAiAssistantManagementModal();
|
|
|
|
|
|
|
|
|
|
+ const selectedPagesRef = useRef(selectedPages);
|
|
|
|
|
+
|
|
|
const selectedPagesArray = useMemo(() => {
|
|
const selectedPagesArray = useMemo(() => {
|
|
|
return Array.from(selectedPages.values());
|
|
return Array.from(selectedPages.values());
|
|
|
}, [selectedPages]);
|
|
}, [selectedPages]);
|
|
|
|
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
|
|
+ selectedPagesRef.current = selectedPages;
|
|
|
|
|
+ }, [selectedPages]);
|
|
|
|
|
+
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
// Initialize each time PageMode is changed
|
|
// Initialize each time PageMode is changed
|
|
|
if (initialPages != null && aiAssistantManagementModalData?.pageMode != null) {
|
|
if (initialPages != null && aiAssistantManagementModalData?.pageMode != null) {
|
|
@@ -57,6 +64,7 @@ export const useSelectedPages = (initialPages?: SelectablePage[]): UseSelectedPa
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
selectedPages,
|
|
selectedPages,
|
|
|
|
|
+ selectedPagesRef,
|
|
|
selectedPagesArray,
|
|
selectedPagesArray,
|
|
|
addPage,
|
|
addPage,
|
|
|
removePage,
|
|
removePage,
|