diff --git a/app/components/version-list/row.hbs b/app/components/version-list/row.hbs new file mode 100644 index 00000000000..785d2d343bf --- /dev/null +++ b/app/components/version-list/row.hbs @@ -0,0 +1,23 @@ +
+
+ + {{@version.num}} + + + {{#if @version.yanked}} + yanked + {{/if}} +
+ + + {{date-format-distance-to-now @version.created_at addSuffix=true}} + + + {{#if this.isOwner}} + + {{/if}} +
diff --git a/app/components/version-list/row.js b/app/components/version-list/row.js new file mode 100644 index 00000000000..876041b51de --- /dev/null +++ b/app/components/version-list/row.js @@ -0,0 +1,12 @@ +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@glimmer/component'; + +export default class VersionRow extends Component { + @service session; + + @computed('args.version.crate.owner_user', 'session.currentUser.id') + get isOwner() { + return this.args.version.crate?.owner_user?.findBy('id', this.session.currentUser?.id); + } +} diff --git a/app/components/version-list/row.module.css b/app/components/version-list/row.module.css new file mode 100644 index 00000000000..419fb1d2eca --- /dev/null +++ b/app/components/version-list/row.module.css @@ -0,0 +1,45 @@ +.row { + display: flex; + align-items: center; + position: relative; + padding: 20px; + transition: background-color 300ms; + + &:hover { + background-color: var(--grey200); + transition: background-color 0ms; + } + + & >:first-child { + flex-grow: 1; + } +} + +.num-link { + font-variant-numeric: tabular-nums; + + &::after { + content: ''; + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + } +} + +.date { + composes: small from '../../styles/shared/typography.module.css'; + display: inline-block; + margin-left: 20px; + position: relative; +} + +.yanked { + composes: yanked from '../../styles/shared/typography.module.css'; +} + +.yank-button { + position: relative; + margin-left: 10px; +} diff --git a/app/controllers/crate/versions.js b/app/controllers/crate/versions.js deleted file mode 100644 index fc43b600fb2..00000000000 --- a/app/controllers/crate/versions.js +++ /dev/null @@ -1,12 +0,0 @@ -import Controller from '@ember/controller'; -import { computed } from '@ember/object'; -import { inject as service } from '@ember/service'; - -export default class CrateVersionsController extends Controller { - @service session; - - @computed('model.owner_user', 'session.currentUser.id') - get isOwner() { - return this.model.owner_user.findBy('id', this.session.currentUser?.id); - } -} diff --git a/app/styles/application.module.css b/app/styles/application.module.css index da8b1c37c11..dba8fd26ebe 100644 --- a/app/styles/application.module.css +++ b/app/styles/application.module.css @@ -1,6 +1,7 @@ :root { --violet800: hsl(252, 44%, 24%); --grey900: hsl(200, 15%, 19%); + --grey200: hsl(200, 17%, 96%); --green800: hsl(115, 31%, 31%); --yellow500: hsl(44, 100%, 60%); diff --git a/app/styles/crate/versions.module.css b/app/styles/crate/versions.module.css index b87805df346..f9e3fe92807 100644 --- a/app/styles/crate/versions.module.css +++ b/app/styles/crate/versions.module.css @@ -10,35 +10,17 @@ margin-top: 10px; padding: 0 20px; background-color: white; -} + list-style: none; -.row { - display: flex; - justify-content: space-between; - flex-wrap: wrap; - padding: 20px 0; - border-bottom: 2px solid #d5d3cb; + > li { + border-bottom: 2px solid #d5d3cb; - &:last-of-type { - border: none; + &:last-of-type { + border: none; + } } } -.date { - composes: small from '../shared/typography.module.css'; - display: inline-block; - margin-left: 20px; -} - -.yanked { - composes: yanked from '../shared/typography.module.css'; -} - -.arrow { - display: inline-block; - float: right; - - svg { - background: #EEECDD; - } +.row { + margin: 0 -20px; } diff --git a/app/templates/crate/versions.hbs b/app/templates/crate/versions.hbs index c0964e7df50..2222a9e8c5b 100644 --- a/app/templates/crate/versions.hbs +++ b/app/templates/crate/versions.hbs @@ -8,24 +8,10 @@ {{date-format this.model.created_at 'PPP'}} -
+
+