@@ -158,12 +158,54 @@ let _buildIconId = (state: state, isChinese) => {
158158 return `${ _buildUniqueName ( state , isChinese ) } _icon`
159159}
160160
161+ let _unifyCareerFeatureValueToArray = ( value ) => {
162+ if ( Array . isArray ( value ) ) {
163+ return value
164+ }
165+
166+ return [ value ]
167+ }
168+
169+ let _range = ( a , b ) => {
170+ let res = [ ]
171+ for ( let i = a ; i <= b ; i ++ ) {
172+ res . push ( i )
173+ }
174+
175+ return res
176+ }
177+
178+ let _isFeaturesInRange = ( api : api , features ) => {
179+ return features . reduce ( ( result , { values, minValue, maxValue } ) => {
180+ if ( ! result ) {
181+ return result
182+ }
183+
184+ let valueCount = values . count ( )
185+
186+ minValue = api . nullable . getWithDefault (
187+ api . nullable . map ( _unifyCareerFeatureValueToArray , minValue ) ,
188+ _range ( 0 , valueCount - 1 ) . map ( _ => - Infinity )
189+ )
190+ maxValue = api . nullable . getWithDefault (
191+ api . nullable . map ( _unifyCareerFeatureValueToArray , maxValue ) ,
192+ _range ( 0 , valueCount - 1 ) . map ( _ => Infinity )
193+ )
194+
195+ return values . reduce ( ( result , value , i ) => {
196+ if ( ! result ) {
197+ return result
198+ }
199+
200+ return value >= minValue [ i ] && value <= maxValue [ i ]
201+ } , result )
202+ } , true )
203+ }
204+
161205let _check = ( api : api , state : state , isChinese , features ) => {
162206 let {
163207 displayName_cn,
164208 displayName_en,
165- // repoLink,
166- author,
167209 readme,
168210 } = state
169211
@@ -184,6 +226,9 @@ let _check = (api: api, state: state, isChinese, features) => {
184226 else if ( features . count ( ) <= 0 ) {
185227 message = api . nullable . return ( isChinese ? "请选择职业特性" : "Please select the career features" )
186228 }
229+ else if ( ! _isFeaturesInRange ( api , features ) ) {
230+ message = api . nullable . return ( isChinese ? "职业特性值超出范围" : "Career feature's value exceed the specified range" )
231+ }
187232
188233 return api . nullable . getWithDefault (
189234 api . nullable . map ( ( message ) => {
0 commit comments