ember-learn / ember-learn/ember-cli-addon-docs

Keyboard navigation is broken

Offen
#1,439 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
JavaScript
Sterne
172
Forks
142
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Keyboard navigation (using ArrowLeft and ArrowRight to go to the previous or next topic) is broken on any site created using this addon. You can check it out by going to any topic on this addons own docs and pressing one of the arrow keys.

The resulting error is something like this:

Uncaught Error:  More context objects were passed than there are dynamic segments for the route: docs.usage
    at I.applyToHandlers (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:46691:15)
    at I.applyToState (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:46628:19)
    at s.applyIntent (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:47510:21)
    at R (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:28701:45)
    at r._prepareQueryParams (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:28260:19)
    at r._doTransition (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:28219:12)
    at h.transitionTo (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:27027:37)
    at i.nextPage (vendor-907f1d49045ce1b9b3f2f6d948b40f39.js:81107:23)
    at chunk.21.0381709c1e24f2a2857d.js:2:117294
    at Array.forEach (<anonymous>)

The offending code seems to be at https://github.com/ember-learn/ember-cli-addon-docs/blob/daeaf9f909328ba92b106031b992bb085b96c23d/addon/components/docs-viewer/index.js#L55..L56 and https://github.com/ember-learn/ember-cli-addon-docs/blob/daeaf9f909328ba92b106031b992bb085b96c23d/addon/components/docs-viewer/index.js#L66..L67.

The fix seems fairly easy; If the model on a route is undefined the transitionTo method should not be called with the model argument.

Changing the code to the following fixes it, but I don't know if this might have side effects

const { route, model } = this.docsRoutes.previous;
if (model) {
  this.router.transitionTo(route, model);
} else {
  this.router.transitionTo(route);
}

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Untersuche addon/components/docs-viewer/index.js an den referenzierten Zeilen und reproduziere den Fehler, indem du bei einem Thema in der Addon-Dokumentation ArrowLeft oder ArrowRight verwendest. Überprüfe die Übergänge zu den vorherigen und nächsten Routen, wenn das model nicht definiert ist. Erledigt ist dies, wenn beide Tastaturrichtungen erfolgreich navigieren, ohne den Fehler für dynamische Segmente.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
frontend
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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