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>
This commit is contained in:
dwindown
2026-04-18 17:02:14 +07:00
parent bd9cdac02e
commit e8fbfb14c1
74973 changed files with 6658406 additions and 71 deletions

115
node_modules/webpack/schemas/plugins/BannerPlugin.json generated vendored Normal file
View File

@@ -0,0 +1,115 @@
{
"definitions": {
"BannerFunction": {
"description": "The banner as function, it will be wrapped in a comment.",
"instanceof": "Function",
"tsType": "import('../../lib/BannerPlugin').BannerFunction"
},
"Rule": {
"description": "Filtering rule as regex or string.",
"anyOf": [
{
"instanceof": "RegExp",
"tsType": "RegExp"
},
{
"type": "string",
"minLength": 1
},
{
"instanceof": "Function",
"tsType": "import('../../lib/ModuleFilenameHelpers').MatcherFn"
}
]
},
"Rules": {
"description": "Filtering rules.",
"anyOf": [
{
"type": "array",
"items": {
"description": "A rule condition.",
"oneOf": [
{
"$ref": "#/definitions/Rule"
}
]
}
},
{
"$ref": "#/definitions/Rule"
}
]
}
},
"title": "BannerPluginArgument",
"anyOf": [
{
"description": "The banner as string, it will be wrapped in a comment.",
"type": "string",
"minLength": 1
},
{
"title": "BannerPluginOptions",
"type": "object",
"additionalProperties": false,
"properties": {
"banner": {
"description": "Specifies the banner.",
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/BannerFunction"
}
]
},
"entryOnly": {
"description": "If true, the banner will only be added to the entry chunks.",
"type": "boolean"
},
"exclude": {
"description": "Exclude all modules matching any of these conditions.",
"oneOf": [
{
"$ref": "#/definitions/Rules"
}
]
},
"footer": {
"description": "If true, banner will be placed at the end of the output.",
"type": "boolean"
},
"include": {
"description": "Include all modules matching any of these conditions.",
"oneOf": [
{
"$ref": "#/definitions/Rules"
}
]
},
"raw": {
"description": "If true, banner will not be wrapped in a comment.",
"type": "boolean"
},
"stage": {
"description": "Specifies the stage when add a banner.",
"type": "number"
},
"test": {
"description": "Include all modules that pass test assertion.",
"oneOf": [
{
"$ref": "#/definitions/Rules"
}
]
}
},
"required": ["banner"]
},
{
"$ref": "#/definitions/BannerFunction"
}
]
}