5757 </form >
5858{{ /if }}
5959
60- <ul role =" list" local-class =" token-list" >
61- {{ #each this.sortedTokens as |token |}}
62- <li local-class =" row" data-test-api-token ={{ or token.id true }} >
63- <h3 local-class =" name" data-test-name>
64- {{ token.name }}
65- </h3 >
60+ {{ #if this.sortedTokens }}
61+ <ul role =" list" local-class =" token-list" >
62+ {{ #each this.sortedTokens as |token |}}
63+ <li local-class =" row" data-test-api-token ={{ or token.id true }} >
64+ <h3 local-class =" name" data-test-name>
65+ {{ token.name }}
66+ </h3 >
6667
67- <div title ={{ token.last_used_at }} local-class =" last-used-at" data-test-last-used-at>
68- {{ #if token.last_used_at }}
69- Last used {{ date-format-distance-to-now token.last_used_at addSuffix =true }}
70- {{ else }}
71- Never used
72- {{ /if }}
73- </div >
68+ <div title ={{ token.last_used_at }} local-class =" last-used-at" data-test-last-used-at>
69+ {{ #if token.last_used_at }}
70+ Last used {{ date-format-distance-to-now token.last_used_at addSuffix =true }}
71+ {{ else }}
72+ Never used
73+ {{ /if }}
74+ </div >
7475
75- <div title ={{ token.created_at }} local-class =" created-at" data-test-created-at>
76- Created {{ date-format-distance-to-now token.created_at addSuffix =true }}
77- </div >
76+ <div title ={{ token.created_at }} local-class =" created-at" data-test-created-at>
77+ Created {{ date-format-distance-to-now token.created_at addSuffix =true }}
78+ </div >
7879
79- {{ #if token.token }}
80- <div local-class =" new-token" >
81- <div local-class =" new-token-explainer" >
82- Make sure to copy your API token now. You won’t be able to see it again!
83- </div >
80+ {{ #if token.token }}
81+ <div local-class =" new-token" >
82+ <div local-class =" new-token-explainer" >
83+ Make sure to copy your API token now. You won’t be able to see it again!
84+ </div >
8485
85- <div local-class =" token-display" >
86- <span local-class =" token-value" data-test-token>{{ token.token }} </span >
86+ <div local-class =" token-display" >
87+ <span local-class =" token-value" data-test-token>{{ token.token }} </span >
8788
88- {{ #if (is-clipboard-supported )}}
89- <CopyButton @copyText ={{ token.token }} local-class =" copy-button" >
90- <span local-class =" copy-button-label" >Copy</span >
91- {{ svg-jar " copy" aria-hidden =" true" local-class =" copy-button-icon" }}
92- </CopyButton >
93- {{ /if }}
89+ {{ #if (is-clipboard-supported )}}
90+ <CopyButton @copyText ={{ token.token }} local-class =" copy-button" >
91+ <span local-class =" copy-button-label" >Copy</span >
92+ {{ svg-jar " copy" aria-hidden =" true" local-class =" copy-button-icon" }}
93+ </CopyButton >
94+ {{ /if }}
95+ </div >
9496 </div >
97+ {{ /if }}
98+
99+ <div local-class =" actions" >
100+ <button
101+ type =" button"
102+ local-class =" revoke-button"
103+ disabled ={{ token.isSaving }}
104+ data-test-revoke-token-button
105+ {{ on " click" (perform this.revokeTokenTask token )}}
106+ >
107+ Revoke
108+ </button >
109+ {{ #if token.isSaving }}
110+ <LoadingSpinner local-class =" spinner" data-test-saving-spinner />
111+ {{ /if }}
95112 </div >
96- {{ /if }}
113+ </li >
114+ {{ /each }}
115+ </ul >
116+ {{ else }}
117+ <div local-class =" empty-state" >
118+ <div local-class =" empty-state-label" >
119+ You have not generated any API tokens yet.
120+ </div >
97121
98- <div local-class =" actions" >
99- <button
100- type =" button"
101- local-class =" revoke-button"
102- disabled ={{ token.isSaving }}
103- data-test-revoke-token-button
104- {{ on " click" (perform this.revokeTokenTask token )}}
105- >
106- Revoke
107- </button >
108- {{ #if token.isSaving }}
109- <LoadingSpinner local-class =" spinner" data-test-saving-spinner />
110- {{ /if }}
111- </div >
112- </li >
113- {{ /each }}
114- </ul >
122+ <button
123+ type =" button"
124+ local-class =" empty-state-button"
125+ disabled ={{ this.newToken }}
126+ data-test-empty-state-button
127+ {{ on " click" this.startNewToken }}
128+ >
129+ New Token
130+ </button >
131+ </div >
132+ {{ /if }}
0 commit comments