[Calendar] Support ref as prop and fix date handling edge cases
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- react, typescript
- 领域
- frontend
调研方向
从 Calendar、DatePicker 和 RangePicker 组件的入口开始,检查它们的 prop types 和日期处理路径。根据所述改进,检查 ref 支持、未来日期验证、mouseup listener 清理、Calendar 的 single mode 默认值以及输入格式检测。完成的标准是:受影响的行为在三个组件中都可配置或已得到修正,同时保留现有的 design-system 模式。
由索引模型根据 Issue 内容生成。
描述
Summary
Improvements to the Calendar, DatePicker, and RangePicker components to fix patterns and improve flexibility.
Improvements
1. No ref prop support on Calendar, DatePicker, or RangePicker
None of the three exported components accept ref as a prop, inconsistent with the rest of the design system.
2. Hardcoded future date restriction in DatePicker
DatePicker input validation has dayjs(date).isSameOrBefore(dayjs()) hardcoded, preventing selection of future dates. This should be configurable or removed.
4. Manual event listener management in DatePicker
DatePicker manually manages mouseup event listeners via document.addEventListener/removeEventListener. This could be simplified using the Popover's own onOpenChange interaction model or a useEffect cleanup pattern.
5. mode='single' hardcoded in Calendar
The Calendar component sets mode='single' by default but also spreads ...props after, which allows override. The default should be documented or the prop should be explicit in the type.
6. DatePicker input format detection is fragile
handleInputChange guesses the date format based on separator character (/ or -). This can conflict with the dateFormat prop if the user specifies a different format.
Moved to Cross-Cutting Issues
The following items have been moved to cross-cutting issues that address them across all components:
- Remove !important declarations (#678)
- 主要语言
- TypeScript
- 星标
- 70
- 派生
- 13
- 平均合并
- 8 天 56 分钟
- 30 天内合并 PR
- 16
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
raystack/apsara 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 75/100
维护者通常 1 天内回复
-
Docs: hand-duplicated props tables drift risk, missing a11y sections, no per-component changelog未关闭enhancement global
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 1 天内回复
-
bug global
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 1 天内回复
相似的 Issue
-
ADD openalgo未关闭template
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
factory-active factory-automatic task-bug-reproduction-success task-identify-harness-labels-done task-identify-issue-type-done
难度 2/5 1-3 小时 新手友好度 90/100
维护者通常 1 天内回复
-
bug Needs: Triage :mag:
难度 2/5 1-3 小时 新手友好度 84/100
microsoft/fluentui-contrib#671 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
sveltejs/acorn-typescript#150 ·
-
难度 2/5 1-3 小时 新手友好度 78/100