Merge branch 'feature/v2-renewal' of http://39.117.244.52:3000/kjs/ERP-node into feature/v2-unified-renewal
This commit is contained in:
@@ -66,6 +66,33 @@ export function TabsWidget({
|
||||
const [visibleTabs, setVisibleTabs] = useState<ExtendedTabItem[]>(tabs as ExtendedTabItem[]);
|
||||
const [mountedTabs, setMountedTabs] = useState<Set<string>>(() => new Set([getInitialTab()]));
|
||||
|
||||
// 🆕 화면 진입 시 첫 번째 탭 자동 선택 및 마운트
|
||||
useEffect(() => {
|
||||
// 현재 선택된 탭이 유효하지 않거나 비어있으면 첫 번째 탭 선택
|
||||
const validTabs = (tabs as ExtendedTabItem[]).filter((tab) => !tab.disabled);
|
||||
const firstValidTabId = validTabs[0]?.id;
|
||||
|
||||
if (firstValidTabId) {
|
||||
// 선택된 탭이 없거나 유효하지 않으면 첫 번째 탭으로 설정
|
||||
setSelectedTab((currentSelected) => {
|
||||
if (!currentSelected || !validTabs.some((t) => t.id === currentSelected)) {
|
||||
return firstValidTabId;
|
||||
}
|
||||
return currentSelected;
|
||||
});
|
||||
|
||||
// 첫 번째 탭이 mountedTabs에 없으면 추가
|
||||
setMountedTabs((prev) => {
|
||||
const newSet = new Set(prev);
|
||||
// 첫 번째 탭 추가
|
||||
if (firstValidTabId && !newSet.has(firstValidTabId)) {
|
||||
newSet.add(firstValidTabId);
|
||||
}
|
||||
return newSet;
|
||||
});
|
||||
}
|
||||
}, [tabs]); // tabs가 변경될 때마다 실행
|
||||
|
||||
// screenId 기반 화면 로드 상태
|
||||
const [screenLayouts, setScreenLayouts] = useState<Record<string, ComponentData[]>>({});
|
||||
const [screenLoadingStates, setScreenLoadingStates] = useState<Record<string, boolean>>({});
|
||||
|
||||
Reference in New Issue
Block a user