add accepts? method
還沒有人認領這個 Issue。
評估
研究方向
從 HyperComponent 基底類別開始,檢查現有的 fires 實作以及 accepts_list 的處理方式。新增 accepts?,讓元件能夠判斷其父元件是否具有指定事件的處理器,然後驗證在父元件沒有處理器的情況下觸發事件仍然不會引發錯誤。
由索引模型根據 Issue 內容生成。
描述
Its useful for a component to know if its parent is going to accept an event from the component.
fires :foo
...
... accepts? :foo # does my parent component have a foo handler?
Note that firing foo will NOT cause an error even if the parent has not handler, but it still might be useful to know (i.e. to control say a save button, but only if the parent is looking for you to do the save)
Can be added with the following patch in the HyperComponent base class:
class << self
def accepts_list
@accepts_list ||= {}
end
def fires(name, opts = {})
aka = opts[:alias] || "#{name}!"
name = if name =~ /^<(.+)>$/
name.gsub(/^<(.+)>$/, '\1')
elsif Hyperstack::Component::Event::BUILT_IN_EVENTS.include?("on#{name.event_camelize}")
"on#{name.event_camelize}"
else
"on_#{name}"
end
validator.event(name)
define_method(aka) { |*args| props[name]&.call(*args) }
accepts_list[opts[:alias] || aka.chomp('!')] = name
end
end
def accepts?(aka)
props[self.class.accepts_list[aka]]
end
- 主要語言
- JavaScript
- 星號
- 538
- 分支
- 41
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
hyperstack-org/hyperstack 的其他 Issue
-
enhancement needs doc
難度 2/5 1-3 小時 新手友好度 68/100
hyperstack-org/hyperstack#359 ·
-
難度 2/5 1-3 小時 新手友好度 68/100
hyperstack-org/hyperstack#267 ·
-
難度 5/5 一週以上 新手友好度 25/100
hyperstack-org/hyperstack#457 ·
-
難度 3/5 1-2 天 新手友好度 35/100
hyperstack-org/hyperstack#456 ·
-
難度 5/5 一週以上 新手友好度 15/100
hyperstack-org/hyperstack#455 · 2 則留言 ·
查看 hyperstack-org/hyperstack 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 65/100
-
難度 2/5 1-3 小時 新手友好度 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id 未關閉bug
難度 2/5 1-3 小時 新手友好度 75/100
nightscout/nocturne#1414 ·
-
bug v2
難度 2/5 1-3 小時 新手友好度 75/100
modelcontextprotocol/inspector#2458 · 1 則留言 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
難度 2/5 1-3 小時 新手友好度 70/100
carbon-design-system/ibm-products#9907 ·