Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

add accepts? method

Aberta
#363 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
45/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
ruby
Domínio
frontend

Direção de pesquisa

Comece pela classe base HyperComponent e inspecione a implementação existente de fires e o tratamento de accepts_list. Adicione accepts? para que um componente possa determinar se seu elemento pai possui um handler para o evento nomeado e, em seguida, verifique se disparar um evento sem um handler no elemento pai ainda não gera um erro.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

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
Linguagem predominante
JavaScript
Estrelas
538
Forks
41
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de hyperstack-org/hyperstack

Todas as issues de hyperstack-org/hyperstack

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.