타입별 상세설정 추가
This commit is contained in:
@@ -32,6 +32,32 @@ export const usePanelState = (panels: PanelConfig[]) => {
|
||||
return initialStates;
|
||||
});
|
||||
|
||||
// 패널 설정이 변경되었을 때 크기 업데이트
|
||||
useEffect(() => {
|
||||
setPanelStates((prev) => {
|
||||
const newStates = { ...prev };
|
||||
|
||||
panels.forEach((panel) => {
|
||||
if (newStates[panel.id]) {
|
||||
// 기존 패널의 위치는 유지하고 크기만 업데이트
|
||||
newStates[panel.id] = {
|
||||
...newStates[panel.id],
|
||||
size: { width: panel.defaultWidth, height: panel.defaultHeight },
|
||||
};
|
||||
} else {
|
||||
// 새로운 패널이면 전체 초기화
|
||||
newStates[panel.id] = {
|
||||
isOpen: false,
|
||||
position: { x: 0, y: 0 },
|
||||
size: { width: panel.defaultWidth, height: panel.defaultHeight },
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
return newStates;
|
||||
});
|
||||
}, [panels]);
|
||||
|
||||
// 패널 토글
|
||||
const togglePanel = useCallback((panelId: string) => {
|
||||
setPanelStates((prev) => ({
|
||||
@@ -45,6 +71,10 @@ export const usePanelState = (panels: PanelConfig[]) => {
|
||||
|
||||
// 패널 열기
|
||||
const openPanel = useCallback((panelId: string) => {
|
||||
console.log("📂 패널 열기:", {
|
||||
panelId,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
setPanelStates((prev) => ({
|
||||
...prev,
|
||||
[panelId]: {
|
||||
@@ -56,6 +86,10 @@ export const usePanelState = (panels: PanelConfig[]) => {
|
||||
|
||||
// 패널 닫기
|
||||
const closePanel = useCallback((panelId: string) => {
|
||||
console.log("📁 패널 닫기:", {
|
||||
panelId,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
setPanelStates((prev) => ({
|
||||
...prev,
|
||||
[panelId]: {
|
||||
@@ -112,7 +146,7 @@ export const usePanelState = (panels: PanelConfig[]) => {
|
||||
|
||||
// 단축키 처리
|
||||
panels.forEach((panel) => {
|
||||
if (panel.shortcutKey && e.key.toLowerCase() === panel.shortcutKey.toLowerCase()) {
|
||||
if (panel.shortcutKey && e.key?.toLowerCase() === panel.shortcutKey?.toLowerCase()) {
|
||||
// Ctrl/Cmd 키와 함께 사용
|
||||
if (e.ctrlKey || e.metaKey) {
|
||||
e.preventDefault();
|
||||
@@ -136,4 +170,3 @@ export const usePanelState = (panels: PanelConfig[]) => {
|
||||
updatePanelSize,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user