react / react/react-native

normalize-color accepts functional colors with surrounding junk

未关闭
#58,495 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

Needs: Attention Needs: Repro
主要语言
C++
星标
127k
派生
25.3k
平均合并
1 天 23 小时
30 天内合并 PR
4

描述

Description

@react-native/normalize-colors fully anchors hex matchers (^…$) but not rgb/rgba/hsl/hsla/hwb. Substring matches are therefore accepted:

normalizeColor('xxrgb(1, 2, 3)yy') // => 0x010203ff (unexpected)
normalizeColor('rgba(1,2,3,0.5)extra') // => non-null (unexpected)
normalizeColor(' #fff ') // => null (hex correctly rejects)
Steps to reproduce
  1. Open the Snack: https://snack.expo.dev/rykV9Sq-NOSJg8KWXawiP
  2. Look at rows for xxrgb(1, 2, 3)yy, rgb(1, 2, 3)yy, and rgba(1,2,3,0.5)extra
  3. Observe non-null processColor values and painted swatches (bug). Spaced hex #fff correctly stays null.
React Native Version

main / latest (package @react-native/normalize-colors, used by processColor)

Affected Platforms
  • Runtime - Android
  • Runtime - iOS
  • Runtime - Web
  • Other (please specify): pure JS @react-native/normalize-colors
Output of npx @react-native-community/cli info

N/A — reproducible via Snack / unit package without a local app install.

Stacktrace or Logs

N/A (incorrect non-null return value, no crash)

MANDATORY Reproducer

https://snack.expo.dev/rykV9Sq-NOSJg8KWXawiP

Screenshots and Videos

N/A

Fix PR: https://github.com/facebook/react-native/pull/58496

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

从 @react-native/normalize-colors 中的函数式颜色匹配器开始,并使用链接的 Snack 重现列出的 rgb、rgba 和 spaced-hex 用例。当带有周围无关内容的输入返回 null,而有效的函数式颜色仍继续产生非 null 值时,即表示完成;该 issue 还链接了修复 PR #58496。

由索引模型根据 Issue 内容生成。

评估

技术栈
javascript, react-native
领域
mobile
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
描述清楚
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。