Skip to content

Commit 3e980fd

Browse files
committed
FinderにCopy to clipboard button追加
1 parent fb1462f commit 3e980fd

4 files changed

Lines changed: 51 additions & 8 deletions

File tree

browser/finder/FinderDetail.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,16 @@ export default class FinderDetail extends React.Component {
1111
return (
1212
<div className='FinderDetail'>
1313
<div className='header'>
14-
<ModeIcon mode={activeArticle.mode}/> {activeArticle.title}</div>
14+
<div className='left'>
15+
<ModeIcon mode={activeArticle.mode}/> {activeArticle.title}
16+
</div>
17+
<div className='right'>
18+
<button onClick={this.props.saveToClipboard} className='clipboardBtn'>
19+
<i className='fa fa-clipboard fa-fw'/>
20+
<span className='tooltip'>Copy to clipboard (Enter)</span>
21+
</button>
22+
</div>
23+
</div>
1524
<div className='content'>
1625
{activeArticle.mode === 'markdown'
1726
? <MarkdownPreview content={activeArticle.content}/>
@@ -30,5 +39,6 @@ export default class FinderDetail extends React.Component {
3039
}
3140

3241
FinderDetail.propTypes = {
33-
activeArticle: PropTypes.shape()
42+
activeArticle: PropTypes.shape(),
43+
saveToClipboard: PropTypes.func
3444
}

browser/finder/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html>
33
<head>
44

5-
<title>CodeXen Popup</title>
5+
<title>Boost Finder</title>
66
<meta charset="utf-8">
77
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
88

browser/finder/index.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,7 @@ class FinderMain extends React.Component {
4545
}
4646

4747
if (e.keyCode === 13) {
48-
let { activeArticle } = this.props
49-
clipboard.writeText(activeArticle.content)
50-
activityRecord.emit('FINDER_COPY')
51-
hideFinder()
48+
this.saveToClipboard()
5249
e.preventDefault()
5350
}
5451
if (e.keyCode === 27) {
@@ -57,6 +54,13 @@ class FinderMain extends React.Component {
5754
}
5855
}
5956

57+
saveToClipboard () {
58+
let { activeArticle } = this.props
59+
clipboard.writeText(activeArticle.content)
60+
activityRecord.emit('FINDER_COPY')
61+
hideFinder()
62+
}
63+
6064
handleSearchChange (e) {
6165
let { dispatch } = this.props
6266

@@ -83,6 +87,7 @@ class FinderMain extends React.Component {
8387

8488
render () {
8589
let { articles, activeArticle, status, dispatch } = this.props
90+
let saveToClipboard = () => this.saveToClipboard()
8691
return (
8792
<div onClick={e => this.handleClick(e)} onKeyDown={e => this.handleKeyDown(e)} className='Finder'>
8893
<FinderInput
@@ -98,7 +103,10 @@ class FinderMain extends React.Component {
98103
dispatch={dispatch}
99104
selectArticle={article => this.selectArticle(article)}
100105
/>
101-
<FinderDetail activeArticle={activeArticle}/>
106+
<FinderDetail
107+
activeArticle={activeArticle}
108+
saveToClipboard={saveToClipboard}
109+
/>
102110
</div>
103111
)
104112
}

browser/styles/finder/index.styl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,31 @@ body
7979
white-space nowrap
8080
text-overflow ellipsis
8181
overflow-x hidden
82+
clearfix()
83+
.left
84+
float left
85+
.right
86+
float right
87+
button
88+
border-radius 16.5px
89+
cursor pointer
90+
height 33px
91+
width 33px
92+
border none
93+
margin-right 5px
94+
font-size 18px
95+
color inactiveTextColor
96+
background-color transparent
97+
padding 0
98+
.tooltip
99+
tooltip()
100+
&.clipboardBtn .tooltip
101+
margin-left -160px
102+
margin-top 25px
103+
&:hover
104+
color textColor
105+
.tooltip
106+
opacity 1
82107
.content
83108
position absolute
84109
top 55px

0 commit comments

Comments
 (0)