fix(WEB): 토큰 만료 시 무한 로딩 대신 로그인 리다이렉트 처리
- 52개 이상의 컴포넌트에 isNextRedirectError 처리 추가 - Server Action의 redirect() 에러가 catch 블록에서 삼켜지는 문제 해결 - access_token + refresh_token 모두 만료 시 정상적으로 로그인 페이지로 리다이렉트 수정된 영역: - accounting: 10개 컴포넌트 - production: 12개 컴포넌트 - hr: 5개 컴포넌트 - settings: 8개 컴포넌트 - approval: 5개 컴포넌트 - items: 20개+ 컴포넌트 - board: 5개 컴포넌트 - quality: 4개 컴포넌트 - material, outbound, quotes 등 기타 컴포넌트 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -425,6 +425,29 @@ function ItemMasterDataManagementContent() {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const setNewPageItemTypeWrapper: React.Dispatch<React.SetStateAction<'FG' | 'PT' | 'SM' | 'RM' | 'CS'>> = setNewPageItemType as any;
|
||||
|
||||
// SectionTemplateDialog 카테고리 래퍼 (string | string[] → string[])
|
||||
const handleSetNewSectionTemplateCategory = (category: string | string[]) => {
|
||||
if (Array.isArray(category)) {
|
||||
setNewSectionTemplateCategory(category);
|
||||
} else {
|
||||
setNewSectionTemplateCategory(category ? [category] : []);
|
||||
}
|
||||
};
|
||||
|
||||
// LoadTemplateDialog 선택 ID 래퍼 (string | number | null → string | null)
|
||||
const handleSetSelectedTemplateId = (id: string | number | null) => {
|
||||
if (id === null) {
|
||||
setSelectedTemplateId(null);
|
||||
} else {
|
||||
setSelectedTemplateId(String(id));
|
||||
}
|
||||
};
|
||||
|
||||
// TemplateFieldDialog 선택 ID 래퍼 (string | number | null → string)
|
||||
const handleSetTemplateFieldSelectedMasterFieldId = (id: string | number | null) => {
|
||||
setTemplateFieldSelectedMasterFieldId(id === null ? '' : String(id));
|
||||
};
|
||||
|
||||
// 초기 로딩 중 UI
|
||||
if (isInitialLoading) {
|
||||
return (
|
||||
@@ -782,7 +805,7 @@ function ItemMasterDataManagementContent() {
|
||||
newFieldDescription={newFieldDescription}
|
||||
setNewFieldDescription={setNewFieldDescription}
|
||||
newFieldOptions={newFieldOptions}
|
||||
setNewFieldOptions={setNewFieldOptions}
|
||||
setNewFieldOptions={setNewFieldOptions as (options: string | string[]) => void}
|
||||
selectedSectionForField={selectedPage?.sections.find(s => s.id === selectedSectionForField) || null}
|
||||
selectedPage={selectedPage || null}
|
||||
itemMasterFields={itemMasterFields}
|
||||
@@ -830,7 +853,7 @@ function ItemMasterDataManagementContent() {
|
||||
newFieldDescription={newFieldDescription}
|
||||
setNewFieldDescription={setNewFieldDescription}
|
||||
newFieldOptions={newFieldOptions}
|
||||
setNewFieldOptions={setNewFieldOptions}
|
||||
setNewFieldOptions={setNewFieldOptions as (options: string | string[]) => void}
|
||||
selectedSectionForField={selectedPage?.sections.find(s => s.id === selectedSectionForField) || null}
|
||||
selectedPage={selectedPage || null}
|
||||
itemMasterFields={itemMasterFields}
|
||||
@@ -899,7 +922,7 @@ function ItemMasterDataManagementContent() {
|
||||
newSectionTemplateDescription={newSectionTemplateDescription}
|
||||
setNewSectionTemplateDescription={setNewSectionTemplateDescription}
|
||||
newSectionTemplateCategory={newSectionTemplateCategory}
|
||||
setNewSectionTemplateCategory={setNewSectionTemplateCategory}
|
||||
setNewSectionTemplateCategory={handleSetNewSectionTemplateCategory}
|
||||
newSectionTemplateType={newSectionTemplateType}
|
||||
setNewSectionTemplateType={setNewSectionTemplateType}
|
||||
handleUpdateSectionTemplate={handleUpdateSectionTemplate}
|
||||
@@ -938,7 +961,7 @@ function ItemMasterDataManagementContent() {
|
||||
showMasterFieldList={templateFieldShowMasterFieldList}
|
||||
setShowMasterFieldList={setTemplateFieldShowMasterFieldList}
|
||||
selectedMasterFieldId={templateFieldSelectedMasterFieldId}
|
||||
setSelectedMasterFieldId={setTemplateFieldSelectedMasterFieldId}
|
||||
setSelectedMasterFieldId={handleSetTemplateFieldSelectedMasterFieldId}
|
||||
/>
|
||||
|
||||
<LoadTemplateDialog
|
||||
@@ -946,7 +969,7 @@ function ItemMasterDataManagementContent() {
|
||||
setIsLoadTemplateDialogOpen={setIsLoadTemplateDialogOpen}
|
||||
sectionTemplates={sectionTemplates}
|
||||
selectedTemplateId={selectedTemplateId}
|
||||
setSelectedTemplateId={setSelectedTemplateId}
|
||||
setSelectedTemplateId={handleSetSelectedTemplateId}
|
||||
handleLoadTemplate={handleLoadTemplateWrapper}
|
||||
/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user