fix: TypeScript build errors (TS6 enum → const, MUI v9 sx props, theme)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-15 01:04:28 +02:00
parent 39427c4835
commit 67e4baf860
5 changed files with 74 additions and 63 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ export function EmptyState({ icon, title, description, action }: EmptyStateProps
return ( return (
<Box className="flex flex-col items-center justify-center gap-3 py-16 px-8 text-center"> <Box className="flex flex-col items-center justify-center gap-3 py-16 px-8 text-center">
{icon && <Box className="text-slate-400 mb-2">{icon}</Box>} {icon && <Box className="text-slate-400 mb-2">{icon}</Box>}
<Typography variant="h6" color="text.primary" fontWeight={500}>{title}</Typography> <Typography variant="h6" color="text.primary" sx={{ fontWeight: 500 }}>{title}</Typography>
{description && ( {description && (
<Typography variant="body2" color="text.secondary" className="max-w-sm">{description}</Typography> <Typography variant="body2" color="text.secondary" className="max-w-sm">{description}</Typography>
)} )}
+1 -1
View File
@@ -16,7 +16,7 @@ export function SectionContainer({ title, subtitle, action, children, className
{(title || action) && ( {(title || action) && (
<Box className="flex items-center justify-between gap-2"> <Box className="flex items-center justify-between gap-2">
<Box> <Box>
{title && <Typography variant="subtitle1" fontWeight={600} color="text.primary">{title}</Typography>} {title && <Typography variant="subtitle1" sx={{ fontWeight: 600 }} color="text.primary">{title}</Typography>}
{subtitle && <Typography variant="caption" color="text.secondary">{subtitle}</Typography>} {subtitle && <Typography variant="caption" color="text.secondary">{subtitle}</Typography>}
</Box> </Box>
{action} {action}
+66 -57
View File
@@ -1,65 +1,74 @@
export enum AssetType { export const AssetType = {
OFFICE = 'OFFICE', OFFICE: 'OFFICE',
RETAIL = 'RETAIL', RETAIL: 'RETAIL',
GASTRO = 'GASTRO', GASTRO: 'GASTRO',
LOGISTICS = 'LOGISTICS', LOGISTICS: 'LOGISTICS',
PRODUCTION = 'PRODUCTION', PRODUCTION: 'PRODUCTION',
MIXED = 'MIXED', MIXED: 'MIXED',
} } as const
export type AssetType = typeof AssetType[keyof typeof AssetType]
export enum ResultType { export const ResultType = {
VERIFIED_PORTFOLIO = 'VERIFIED_PORTFOLIO', VERIFIED_PORTFOLIO: 'VERIFIED_PORTFOLIO',
EXTERNAL_MARKET = 'EXTERNAL_MARKET', EXTERNAL_MARKET: 'EXTERNAL_MARKET',
FUTURE_AVAILABILITY = 'FUTURE_AVAILABILITY', FUTURE_AVAILABILITY: 'FUTURE_AVAILABILITY',
} } as const
export type ResultType = typeof ResultType[keyof typeof ResultType]
export enum MatchStrength { export const MatchStrength = {
STRONG = 'STRONG', STRONG: 'STRONG',
MODERATE = 'MODERATE', MODERATE: 'MODERATE',
WEAK = 'WEAK', WEAK: 'WEAK',
} } as const
export type MatchStrength = typeof MatchStrength[keyof typeof MatchStrength]
export enum RiskLevel { export const RiskLevel = {
LOW = 'LOW', LOW: 'LOW',
MEDIUM = 'MEDIUM', MEDIUM: 'MEDIUM',
HIGH = 'HIGH', HIGH: 'HIGH',
CRITICAL = 'CRITICAL', CRITICAL: 'CRITICAL',
} } as const
export type RiskLevel = typeof RiskLevel[keyof typeof RiskLevel]
export enum AvailabilityStatus { export const AvailabilityStatus = {
AVAILABLE_NOW = 'AVAILABLE_NOW', AVAILABLE_NOW: 'AVAILABLE_NOW',
AVAILABLE_SOON = 'AVAILABLE_SOON', AVAILABLE_SOON: 'AVAILABLE_SOON',
FUTURE_SIGNAL = 'FUTURE_SIGNAL', FUTURE_SIGNAL: 'FUTURE_SIGNAL',
OCCUPIED = 'OCCUPIED', OCCUPIED: 'OCCUPIED',
UNKNOWN = 'UNKNOWN', UNKNOWN: 'UNKNOWN',
} } as const
export type AvailabilityStatus = typeof AvailabilityStatus[keyof typeof AvailabilityStatus]
export enum DataFreshness { export const DataFreshness = {
FRESH = 'FRESH', FRESH: 'FRESH',
STALE = 'STALE', STALE: 'STALE',
OUTDATED = 'OUTDATED', OUTDATED: 'OUTDATED',
} } as const
export type DataFreshness = typeof DataFreshness[keyof typeof DataFreshness]
export enum UserRole { export const UserRole = {
SUPER_ADMIN = 'SUPER_ADMIN', SUPER_ADMIN: 'SUPER_ADMIN',
ORGANIZATION_ADMIN = 'ORGANIZATION_ADMIN', ORGANIZATION_ADMIN: 'ORGANIZATION_ADMIN',
PROPERTY_MANAGER = 'PROPERTY_MANAGER', PROPERTY_MANAGER: 'PROPERTY_MANAGER',
REVIEWER = 'REVIEWER', REVIEWER: 'REVIEWER',
OWNER_VIEWER = 'OWNER_VIEWER', OWNER_VIEWER: 'OWNER_VIEWER',
DEMAND_USER = 'DEMAND_USER', DEMAND_USER: 'DEMAND_USER',
} } as const
export type UserRole = typeof UserRole[keyof typeof UserRole]
export enum SignalType { export const SignalType = {
EXPANSION = 'EXPANSION', EXPANSION: 'EXPANSION',
POSSIBLE_MOVE_OUT = 'POSSIBLE_MOVE_OUT', POSSIBLE_MOVE_OUT: 'POSSIBLE_MOVE_OUT',
CONSTRUCTION_PROJECT = 'CONSTRUCTION_PROJECT', CONSTRUCTION_PROJECT: 'CONSTRUCTION_PROJECT',
RESTRUCTURING = 'RESTRUCTURING', RESTRUCTURING: 'RESTRUCTURING',
PROJECT_DEVELOPMENT = 'PROJECT_DEVELOPMENT', PROJECT_DEVELOPMENT: 'PROJECT_DEVELOPMENT',
SPACE_CONSOLIDATION = 'SPACE_CONSOLIDATION', SPACE_CONSOLIDATION: 'SPACE_CONSOLIDATION',
} } as const
export type SignalType = typeof SignalType[keyof typeof SignalType]
export enum WorkspaceType { export const WorkspaceType = {
SUPPLY = 'SUPPLY', SUPPLY: 'SUPPLY',
DEMAND = 'DEMAND', DEMAND: 'DEMAND',
OPERATIONS = 'OPERATIONS', OPERATIONS: 'OPERATIONS',
} } as const
export type WorkspaceType = typeof WorkspaceType[keyof typeof WorkspaceType]
+5 -3
View File
@@ -79,9 +79,11 @@ export const theme = createTheme({
defaultProps: { disableElevation: true }, defaultProps: { disableElevation: true },
styleOverrides: { styleOverrides: {
root: { borderRadius: 6, padding: '6px 16px' }, root: { borderRadius: 6, padding: '6px 16px' },
containedPrimary: { contained: {
background: '#1e3a5f', '&.MuiButton-containedPrimary': {
'&:hover': { background: '#142a45' }, background: '#1e3a5f',
'&:hover': { background: '#142a45' },
},
}, },
}, },
}, },
+1 -1
View File
@@ -15,7 +15,7 @@ export interface AIServiceProvider {
} }
const MockupAIServiceProvider: AIServiceProvider = { const MockupAIServiceProvider: AIServiceProvider = {
async extractCriteria(input: string): Promise<CriteriaExtractionResult> { async extractCriteria(_input: string): Promise<CriteriaExtractionResult> {
// Deterministic mock extraction — simulates AI parsing // Deterministic mock extraction — simulates AI parsing
return { return {
extractedCriteria: { extractedCriteria: {