Files
flipper/src/ui/components/Link.js
Daniel Büchele 726966fdc0 convert to emotion
Summary:
My benchmarks have shown react-emotion to be faster than the current implementation of `styled`. For this reason, I am converting all styling to [emotion](https://emotion.sh).

Benchmark results:
{F136839093}

The syntax is very similar between the two libraries. The main difference is that emotion only allows a single function for the whole style attribute, whereas the old implementation had functions for every style-attirbute.

Before:
```
{
  color: props => props.color,
  fontSize: props => props.size,
}
```

After:
```
props => ({
  color: props.color,
  fontSize: props.size,
})
```

Reviewed By: jknoxville

Differential Revision: D9479893

fbshipit-source-id: 2c39e4618f7e52ceacb67bbec8ae26114025723f
2018-08-23 09:42:18 -07:00

35 lines
743 B
JavaScript

/**
* Copyright 2018-present Facebook.
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @format
*/
import styled from '../styled/index.js';
import {colors} from './colors.js';
import {Component} from 'react';
import {shell} from 'electron';
const StyledLink = styled('span')({
color: colors.highlight,
'&:hover': {
cursor: 'pointer',
textDecoration: 'underline',
},
});
export default class Link extends Component<{
href: string,
children?: React$Node,
}> {
onClick = () => {
shell.openExternal(this.props.href);
};
render() {
return (
<StyledLink onClick={this.onClick}>{this.props.children}</StyledLink>
);
}
}