Skip to content

Commit 94f2bb5

Browse files
committed
Extract VersionList::Row component
1 parent 463d304 commit 94f2bb5

File tree

6 files changed

+56
-52
lines changed

6 files changed

+56
-52
lines changed

app/components/version-list/row.hbs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<div local-class="row" ...attributes>
2+
<div>
3+
<LinkTo @route="crate.version" @model={{@version.num}}>{{@version.num}}</LinkTo>
4+
5+
<span local-class="date">{{date-format @version.created_at 'PPP'}}</span>
6+
{{#if @version.yanked}}
7+
<span local-class='yanked'>yanked</span>
8+
{{/if}}
9+
</div>
10+
11+
{{#if this.isOwner}}
12+
<YankButton @version={{@version}} />
13+
{{else}}
14+
<LinkTo @route="crate.version" @model={{@version.num}} local-class="arrow">
15+
{{svg-jar "right-arrow"}}
16+
</LinkTo>
17+
{{/if}}
18+
</div>

app/components/version-list/row.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { computed } from '@ember/object';
2+
import { inject as service } from '@ember/service';
3+
import Component from '@glimmer/component';
4+
5+
export default class VersionRow extends Component {
6+
@service session;
7+
8+
@computed('args.version.crate.owner_user', 'session.currentUser.id')
9+
get isOwner() {
10+
return this.args.version.crate?.owner_user?.findBy('id', this.session.currentUser?.id);
11+
}
12+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
.row {
2+
display: flex;
3+
justify-content: space-between;
4+
flex-wrap: wrap;
5+
padding: 20px 0;
6+
}
7+
8+
.date {
9+
composes: small from '../../styles/shared/typography.module.css';
10+
display: inline-block;
11+
margin-left: 20px;
12+
}
13+
14+
.yanked {
15+
composes: yanked from '../../styles/shared/typography.module.css';
16+
}
17+
18+
.arrow {
19+
display: inline-block;
20+
float: right;
21+
22+
svg {
23+
background: #EEECDD;
24+
}
25+
}

app/controllers/crate/versions.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

app/styles/crate/versions.module.css

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,9 @@
1313
}
1414

1515
.row {
16-
display: flex;
17-
justify-content: space-between;
18-
flex-wrap: wrap;
19-
padding: 20px 0;
2016
border-bottom: 2px solid #d5d3cb;
2117

2218
&:last-of-type {
2319
border: none;
2420
}
2521
}
26-
27-
.date {
28-
composes: small from '../shared/typography.module.css';
29-
display: inline-block;
30-
margin-left: 20px;
31-
}
32-
33-
.yanked {
34-
composes: yanked from '../shared/typography.module.css';
35-
}
36-
37-
.arrow {
38-
display: inline-block;
39-
float: right;
40-
41-
svg {
42-
background: #EEECDD;
43-
}
44-
}

app/templates/crate/versions.hbs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,6 @@
1010

1111
<div local-class="list">
1212
{{#each this.model.versions as |version|}}
13-
<div local-class="row">
14-
<div>
15-
<LinkTo @route="crate.version" @model={{version.num}}>{{ version.num }}</LinkTo>
16-
17-
<span local-class="date">{{date-format version.created_at 'PPP'}}</span>
18-
{{#if version.yanked}}
19-
<span local-class='yanked'>yanked</span>
20-
{{/if}}
21-
</div>
22-
{{#if this.isOwner}}
23-
<YankButton @version={{version}} />
24-
{{else}}
25-
<LinkTo @route="crate.version" @model={{version.num}} local-class="arrow">
26-
{{svg-jar "right-arrow"}}
27-
</LinkTo>
28-
{{/if}}
29-
</div>
13+
<VersionList::Row @version={{version}} local-class="row" />
3014
{{/each}}
3115
</div>

0 commit comments

Comments
 (0)