Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed position of EuiCodeBlock controls #2459

Merged
merged 13 commits into from
Oct 25, 2019
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
**Bug fixes**

- Reenabled `width` property for `EuiTable` cell components ([#2452](https://github.com/elastic/eui/pull/2452))
- Fixed position of `EuiCodeBlock` controls and added more tests ([#2459](https://github.com/elastic/eui/pull/2459))

## [`14.6.0`](https://github.com/elastic/eui/tree/v14.6.0)

Expand Down
24 changes: 19 additions & 5 deletions src-docs/src/views/code/code_block.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,36 @@ const htmlCode = `<!--I'm an example of HTML-->
</div>
`;

const jsCode = require('!!raw-loader!./code_block');
// const jsCode = require('!!raw-loader!./code_block');

export default () => (
<div>
<EuiCodeBlock language="html">{htmlCode}</EuiCodeBlock>

<EuiSpacer />

<EuiCodeBlock language="js" fontSize="m" paddingSize="none" isCopyable>
{htmlCode}
</EuiCodeBlock>
<EuiSpacer />

<EuiCodeBlock language="js" fontSize="m" paddingSize="s" isCopyable>
{htmlCode}
</EuiCodeBlock>
<EuiSpacer />

<EuiCodeBlock language="js" fontSize="m" paddingSize="m" isCopyable>
{htmlCode}
</EuiCodeBlock>
<EuiSpacer />

<EuiCodeBlock
language="js"
language="html"
fontSize="m"
paddingSize="m"
color="dark"
paddingSize="l"
overflowHeight={300}
isCopyable>
{jsCode}
{htmlCode}
</EuiCodeBlock>

<EuiSpacer />
Expand Down
251 changes: 251 additions & 0 deletions src/components/code/__snapshots__/code_block.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,5 +1,256 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`EuiCodeBlock props fontSize l is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontLarge euiCodeBlock--paddingLarge"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props fontSize m is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontMedium euiCodeBlock--paddingLarge"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props fontSize s is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props inline is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props isCopyable is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge euiCodeBlock--hasControls"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
<div
class="euiCodeBlock__controls"
>
<div
class="euiCodeBlock__copyButton"
>
<span
class="euiToolTipAnchor"
>
<button
aria-label="Copy"
class="euiButtonIcon euiButtonIcon--text"
type="button"
>
<svg
aria-hidden="true"
class="euiIcon euiIcon--medium euiIcon-isLoading euiButtonIcon__icon"
focusable="false"
height="16"
viewBox="0 0 16 16"
width="16"
xmlns="http://www.w3.org/2000/svg"
/>
</button>
</span>
</div>
</div>
</div>
`;

exports[`EuiCodeBlock props language is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code html"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props overflowHeight is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge euiCodeBlock--hasControls"
style="height:200px"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
<div
class="euiCodeBlock__controls"
>
<button
aria-label="Expand"
class="euiButtonIcon euiButtonIcon--text euiCodeBlock__fullScreenButton"
type="button"
>
<svg
aria-hidden="true"
class="euiIcon euiIcon--medium euiIcon-isLoading euiButtonIcon__icon"
focusable="false"
height="16"
viewBox="0 0 16 16"
width="16"
xmlns="http://www.w3.org/2000/svg"
/>
</button>
</div>
</div>
`;

exports[`EuiCodeBlock props paddingSize l is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props paddingSize m is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingMedium"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props paddingSize none is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props paddingSize s is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingSmall"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock props transparentBackground is rendered 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge euiCodeBlock--transparentBackground"
>
<pre
class="euiCodeBlock__pre"
>
<code
class="euiCodeBlock__code"
>
var some = 'code';
console.log(some);
</code>
</pre>
</div>
`;

exports[`EuiCodeBlock renders a code block 1`] = `
<div
class="euiCodeBlock euiCodeBlock--fontSmall euiCodeBlock--paddingLarge testClass1 testClass2"
Expand Down
2 changes: 1 addition & 1 deletion src/components/code/_code_block.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ export class EuiCodeBlockImpl extends Component {
{
'euiCodeBlock--transparentBackground': transparentBackground,
'euiCodeBlock--inline': inline,
'euiCodeBlock-isCopyable': isCopyable,
'euiCodeBlock--hasControls': isCopyable || overflowHeight,
},
className
);
Expand Down
Loading