Skip to content

Commit cc502d9

Browse files
committed
chore: Update releases UI actions
Add placeholder progressive releases bar temp Hack Next hack Another hack More of a hack Cleaning up hack
1 parent 39931c7 commit cc502d9

10 files changed

Lines changed: 114 additions & 201 deletions

File tree

static/js/publisher/pages/Releases/components/releasesConfirm.tsx

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -121,50 +121,39 @@ class ReleasesConfirm extends Component<Props, State> {
121121
ref={this.stickyBar}
122122
>
123123
<div className="u-fixed-width">
124-
<div className="row u-vertically-center p-releases-row">
125-
<div className="col-6">
126-
{updatesCount > 0 && (
127-
<>
124+
<div className="p-releases-row u-align--right p-releases-confirm__buttons">
125+
{updatesCount > 0 && (
126+
<>
127+
{!showDetails && (
128128
<button
129-
type="button"
130-
className="p-button--base u-no-margin--bottom has-icon"
131-
onClick={this.toggleDetails.bind(this)}
129+
className="p-button u-no-margin--bottom"
130+
onClick={this.onRevertClick.bind(this)}
132131
>
133-
<i
134-
className={`${
135-
showDetails
136-
? "p-icon--chevron-up"
137-
: "p-icon--chevron-down"
138-
}`}
139-
>
140-
{showDetails ? "Hide" : "Show"} details
141-
</i>
142-
<span>
143-
{updatesCount} update
144-
{updatesCount > 1 ? "s" : ""}
145-
</span>
132+
Revert
146133
</button>
147-
</>
148-
)}
149-
</div>
150-
<div className="col-6 p-releases-confirm__actions">
151-
{updatesCount > 0 && (
152-
<div
153-
className={`p-releases-confirm__details-toggle ${
154-
showDetails ? "is-open" : ""
155-
}`}
156-
></div>
157-
)}
134+
)}
135+
<button
136+
type="button"
137+
className={`p-button--${showDetails ? "base" : "positive"} u-no-margin--bottom`}
138+
onClick={this.toggleDetails.bind(this)}
139+
>
140+
{showDetails ? "Hide changes" : "Review changes"}
141+
</button>
142+
</>
143+
)}
144+
</div>
145+
{showDetails && (
146+
<>
147+
<ReleasesConfirmDetails updates={updates} />
158148
<ReleasesConfirmActions
159149
isCancelEnabled={isCancelEnabled}
160150
cancelPendingReleases={this.onRevertClick.bind(this)}
161151
isApplyEnabled={isApplyEnabled}
162152
applyPendingReleases={this.onApplyClick.bind(this)}
163153
isLoading={isLoading}
164154
/>
165-
</div>
166-
</div>
167-
{showDetails && <ReleasesConfirmDetails updates={updates} />}
155+
</>
156+
)}
168157
</div>
169158
</div>
170159
</>

static/js/publisher/pages/Releases/components/releasesConfirmActions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const ReleasesConfirmActions = ({
88
applyPendingReleases,
99
isLoading,
1010
}) => (
11-
<div className="p-releases-confirm__buttons">
11+
<div className="p-releases-confirm__buttons u-align--right">
1212
<button
1313
className="u-no-margin--bottom u-no-margin--right"
1414
disabled={!isCancelEnabled}

static/js/publisher/pages/Releases/components/releasesConfirmDetails/globalRow.js

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

static/js/publisher/pages/Releases/components/releasesConfirmDetails/index.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from "react";
1+
import { useState } from "react";
22
import { connect } from "react-redux";
33
import PropTypes from "prop-types";
44

@@ -12,12 +12,7 @@ import ProgressiveRow from "./progressiveRow";
1212
import ProgressiveRowGroup from "./progressiveRowGroup";
1313
import CloseChannelsRow from "./closeChannelsRow";
1414

15-
const ReleasesConfirmDetails = ({
16-
updates,
17-
isProgressiveReleaseEnabled,
18-
updateProgressiveReleasePercentage,
19-
}) => {
20-
const [useGlobal, setGlobal] = useState(true);
15+
const ReleasesConfirmDetails = ({ updates, isProgressiveReleaseEnabled }) => {
2116
const [globalPercentage, setGlobalPercentage] = useState(100);
2217

2318
const progressiveReleases = updates.newReleasesToProgress;
@@ -36,11 +31,6 @@ const ReleasesConfirmDetails = ({
3631
const showNewReleases = Object.keys(newReleases).length > 0;
3732
const showPendingCloses = pendingCloses.length > 0;
3833

39-
const toggleGlobal = () => {
40-
const newUseGlobal = !useGlobal;
41-
setGlobal(newUseGlobal);
42-
};
43-
4434
const updatePercentage = (percentage) => {
4535
setGlobalPercentage(percentage);
4636
updateProgressiveReleasePercentage(percentage);
@@ -51,9 +41,7 @@ const ReleasesConfirmDetails = ({
5141
{showProgressiveReleases && (
5242
<ProgressiveRowGroup
5343
releases={progressiveReleases}
54-
useGlobal={useGlobal}
5544
globalPercentage={globalPercentage}
56-
toggleGlobal={toggleGlobal}
5745
updatePercentage={updatePercentage}
5846
/>
5947
)}
@@ -92,6 +80,15 @@ const ReleasesConfirmDetails = ({
9280
/>
9381
);
9482
})}
83+
{showProgressiveReleases && (
84+
<ProgressiveRow
85+
globalPercentage={globalPercentage}
86+
type={progressiveTypes.RELEASE}
87+
release={progressiveReleases[Object.keys(progressiveReleases)[0]]}
88+
updateGlobalPercentage={updatePercentage}
89+
showChart={true}
90+
/>
91+
)}
9592
{showPendingCloses && <CloseChannelsRow channels={pendingCloses} />}
9693
</div>
9794
);

static/js/publisher/pages/Releases/components/releasesConfirmDetails/progressiveRow.js

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment } from "react";
1+
import React from "react";
22
import { connect } from "react-redux";
33
import PropTypes from "prop-types";
44

@@ -67,14 +67,14 @@ class ProgressiveRow extends React.Component {
6767
(change) => change.key === "paused",
6868
).value;
6969
progress = (
70-
<Fragment>
70+
<>
7171
<ProgressiveBar percentage={startingPercentage} />
7272
<span>{paused ? "Paused" : "Resumed"}</span>
73-
</Fragment>
73+
</>
7474
);
7575
} else {
7676
progress = (
77-
<Fragment>
77+
<>
7878
{!isInteractive && (
7979
<ProgressiveBar percentage={globalPercentage} disabled={true} />
8080
)}
@@ -102,7 +102,7 @@ class ProgressiveRow extends React.Component {
102102
</span>
103103
</span>
104104
</span>
105-
</Fragment>
105+
</>
106106
);
107107
}
108108

@@ -118,6 +118,38 @@ class ProgressiveRow extends React.Component {
118118

119119
const displayType = type.charAt(0).toUpperCase() + type.slice(1);
120120

121+
if (this.props.showChart) {
122+
return (
123+
<>
124+
{progress && (
125+
<>
126+
<span className="p-release-details-row__join">to</span>
127+
<span className="p-release-details-row__progress">
128+
{progress}
129+
</span>
130+
</>
131+
)}
132+
{!progress && showProgressiveReleases && (
133+
<>
134+
<span className="p-release-details-row__join">to</span>
135+
<span className="p-release-details-row__progress">
136+
<ProgressiveBar percentage={100} disabled={true} />
137+
<span>100% of devices</span>
138+
</span>
139+
<span className="p-release-details-row__notes">
140+
Cannot progressively release to an empty channel
141+
</span>
142+
</>
143+
)}
144+
{notes && (
145+
<span className="p-release-details-row__notes">
146+
<small>{notes}</small>
147+
</span>
148+
)}
149+
</>
150+
);
151+
}
152+
121153
return (
122154
<ReleaseRow
123155
type={displayType}
@@ -136,6 +168,7 @@ ProgressiveRow.propTypes = {
136168
globalPercentage: PropTypes.number,
137169
updateGlobalPercentage: PropTypes.func,
138170
updateProgressiveReleasePercentage: PropTypes.func,
171+
showChart: PropTypes.bool,
139172
};
140173

141174
const mapDispatchToProps = (dispatch) => {

static/js/publisher/pages/Releases/components/releasesConfirmDetails/progressiveRowGroup.js

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,31 @@
1-
import React, { Fragment } from "react";
21
import PropTypes from "prop-types";
32

43
import progressiveTypes from "./types";
54
import ProgressiveRow from "./progressiveRow";
6-
import GlobalRow from "./globalRow";
75

86
const ProgressiveRowGroup = ({
97
releases,
10-
useGlobal,
118
globalPercentage,
12-
toggleGlobal,
139
updatePercentage,
1410
}) => {
1511
return (
1612
<div className="p-release-details-group">
1713
{Object.keys(releases).map((releaseKey, index) => {
1814
if (index === 1) {
1915
return (
20-
<Fragment key="global">
21-
<GlobalRow
22-
useGlobal={useGlobal}
23-
toggleGlobal={toggleGlobal}
24-
globalPercentage={globalPercentage}
25-
/>
26-
<ProgressiveRow
27-
release={releases[releaseKey]}
28-
type={progressiveTypes.RELEASE}
29-
globalPercentage={useGlobal ? globalPercentage : null}
30-
key={releaseKey}
31-
/>
32-
</Fragment>
16+
<ProgressiveRow
17+
release={releases[releaseKey]}
18+
type={progressiveTypes.RELEASE}
19+
globalPercentage={globalPercentage}
20+
key={releaseKey}
21+
/>
3322
);
3423
}
3524
return (
3625
<ProgressiveRow
3726
release={releases[releaseKey]}
3827
type={progressiveTypes.RELEASE}
39-
globalPercentage={useGlobal ? globalPercentage : null}
28+
globalPercentage={globalPercentage}
4029
key={releaseKey}
4130
updateGlobalPercentage={index === 0 ? updatePercentage : null}
4231
/>
@@ -48,9 +37,7 @@ const ProgressiveRowGroup = ({
4837

4938
ProgressiveRowGroup.propTypes = {
5039
releases: PropTypes.object,
51-
useGlobal: PropTypes.bool,
5240
globalPercentage: PropTypes.number,
53-
toggleGlobal: PropTypes.func,
5441
updatePercentage: PropTypes.func,
5542
};
5643

static/js/publisher/pages/Releases/components/releasesConfirmDetails/releaseRow.js

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
1-
import React, { Fragment } from "react";
21
import PropTypes from "prop-types";
32

4-
import { ProgressiveBar } from "../progressiveBar";
5-
6-
const ReleaseRow = ({
7-
type,
8-
revisionInfo,
9-
channel,
10-
progress,
11-
notes,
12-
showProgressiveReleases,
13-
}) => (
3+
const ReleaseRow = ({ type, revisionInfo, channel }) => (
144
<div className="p-release-details-row">
155
<span className="p-release-details-row__type">{type}</span>
166
<span className="p-release-details-row__info">
@@ -22,29 +12,6 @@ const ReleaseRow = ({
2212
<b>{channel}</b> on <b>{revisionInfo.architectures.join(", ")}</b>
2313
</span>
2414
</span>
25-
{progress && (
26-
<Fragment>
27-
<span className="p-release-details-row__join">to</span>
28-
<span className="p-release-details-row__progress">{progress}</span>
29-
</Fragment>
30-
)}
31-
{!progress && showProgressiveReleases && (
32-
<Fragment>
33-
<span className="p-release-details-row__join">to</span>
34-
<span className="p-release-details-row__progress">
35-
<ProgressiveBar percentage={100} disabled={true} />
36-
<span>100% of devices</span>
37-
</span>
38-
<span className="p-release-details-row__notes">
39-
Cannot progressively release to an empty channel
40-
</span>
41-
</Fragment>
42-
)}
43-
{notes && (
44-
<span className="p-release-details-row__notes">
45-
<small>{notes}</small>
46-
</span>
47-
)}
4815
</div>
4916
);
5017

static/js/publisher/pages/Releases/components/releasesTable/cellViews.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ const ProgressiveTooltip = ({ revision, previousRevision }) => {
7373
<strong>{previousRevision?.revision || "Unknown"}</strong>
7474
<br />
7575
<strong>
76-
{Math.round(100 - revision?.progressive["current-percentage"])}% →{" "}
76+
{Math.round(100 - revision?.progressive?.["current-percentage"])}% →{" "}
7777
{Math.round(100 - revision?.progressive?.percentage)}%
7878
</strong>
7979
<br />
@@ -94,7 +94,7 @@ const ProgressiveTooltip = ({ revision, previousRevision }) => {
9494
<strong>{revision.revision} (progressive)</strong>
9595
<br />
9696
<strong>
97-
{Math.round(revision?.progressive["current-percentage"]) || 0}% →{" "}
97+
{Math.round(revision?.progressive?.["current-percentage"]) || 0}% →{" "}
9898
{Math.round(revision?.progressive?.percentage)}%
9999
</strong>
100100
<br />

static/sass/_snapcraft_p-release-details-row.scss

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,6 @@
2828
}
2929
}
3030

31-
&.is-global {
32-
padding: 0.25rem;
33-
34-
.p-release-details-row__global-check {
35-
grid-column-start: 4;
36-
}
37-
}
38-
3931
&__join {
4032
text-align: center;
4133
}

0 commit comments

Comments
 (0)