0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-08 17:53:55 +08:00
discourse/plugins/discourse-chat-integration/admin/assets/javascripts/admin
Krzysztof Kotlarek 45538c7c11
DEV: Handle both string and object tag formats (#37207)
What is the problem?

PR discourse/discourse#36678 changes tags from an array of strings to an
array of tag objects. The chat-integration plugin's rule editing and
display functionality will break when tags become objects instead of
strings:
- The `EditRule` modal directly mutates `rule.tags` with the tag chooser
output
- The `RuleRow` component displays `rule.tags` directly in the template

What is the solution?

Update both components to handle both formats:
- Add `onTagsChanged` handler in `EditRule` that normalizes tags to
strings using `typeof t === "string" ? t : t.name`
- Add `displayTags` getter in `RuleRow` that converts tags to strings
before display
- Add system spec to verify tag editing works correctly

This is the same backwards-compatible approach used in Discourse core.
2026-01-21 08:43:32 +08:00
..
adapters DEV: Update lint-config and apply autofixes (#35991) 2025-11-12 14:48:49 +01:00
components DEV: Handle both string and object tag formats (#37207) 2026-01-21 08:43:32 +08:00
controllers/admin-plugins DEV: Replace ArrayProxy with tracked array for ResultSets (#35527) 2025-10-28 16:04:09 -03:00
lib DEV: Handle both string and object tag formats (#37207) 2026-01-21 08:43:32 +08:00
models
routes/admin-plugins DEV: Replace ArrayProxy with tracked array for ResultSets (#35527) 2025-10-28 16:04:09 -03:00
templates/admin-plugins DEV: Replace ArrayProxy with tracked array for ResultSets (#35527) 2025-10-28 16:04:09 -03:00
chat-integration-route-map.js