/* ============================================================================= * B01_Dashboard_UI_Legacy.ts * 옛 한 페이지 대시보드에서 남은 조각 — 옛 구역은 세부 페이지(549-1 · 549-2)가 다 갈아 끼움. * 남은 것 = 고른 회사 자리(Shell · M02) · 옛 상태 타입(Page 가 내보냄). * ========================================================================== */ import type { AuditLog, CompanyInfo, DashboardUser, JoinRequest, ProjectItem, ResourceData, } from "./B01_Dashboard_Api_Fetch"; export interface DashboardState { user: DashboardUser; userProjects: ProjectItem[]; companyProjects: ProjectItem[]; allProjects: ProjectItem[]; allCompanies: CompanyInfo[]; allUsers: DashboardUser[]; allJoinRequests: JoinRequest[]; auditLogs: AuditLog[]; resources: ResourceData | null; /** 시스템 관리자가 고른 회사(29-1) — 프로젝트 · 사용자 · 가입 요청 · 회사 관리가 이 회사 것 */ adminCompanyId: number | null; } /** 고른 회사 id 자리 — M02 도 같은 키를 읽음(이름 바꾸지 않음) */ export const ADMIN_COMPANY_KEY = "aislo.adminCompany"; /** 고른 회사 — 저장값이 없거나 없는 회사면 자기 회사 */ export function pickAdminCompany(user: DashboardUser, companies: CompanyInfo[]): number | null { const saved = Number(sessionStorage.getItem(ADMIN_COMPANY_KEY)); if (companies.some((c) => c.id === saved)) return saved; return user.company_id ?? companies[0]?.id ?? null; }