feat: 가스켓 카테고리 개선 및 엑셀 내보내기 최적화
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 가스켓 카테고리 정렬 오류 수정 (FilterableHeader props 추가) - 가스켓 엑셀 내보내기 개선: * 품목명을 BOM 페이지 타입과 동일하게 표시 (SPIRAL WOUND GASKET 등) * 재질을 재질1/재질2로 분리 (SS304/GRAPHITE → 재질1: SS304/GRAPHITE, 재질2: /SS304/SS304) * originalDescription에서 4개 재질 패턴 우선 추출 * P열 납기일 규칙 준수 - 프로젝트 비활성화 기능 수정 (localStorage 영구 저장) - 모든 카테고리 정렬 함수 안전성 강화
This commit is contained in:
@@ -34,7 +34,25 @@ function App() {
|
||||
const [newProjectName, setNewProjectName] = useState('');
|
||||
const [newClientName, setNewClientName] = useState('');
|
||||
const [pendingSignupCount, setPendingSignupCount] = useState(0);
|
||||
const [inactiveProjects, setInactiveProjects] = useState(new Set());
|
||||
const [inactiveProjects, setInactiveProjects] = useState(() => {
|
||||
// localStorage에서 비활성화된 프로젝트 목록 로드
|
||||
try {
|
||||
const saved = localStorage.getItem('inactiveProjects');
|
||||
return saved ? new Set(JSON.parse(saved)) : new Set();
|
||||
} catch (error) {
|
||||
console.error('비활성화 프로젝트 목록 로드 실패:', error);
|
||||
return new Set();
|
||||
}
|
||||
});
|
||||
|
||||
// 비활성화 프로젝트 목록이 변경될 때마다 localStorage에 저장
|
||||
useEffect(() => {
|
||||
try {
|
||||
localStorage.setItem('inactiveProjects', JSON.stringify(Array.from(inactiveProjects)));
|
||||
} catch (error) {
|
||||
console.error('비활성화 프로젝트 목록 저장 실패:', error);
|
||||
}
|
||||
}, [inactiveProjects]);
|
||||
|
||||
// 승인 대기 중인 회원가입 수 조회
|
||||
const loadPendingSignups = async () => {
|
||||
|
||||
Reference in New Issue
Block a user