@@ -11,7 +11,7 @@ import {
1111import { calculateSavingsDifference } from '../utils/billingComparison'
1212import { InfoTip , ValidationPopover } from '../components/InfoTip'
1313import { formatAic , formatDifference } from '../utils/format'
14- import { getSeatReductionError , parseSeatCountInput } from '../utils/seatCounts'
14+ import { getSeatCountInputError , parseSeatCountInput } from '../utils/seatCounts'
1515import { Trie } from '../utils/trie'
1616import { th , thBase , thNum , td , tdNum , sortBtn } from '../components/ui/tableStyles'
1717
@@ -75,13 +75,15 @@ export function UsersView({ users, seatOverrides = {}, onSeatOverridesChange, on
7575 const savedEnterprise = seatOverrides . enterprise ?? defaultEnterprise
7676 const hasSavedOverride = seatOverrides . business !== undefined || seatOverrides . enterprise !== undefined
7777
78- const displayBusiness = isEditing ? ( draftBusiness !== '' ? parseInt ( draftBusiness , 10 ) || 0 : savedBusiness ) : savedBusiness
79- const displayEnterprise = isEditing ? ( draftEnterprise !== '' ? parseInt ( draftEnterprise , 10 ) || 0 : savedEnterprise ) : savedEnterprise
78+ const parsedDraftBusiness = parseSeatCountInput ( draftBusiness )
79+ const parsedDraftEnterprise = parseSeatCountInput ( draftEnterprise )
80+ const displayBusiness = isEditing ? ( parsedDraftBusiness ?? savedBusiness ) : savedBusiness
81+ const displayEnterprise = isEditing ? ( parsedDraftEnterprise ?? savedEnterprise ) : savedEnterprise
8082 const businessSeatError = isEditing
81- ? getSeatReductionError ( draftBusiness , defaultBusiness )
83+ ? getSeatCountInputError ( draftBusiness , defaultBusiness )
8284 : null
8385 const enterpriseSeatError = isEditing
84- ? getSeatReductionError ( draftEnterprise , defaultEnterprise )
86+ ? getSeatCountInputError ( draftEnterprise , defaultEnterprise )
8587 : null
8688 const hasSeatValidationError = Boolean ( businessSeatError || enterpriseSeatError )
8789
@@ -106,13 +108,11 @@ export function UsersView({ users, seatOverrides = {}, onSeatOverridesChange, on
106108 }
107109
108110 const handleSave = ( ) => {
109- if ( hasSeatValidationError ) return
111+ if ( hasSeatValidationError || parsedDraftBusiness === null || parsedDraftEnterprise === null ) return
110112
111- const normalizedBusiness = parseSeatCountInput ( draftBusiness , defaultBusiness )
112- const normalizedEnterprise = parseSeatCountInput ( draftEnterprise , defaultEnterprise )
113113 const newOverrides : SeatOverrides = { }
114- if ( normalizedBusiness !== defaultBusiness ) newOverrides . business = normalizedBusiness
115- if ( normalizedEnterprise !== defaultEnterprise ) newOverrides . enterprise = normalizedEnterprise
114+ if ( parsedDraftBusiness !== defaultBusiness ) newOverrides . business = parsedDraftBusiness
115+ if ( parsedDraftEnterprise !== defaultEnterprise ) newOverrides . enterprise = parsedDraftEnterprise
116116 onSeatOverridesChange ?.( newOverrides )
117117 setIsEditing ( false )
118118 }
0 commit comments