-
Notifications
You must be signed in to change notification settings - Fork 273
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(modal): [modal] repeatedly dispatch the close event #2573
base: dev
Are you sure you want to change the base?
Conversation
WalkthroughThe changes in this pull request focus on refining the event handling logic within the modal component. Specifically, the Changes
Possibly related PRs
Suggested labels
Suggested reviewers
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (1)
packages/renderless/src/modal/index.ts (1)
210-212
: Consider adding documentation for event handling flow.The event handling logic is complex with multiple event types and emission points. Consider adding documentation that describes:
- The different event types and their purposes
- The event emission flow and order
- Why certain events are handled differently (e.g., close vs other events)
This would help future maintainers understand the event handling logic better.
🧰 Tools
🪛 Biome (1.9.4)
[error] 211-211: Change to an optional chain.
Unsafe fix: Change to an optional chain.
(lint/complexity/useOptionalChain)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
packages/renderless/src/modal/index.ts
(1 hunks)
🔇 Additional comments (2)
packages/renderless/src/modal/index.ts (2)
210-210
: LGTM! Fix for duplicate close event emission.
The condition type !== 'close'
correctly prevents double emission of the close event. Previously, the close event was being emitted both in handleEvent
and in the close
function. Now, only the close
function handles the emission, maintaining a single source of truth.
210-210
: LGTM! Consistent zoom event emission.
The addition of emitZoom
after the zoom action ensures that the zoom event is consistently emitted and that the zoom state is updated before the event is emitted.
@@ -207,7 +207,7 @@ export const handleEvent = | |||
params.options = options | |||
} | |||
|
|||
emit(type, params, event) | |||
type !== 'close' && emit(type, params, event) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hello你好,这个代码改了会导致有其他bug,排查了下你可以将377行代码:emit('close', params) 去掉,改掉目前这个问题。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
将377行代码:emit('close', params) 去掉
标签式调用时,当点击 确定 | 取消 按钮时,会触发 confirm
| cancel
事件,并不再触发 close
事件
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
点击 confirm 和 cancel 按钮,不需要触发close 事件,触发hide 事件。当点击close 按钮时触发close 事件即可
点击 confirm 和 cancel 按钮,不需要触发close 事件,触发hide 事件。当点击close 按钮时触发close 事件即可
---- Replied Message ----
| From | ***@***.***> |
| Date | 11/29/2024 18:21 |
| To | opentiny/tiny-vue ***@***.***> |
| Cc | James ***@***.***>,
Comment ***@***.***> |
| Subject | Re: [opentiny/tiny-vue] fix(modal): [modal] repeatedly dispatch the close event (PR #2573) |
@betavs commented on this pull request.
In packages/renderless/src/modal/index.ts:
@@ -207,7 +207,7 @@ export const handleEvent =
params.options = options
}
- emit(type, params, event)
+ type !== 'close' && emit(type, params, event)
将377行代码:emit('close', params) 去掉
标签式调用时,当点击 确定 | 取消 按钮时,会触发 confirm | cancel 事件,并不再触发 close 事件
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
@James-9696 https://opentiny.design/tiny-vue/zh-CN/smb-theme/components/modal#modal-event |
PR
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
Issue Number: #2512
What is the new behavior?
Does this PR introduce a breaking change?
Other information
Summary by CodeRabbit
New Features
Bug Fixes