Skip to content

Commit

Permalink
fix(ui): change copy to clipboard button location (#9111)
Browse files Browse the repository at this point in the history
Refs #8465
Refs #8153
Refs #8131
  • Loading branch information
char0n authored Aug 16, 2023
1 parent 75eecd4 commit 377b54a
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 111 deletions.
17 changes: 9 additions & 8 deletions src/core/components/operation-summary.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,8 @@ export default class OperationSummary extends PureComponent {
}

{displayOperationId && (originalOperationId || operationId) ? <span className="opblock-summary-operation-id">{originalOperationId || operationId}</span> : null}

{isShown ? <ArrowUpIcon className="arrow" /> : <ArrowDownIcon className="arrow" />}

</button>

<CopyToClipboardBtn textToCopy={`${specPath.get(1)}`} />
{
allowAnonymous ? null :
<AuthorizeOperationBtn
Expand All @@ -98,12 +95,16 @@ export default class OperationSummary extends PureComponent {
}}
/>
}
<CopyToClipboardBtn
textToCopy={`${specPath.get(1)}`}
/>
<button
aria-label={`${method} ${path.replace(/\//g, "\u200b/")}`}
className="opblock-control-arrow"
aria-expanded={isShown}
tabIndex="-1"
onClick={toggleShown}>
{isShown ? <ArrowUpIcon className="arrow" /> : <ArrowDownIcon className="arrow" />}
</button>
<JumpToPath path={specPath} />{/* TODO: use wrapComponents here, swagger-ui doesn't care about jumpToPath */}
</div>
)

}
}
212 changes: 112 additions & 100 deletions src/style/_buttons.scss
Original file line number Diff line number Diff line change
@@ -1,113 +1,113 @@
.btn
{
font-size: 14px;
font-weight: bold;
font-size: 14px;
font-weight: bold;

padding: 5px 23px;
padding: 5px 23px;

transition: all .3s;

border: 2px solid $btn-border-color;
border-radius: 4px;
background: transparent;
box-shadow: 0 1px 2px rgba($btn-box-shadow-color,.1);
transition: all .3s;

@include text_headline();
border: 2px solid $btn-border-color;
border-radius: 4px;
background: transparent;
box-shadow: 0 1px 2px rgba($btn-box-shadow-color,.1);

&.btn-sm
{
font-size: 12px;
padding: 4px 23px;
}
@include text_headline();

&[disabled]
{
cursor: not-allowed;
&.btn-sm
{
font-size: 12px;
padding: 4px 23px;
}

opacity: .3;
}
&[disabled]
{
cursor: not-allowed;

&:hover
{
box-shadow: 0 0 5px rgba($btn-box-shadow-color,.3);
}
opacity: .3;
}

&.cancel
{
border-color: $btn-cancel-border-color;
background-color: $btn-cancel-background-color;
@include text_headline($btn-cancel-font-color);
}
&:hover
{
box-shadow: 0 0 5px rgba($btn-box-shadow-color,.3);
}

&.authorize
{
line-height: 1;
&.cancel
{
border-color: $btn-cancel-border-color;
background-color: $btn-cancel-background-color;
@include text_headline($btn-cancel-font-color);
}

display: inline;
&.authorize
{
line-height: 1;

color: $btn-authorize-font-color;
border-color: $btn-authorize-border-color;
background-color: $btn-authorize-background-color;
display: inline;

span
{
float: left;
color: $btn-authorize-font-color;
border-color: $btn-authorize-border-color;
background-color: $btn-authorize-background-color;

padding: 4px 20px 0 0;
}
span
{
float: left;

svg
{
fill: $btn-authorize-svg-fill-color;
}
padding: 4px 20px 0 0;
}

&.execute
svg
{
background-color: $btn-execute-background-color-alt;
color: $btn-execute-font-color;
border-color: $btn-execute-border-color;
fill: $btn-authorize-svg-fill-color;
}
}

&.execute
{
background-color: $btn-execute-background-color-alt;
color: $btn-execute-font-color;
border-color: $btn-execute-border-color;
}
}

.btn-group
{
display: flex;
display: flex;

padding: 30px;
padding: 30px;

.btn
{
flex: 1;
.btn
{
flex: 1;

&:first-child
{
border-radius: 4px 0 0 4px;
}
&:first-child
{
border-radius: 4px 0 0 4px;
}

&:last-child
{
border-radius: 0 4px 4px 0;
}
&:last-child
{
border-radius: 0 4px 4px 0;
}
}
}

.authorization__btn
{
padding: 0 0 0 10px;
padding: 0 0 0 10px;

border: none;
background: none;
border: none;
background: none;

.locked
{
opacity: 1;
}
.locked
{
opacity: 1;
}

.unlocked
{
opacity: .4;
}
.unlocked
{
opacity: .4;
}
}

.opblock-summary-control,
Expand All @@ -128,44 +128,44 @@
.expand-methods,
.expand-operation
{
border: none;
background: none;
border: none;
background: none;

svg
{
width: 20px;
height: 20px;
}
svg
{
width: 20px;
height: 20px;
}
}

.expand-methods
{
padding: 0 10px;
padding: 0 10px;

&:hover
&:hover
{
svg
{
svg
{
fill: $expand-methods-svg-fill-color-hover;
}
fill: $expand-methods-svg-fill-color-hover;
}
}

svg
{
transition: all .3s;
svg
{
transition: all .3s;

fill: $expand-methods-svg-fill-color;
}
fill: $expand-methods-svg-fill-color;
}
}

button
{
cursor: pointer;
cursor: pointer;

&.invalid
{
@include invalidFormElement();
}
&.invalid
{
@include invalidFormElement();
}
}

.copy-to-clipboard
Expand All @@ -192,6 +192,18 @@ button
}
}

.copy-to-clipboard:active
{
background: #5e626f;
}

.opblock-control-arrow
{
border: none;
text-align: center;
background: none;
}

// overrides for smaller copy button for curl command
.curl-command .copy-to-clipboard
{
Expand All @@ -209,6 +221,6 @@ button
// overrides for copy to clipboard button
.opblock .opblock-summary .view-line-link.copy-to-clipboard
{
height: 26px;
position: unset;
}
height: 26px;
position: unset;
}
6 changes: 3 additions & 3 deletions test/e2e-cypress/e2e/features/external-docs.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ function ExternalDocsTest(baseUrl) {
.and("have.attr", "href", "http://swagger.io")
})
})

describe("for Tags", () => {
it("should display link to external docs with description", () => {
cy.visit(baseUrl)
Expand Down Expand Up @@ -87,7 +87,7 @@ function ExternalDocsTest(baseUrl) {
describe("for Operation", () => {
it("should display link to external docs with description", () => {
cy.visit(baseUrl)
.get("#operations-pet-updatePet button")
.get("#operations-pet-updatePet button.opblock-summary-control")
.click()
.get("#operations-pet-updatePet .opblock-external-docs-wrapper .opblock-external-docs__description")
.should("contain.text", "More details about putting a pet")
Expand All @@ -97,7 +97,7 @@ function ExternalDocsTest(baseUrl) {

it("should display link to external docs without description", () => {
cy.visit(baseUrl)
.get("#operations-pet-addPet button")
.get("#operations-pet-addPet button.opblock-summary-control")
.click()
.get("#operations-pet-addPet .opblock-external-docs-wrapper .opblock-external-docs__description")
.should("not.exist")
Expand Down

0 comments on commit 377b54a

Please sign in to comment.