File tree Expand file tree Collapse file tree 12 files changed +130
-45
lines changed Expand file tree Collapse file tree 12 files changed +130
-45
lines changed Original file line number Diff line number Diff line change 12
12
<FollowButton @crate ={{ @crate }} />
13
13
{{ /if }}
14
14
</div >
15
- </PageHeader >
15
+ </PageHeader >
16
+
17
+ <NavTabs local-class =" nav" as |nav|>
18
+ <nav .Tab
19
+ @link ={{ if
20
+ (eq this.router.currentRouteName " crate.version" )
21
+ (link " crate.version" @crate @version.num )
22
+ (link " crate.index" @crate )
23
+ }}
24
+ >
25
+ Readme
26
+ </nav .Tab>
27
+
28
+ <nav .Tab @link ={{ link " crate.versions" @crate }} >
29
+ {{ @crate.versions.length }} Versions
30
+ </nav .Tab>
31
+
32
+ <nav .Tab @link ={{ link " crate.reverse-dependencies" @crate }} >
33
+ Dependents
34
+ </nav .Tab>
35
+
36
+ {{ #if this.isOwner }}
37
+ <nav .Tab @link ={{ link " crate.owners" @crate }} >
38
+ Settings
39
+ </nav .Tab>
40
+ {{ /if }}
41
+ </NavTabs >
Original file line number Diff line number Diff line change
1
+ import { computed } from '@ember/object' ;
1
2
import { inject as service } from '@ember/service' ;
2
3
import Component from '@glimmer/component' ;
3
4
4
5
export default class CrateHeader extends Component {
6
+ @service router ;
5
7
@service session ;
8
+
9
+ @computed ( 'args.crate.owner_user' , 'session.currentUser.id' )
10
+ get isOwner ( ) {
11
+ return this . args . crate . owner_user . findBy ( 'id' , this . session . currentUser ?. id ) ;
12
+ }
6
13
}
Original file line number Diff line number Diff line change 29
29
width : 32px ;
30
30
height : 32px ;
31
31
}
32
+
33
+ .nav {
34
+ margin-bottom : 20px ;
35
+ }
Original file line number Diff line number Diff line change 152
152
{{ /if }}
153
153
{{ /unless }}
154
154
155
- <div data-test-versions>
156
- <h3 >Versions</h3 >
157
- <ul >
158
- {{ #each this.smallSortedVersions as |version |}}
159
- <li >
160
- <LinkTo @route =" crate.version" @model ={{ version.num }} data-test-version-link ={{ version.num }} >
161
- {{ version.num }}
162
- </LinkTo >
163
- {{ date-format version.created_at " PP" }}
164
- {{ #if version.yanked }}
165
- <span local-class =' yanked' >yanked</span >
166
- {{ /if }}
167
- </li >
168
- {{ /each }}
169
- </ul >
170
- {{ #if this.hasMoreVersions }}
171
- <LinkTo @route =" crate.versions" @model ={{ @crate }} local-class =" more-versions-link" data-test-all-versions-link>
172
- show all {{ @crate.versions.length }} versions
173
- </LinkTo >
174
- {{ /if }}
175
- </div >
176
-
177
155
<div >
178
156
<h3 >Dependencies</h3 >
179
157
<ul data-test-dependencies>
187
165
{{ /if }}
188
166
{{ /each }}
189
167
</ul >
190
-
191
- <LinkTo @route =" crate.reverse-dependencies" local-class =" reverse-deps-link" data-test-reverse-deps-link>
192
- Show dependent crates
193
- </LinkTo >
194
168
</div >
195
169
196
170
{{ #if @version.buildDependencies }}
Original file line number Diff line number Diff line change
1
+ <nav ...attributes>
2
+ <ul local-class =" list" >
3
+ {{ yield (hash Tab = (component " nav-tabs/tab" ))}}
4
+ </ul >
5
+ </nav >
Original file line number Diff line number Diff line change
1
+ .list {
2
+ --nav-tabs-border-width : 2px ;
3
+ --nav-tabs-padding-h : 20px ;
4
+ --nav-tabs-padding-v : 12px ;
5
+ --nav-tabs-radius : 5px ;
6
+
7
+ display : flex;
8
+ list-style : none;
9
+ padding : 0 ;
10
+ margin : 0 ;
11
+ border-bottom : var (--nav-tabs-border-width ) solid var (--gray-border );
12
+
13
+ @media only screen and (max-width : 550px ) {
14
+ flex-direction : column;
15
+ border-left : var (--nav-tabs-border-width ) solid var (--gray-border );
16
+ border-bottom : none;
17
+ }
18
+ }
Original file line number Diff line number Diff line change
1
+ <li ...attributes>
2
+ <a
3
+ href ={{ @link.url }}
4
+ local-class =" link {{ if @link.isActive " active" }} "
5
+ {{ on " click" @link.transitionTo }}
6
+ >
7
+ {{ yield }}
8
+ </a >
9
+ </li >
Original file line number Diff line number Diff line change
1
+ .link {
2
+ display : block;
3
+ padding :
4
+ calc (var (--nav-tabs-padding-v ) + var (--nav-tabs-border-width ))
5
+ var (--nav-tabs-padding-h )
6
+ var (--nav-tabs-padding-v );
7
+ color : var (--main-color );
8
+ border-top-left-radius : var (--nav-tabs-radius );
9
+ border-top-right-radius : var (--nav-tabs-radius );
10
+ border-bottom : var (--nav-tabs-border-width ) solid transparent;
11
+ margin-bottom : calc (0px - var (--nav-tabs-border-width ));
12
+ transition : all 300ms ;
13
+
14
+ & .active {
15
+ color : var (--link-hover-color );
16
+ border-bottom-color : var (--link-hover-color );
17
+ background : var (--main-bg-dark );
18
+ }
19
+
20
+ & : hover {
21
+ color : var (--link-hover-color );
22
+ border-bottom-color : var (--link-hover-color );
23
+ transition : all 0s ;
24
+ }
25
+
26
+ @media only screen and (max-width : 550px ) {
27
+ padding :
28
+ var (--nav-tabs-padding-v )
29
+ var (--nav-tabs-padding-h )
30
+ var (--nav-tabs-padding-v )
31
+ calc (var (--nav-tabs-padding-h ) + var (--nav-tabs-border-width ));
32
+
33
+ border-top-left-radius : 0 ;
34
+ border-bottom-right-radius : var (--nav-tabs-radius );
35
+ border-bottom : none;
36
+ border-left : var (--nav-tabs-border-width ) solid transparent;
37
+ margin-bottom : 0 ;
38
+ margin-left : calc (0px - var (--nav-tabs-border-width ));
39
+
40
+ & .active ,
41
+ & : hover {
42
+ border-left-color : var (--link-hover-color );
43
+ }
44
+ }
45
+ }
Original file line number Diff line number Diff line change 3
3
align-items : center;
4
4
justify-content : space-between;
5
5
margin-bottom : 10px ;
6
+
7
+ @media only screen and (max-width : 550px ) {
8
+ display : block;
9
+ }
6
10
}
7
11
8
12
.page-description {
9
13
composes : small from '../shared/typography.module.css' ;
14
+
15
+ @media only screen and (max-width : 550px ) {
16
+ display : block;
17
+ margin-bottom : 15px ;
18
+ }
10
19
}
11
20
12
21
.list {
Original file line number Diff line number Diff line change 1
1
{{ page-title ' Manage Crate Owners' }}
2
2
3
- <PageHeader
4
- @title =" Manage Crate Owners"
5
- @suffix ={{ this.crate.name }}
6
- @icon =" gear"
7
- />
3
+ <CrateHeader @crate ={{ this.crate }} />
8
4
9
5
<div local-class =" me-email" >
10
6
<h2 >Add Owner</h2 >
Original file line number Diff line number Diff line change 1
1
<CrateHeader @crate ={{ this.crate }} />
2
2
3
- <div local-class =" back-link" >
4
- <LinkTo @route =" crate" @model ={{ this.crate.id }} >⬅ Back to {{ this.crate.name }} </LinkTo >
5
- </div >
6
-
7
3
<div local-class =" results-meta" >
8
4
<ResultsCount
9
5
@start ={{ this.pagination.currentPageStart }}
Original file line number Diff line number Diff line change 1
1
<CrateHeader @crate ={{ this.model }} />
2
2
3
3
<div local-class =" results-meta" >
4
- <LinkTo @route =" crate" @model ={{ this.model }} local-class =" back-link" >
5
- ⬅ Back to Main Page
6
- </LinkTo >
4
+ <span local-class =" page-description" data-test-page-description>
5
+ All <strong >{{ this.model.versions.length }} </strong >
6
+ versions of <strong >{{ this.model.name }} </strong > since
7
+ {{ date-format this.model.created_at ' PPP' }}
8
+ </span >
7
9
8
10
<div data-test-search-sort>
9
11
<span local-class =" sort-by-label" >Sort by </span >
14
16
</div >
15
17
</div >
16
18
17
- <span local-class =" page-description" data-test-page-description>
18
- All <strong >{{ this.model.versions.length }} </strong >
19
- versions of <strong >{{ this.model.name }} </strong > since
20
- {{ date-format this.model.created_at ' PPP' }}
21
- </span >
22
-
23
19
<ul local-class =" list" >
24
20
{{ #each this.sortedVersions as |version |}}
25
21
<li >
You can’t perform that action at this time.
0 commit comments