Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

add accepts? method

Offen
#363 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
ruby
Bereich
frontend

Rechercherichtung

Beginne bei der HyperComponent-Basisklasse und untersuche die vorhandene fires-Implementierung sowie die Verarbeitung von accepts_list. Füge accepts? hinzu, damit eine Komponente feststellen kann, ob ihr übergeordnetes Element einen Handler für das benannte Ereignis hat, und stelle anschließend sicher, dass das Auslösen eines Ereignisses ohne Handler im übergeordneten Element weiterhin keinen Fehler auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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
Vorherrschende Sprache
JavaScript
Sterne
538
Forks
41
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus hyperstack-org/hyperstack

Alle Issues in hyperstack-org/hyperstack

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.