Browse Source

优化导出方式

pull/6/head
hole-thu 4 years ago
parent
commit
f5f1136a1f
  1. 7
      src/Flows.css
  2. 37
      src/Flows.js
  3. 6
      yarn.lock

7
src/Flows.css

@ -312,3 +312,10 @@
padding: 0 .5em;
opacity: .4;
}
.export-textarea {
resize: none;
width: 100%;
height: 50vh;
padding: 12px;
}

37
src/Flows.js

@ -1112,6 +1112,7 @@ export class Flow extends PureComponent {
title: '',
data: [],
},
can_export: false,
export_text: '',
loading_status: 'done',
error_msg: null,
@ -1257,7 +1258,7 @@ export class Flow extends PureComponent {
},
mode: 'attention_finished',
loading_status: 'done',
export_text: json.data.map(post => `#${post.pid}`).join('\n'),
can_export: !use_search,
});
})
.catch(failed);
@ -1293,18 +1294,40 @@ export class Flow extends PureComponent {
window.removeEventListener('resize', this.on_scroll_bound);
}
trunc_string(s, max_len) {
return s.substr(0, max_len) + (
s.length > max_len ? '...' : ''
)
}
gen_export() {
this.setState({
can_export: false,
export_text: "以下是你关注的洞及摘要,复制保存到本地吧。\n\n" + this.state.chunks.data.map(
p => `#${p.pid}: ${
this.trunc_string(p.text.replaceAll('\n', ' '), 50)
}`).join('\n\n')
});
}
render() {
const should_deletion_detect = localStorage['DELETION_DETECT'] === 'on';
return (
<div className="flow-container">
{this.state.can_export && (
<button type="button" onClick={this.gen_export.bind(this)}>导出</button>
)}
{this.state.export_text && (
<button type="button" onClick={() => {
if (copy(this.state.export_text))
alert('导出成功,已复制到剪切板');
}}>
导出
</button>
<div className="box">
<textarea
className="export-textarea"
value={this.state.export_text}
readOnly
/>
</div>
)}
<FlowChunk
title={this.state.chunks.title}
list={this.state.chunks.data}

6
yarn.lock

@ -2715,9 +2715,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111:
version "1.0.30001122"
resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001122.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001122.tgz#2c8ff631330d986a07a7ba7125cce77a1373b475"
integrity sha1-LI/2MTMNmGoHp7pxJcznehNztHU=
version "1.0.30001286"
resolved "https://registry.npmmirror.com/caniuse-lite/download/caniuse-lite-1.0.30001286.tgz"
integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==
capture-exit@^2.0.0:
version "2.0.0"

Loading…
Cancel
Save