diff --git a/app/components/ember-versions-form.hbs b/app/components/ember-versions-form.hbs index 9a67e31..b2873c6 100644 --- a/app/components/ember-versions-form.hbs +++ b/app/components/ember-versions-form.hbs @@ -10,13 +10,17 @@ id="from-version" {{on "input" this.updateFromVersion}} > - {{#each this.versions as |version|}} - + {{#each this.groupedVersions as |versionGroup|}} + + {{#each versionGroup.versions as |version|}} + + {{/each}} + {{/each}} @@ -29,13 +33,17 @@ id="to-version" {{on "input" this.updateToVersion}} > - {{#each this.versions as |version|}} - + {{#each this.groupedVersions as |versionGroup|}} + + {{#each versionGroup.versions as |version|}} + + {{/each}} + {{/each}} diff --git a/app/components/ember-versions-form.js b/app/components/ember-versions-form.js index 4af9653..66ce3b5 100644 --- a/app/components/ember-versions-form.js +++ b/app/components/ember-versions-form.js @@ -4,8 +4,21 @@ import { tracked } from '@glimmer/tracking'; import { VERSIONS } from 'upgrade-guide/utils/ember-versions'; import { compare } from 'compare-versions'; +// Group the versions by major so we can display option groups. +const GROUPED_VERSIONS = VERSIONS.reduce((acc, version) => { + const major = version.split('.')[0]; + let group = acc.find((g) => g.major === major); + if (!group) { + group = { major, versions: [] }; + acc.push(group); + } + group.versions.push(version); + return acc; +}, []); + export default class EmberVersionsFormComponent extends Component { versions = VERSIONS; + groupedVersions = GROUPED_VERSIONS; @tracked fromVersion = '3.15'; @tracked toVersion = VERSIONS[VERSIONS.length - 1]; diff --git a/app/utils/ember-versions.js b/app/utils/ember-versions.js index d8595da..a3002f2 100644 --- a/app/utils/ember-versions.js +++ b/app/utils/ember-versions.js @@ -1,7 +1,7 @@ export const VERSIONS = Object.freeze([ + '0.13', '1.0.0-pre', '1.0.0-pre.2', - '0.13', '1.0.0-rc.1', '1.0.0-rc.2', '1.0.0-rc.3',