mirror of
https://github.com/mattermost/mattermost.git
synced 2026-09-21 14:20:41 +08:00
* Implement Interactive Dialog field refresh and multi-step form functionality - Add field refresh capability to interactive dialogs - Implement multi-step form support - Add comprehensive E2E tests for new features - Enhance InteractiveDialogAdapter with server-side error handling - Optimize form validation and performance - Add internationalization support for error messages - Maintain backward compatibility with existing dialogs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fixes and cleanup * Enhance field refresh e2e tests with improved field ordering and form submission - Reverse field order: project name first, then project type (with refresh) - Ensure all tests enter project name to verify value preservation - Add form submission to MM-T2540B test to verify complete workflow - Update webhook server to preserve project name values during refresh - Add submission handler for field refresh dialog callback - Update introduction text to reflect new field ordering workflow 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * code review updates * Simplify apps form value preservation by always merging previous values - Remove AppFormUpdateType enum and updateType props throughout apps form system - Simplify getDerivedStateFromProps to always preserve existing values via spread operator - Remove restoreFormFieldValues function and manual value restoration logic - Eliminate conditional refresh vs submit behavior in favor of consistent value preservation This change makes apps form behavior consistent regardless of whether it's a multi-step submission or field refresh, improving reliability and reducing complexity. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Add server-side validation for SubmitDialogResponse - Add SubmitDialogResponseType enum with OK, Form, Navigate, and Empty types - Implement IsValid() method with fail-fast validation logic - Validate type field and ensure Form field consistency based on type - Add comprehensive test coverage for all validation scenarios - Integration validates responses in SubmitInteractiveDialog handler 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * lint fixes * Fix test case for multierror format in Dialog.IsValid() The Dialog.IsValid() method returns multierror format, so the test expectation needs to match the actual error format with line breaks. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * i18n-extract * log dialog errors, allow invalid dialog * Fix interactive dialog test assertions for undefined values Handle cases where dialog elements have undefined default values or placeholders by providing empty string fallbacks. This resolves CI test failures where undefined values were expected but empty strings were returned from DOM elements. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Mattermost Build <build@mattermost.com>