|
|
@ -517,6 +517,27 @@ class FlowSidebar extends PureComponent { |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
toggle_notification() { |
|
|
|
|
|
|
|
console.log('set notifi'); |
|
|
|
|
|
|
|
get_push_subscription().then((sc) => { |
|
|
|
|
|
|
|
if (!sc) { |
|
|
|
|
|
|
|
alert('浏览器不支持消息推送,或无法连接到推送服务'); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
let sc_data = JSON.parse(JSON.stringify(sc)); |
|
|
|
|
|
|
|
API.set_notification( |
|
|
|
|
|
|
|
this.state.info.pid, |
|
|
|
|
|
|
|
true, |
|
|
|
|
|
|
|
sc_data.endpoint, |
|
|
|
|
|
|
|
sc_data.keys.auth, |
|
|
|
|
|
|
|
sc_data.keys.p256dh, |
|
|
|
|
|
|
|
this.props.token, |
|
|
|
|
|
|
|
).then((json) => { |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
do_vote(vote) { |
|
|
|
do_vote(vote) { |
|
|
|
this.setState({ |
|
|
|
this.setState({ |
|
|
|
loading_status: 'loading', |
|
|
|
loading_status: 'loading', |
|
|
@ -730,12 +751,7 @@ class FlowSidebar extends PureComponent { |
|
|
|
{!!this.props.token && ( |
|
|
|
{!!this.props.token && ( |
|
|
|
<span> |
|
|
|
<span> |
|
|
|
|
|
|
|
|
|
|
|
<a |
|
|
|
<a href="###" onClick={() => this.toggle_attention()}> |
|
|
|
href="###" |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
this.toggle_attention(); |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
{this.state.attention ? ( |
|
|
|
{this.state.attention ? ( |
|
|
|
<span> |
|
|
|
<span> |
|
|
|
<span className="icon icon-star-ok" /> |
|
|
|
<span className="icon icon-star-ok" /> |
|
|
@ -752,24 +768,12 @@ class FlowSidebar extends PureComponent { |
|
|
|
)} |
|
|
|
)} |
|
|
|
{!!this.props.token && !!this.state.attention && ( |
|
|
|
{!!this.props.token && !!this.state.attention && ( |
|
|
|
<span> |
|
|
|
<span> |
|
|
|
<a |
|
|
|
|
|
|
|
href="###" |
|
|
|
<a href="###" onClick={() => this.toggle_notification()}> |
|
|
|
style={{ display: 'none' }} |
|
|
|
<span> |
|
|
|
onClick={() => { |
|
|
|
<span className="icon icon-star" /> |
|
|
|
console.log('set notifi'); |
|
|
|
<label>提醒</label> |
|
|
|
get_push_subscription().then((sc) => { |
|
|
|
</span> |
|
|
|
if (!sc) return; |
|
|
|
|
|
|
|
fetch('/_test', { |
|
|
|
|
|
|
|
method: 'POST', |
|
|
|
|
|
|
|
headers: { |
|
|
|
|
|
|
|
'Content-Type': 'application/json', |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
body: JSON.stringify(sc), |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<span className="icon icon-star">提醒</span> |
|
|
|
|
|
|
|
</a> |
|
|
|
</a> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
)} |
|
|
|
)} |
|
|
|