Files
ITAM/src/state.ts

52 lines
1.4 KiB
TypeScript

import { MasterAssetData } from './excelHandler';
import { generateDummyData } from './dummyDataGenerator';
import { realServerData } from './realServerData';
// --- State Definitions ---
export interface AppState {
masterData: MasterAssetData;
activeCategory: 'hw' | 'sw';
activeSubTab: string;
activeCharts: any[];
}
const dummy = generateDummyData();
// 서버 데이터만 실제 데이터로 교체
const mergedHw = [
...dummy.hw.filter(a => a.type !== '서버'),
...realServerData.map(s => ({
...s,
type: '서버',
관리자: s.담당자_정 || '홍길동',
담당자_정: s.담당자_정 || '홍길동',
담당자_부: s.담당자_부 || '김철수',
MACaddress: s.MACaddress || '',
HW사양: s.HW사양 || '',
구매일: s.구매일 || '',
금액: s.금액 || '',
납품업체: s.납품업체 || '',
품의서명: s.품의서명 || '',
원격접속: s.원격접속 || '',
서버ID: s.서버ID || '',
서버PW: s.서버PW || '',
비고: s.비고 || ''
}))
];
// --- Initial State ---
export const state: AppState = {
masterData: {
...dummy,
hw: mergedHw,
logs: [] // 공동작업자의 수정 이력 배열 추가
},
activeCategory: 'hw',
activeSubTab: '대시보드',
activeCharts: []
};
// --- State Helpers ---
export function updateState(newState: Partial<AppState>) {
Object.assign(state, newState);
}