Files
formipay/node_modules/rungen/src/controls/builtin.js
dwindown e8fbfb14c1 fix: prevent asset conflicts between React and Grid.js versions
Add coexistence checks to all enqueue methods to prevent loading
both React and Grid.js assets simultaneously.

Changes:
- ReactAdmin.php: Only enqueue React assets when ?react=1
- Init.php: Skip Grid.js when React active on admin pages
- Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0
- Customer.php, Product.php, License.php: Add coexistence checks

Now the toggle between Classic and React versions works correctly.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 17:02:14 +07:00

84 lines
1.8 KiB
JavaScript

import is from '../utils/is'
export const any = (value, next, rungen, yieldNext) => {
yieldNext(value)
return true
}
export const error = (value, next, rungen, yieldNext, raiseNext) => {
if (!is.error(value)) return false
raiseNext(value.error)
return true
}
export const object = (value, next, rungen, yieldNext, raiseNext) => {
if (!is.all(value) || !is.obj(value.value)) return false
const result = {}
const keys = Object.keys(value.value)
let count = 0
let hasError = false
const gotResultSuccess = (key, ret) => {
if (hasError) return
result[key] = ret
count++
if (count === keys.length) {
yieldNext(result)
}
}
const gotResultError = (key, error) => {
if (hasError) return
hasError = true
raiseNext(error)
}
keys.map(key => {
rungen(
value.value[key],
ret => gotResultSuccess(key, ret),
err => gotResultError(key, err)
)
})
return true
}
export const array = (value, next, rungen, yieldNext, raiseNext) => {
if (!is.all(value) || !is.array(value.value)) return false
const result = []
let count = 0
let hasError = false
const gotResultSuccess = (key, ret) => {
if (hasError) return
result[key] = ret
count++
if (count === value.value.length) {
yieldNext(result)
}
}
const gotResultError = (key, error) => {
if (hasError) return
hasError = true
raiseNext(error)
}
value.value.map((v, key) => {
rungen(
v,
ret => gotResultSuccess(key, ret),
err => gotResultError(key, err)
)
})
return true
}
export const iterator = (value, next, rungen, yieldNext, raiseNext) => {
if (!is.iterator(value)) return false
rungen(value, next, raiseNext)
return true
}
export default [error, iterator, array, object, any]