better update announcement
This commit is contained in:
28
src/Flows.js
28
src/Flows.js
@@ -1324,6 +1324,7 @@ export class Flow extends PureComponent {
|
|||||||
}
|
}
|
||||||
this.state = {
|
this.state = {
|
||||||
submode: submode,
|
submode: submode,
|
||||||
|
announcement: null,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1347,15 +1348,23 @@ export class Flow extends PureComponent {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update_announcement(text) {
|
||||||
|
if (text !== this.state.announcement) {
|
||||||
|
this.setState({
|
||||||
|
announcement: text,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { submode } = this.state;
|
const { submode, announcement } = this.state;
|
||||||
const { mode, show_sidebar, search_text, token } = this.props;
|
const { mode, show_sidebar, search_text, token } = this.props;
|
||||||
const submode_names = this.get_submode_names(mode);
|
const submode_names = this.get_submode_names(mode);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{window.ANN && window.LAST_ANN !== window.ANN && (
|
{announcement && window.LAST_ANN !== announcement && (
|
||||||
<Announcement
|
<Announcement
|
||||||
text={window.ANN}
|
text={announcement}
|
||||||
show_pid={load_single_meta(show_sidebar, token)}
|
show_pid={load_single_meta(show_sidebar, token)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
@@ -1375,6 +1384,7 @@ export class Flow extends PureComponent {
|
|||||||
<SubFlow
|
<SubFlow
|
||||||
key={submode}
|
key={submode}
|
||||||
show_sidebar={show_sidebar}
|
show_sidebar={show_sidebar}
|
||||||
|
update_announcement={(text) => this.update_announcement(text)}
|
||||||
mode={mode}
|
mode={mode}
|
||||||
submode={submode}
|
submode={submode}
|
||||||
search_text={search_text}
|
search_text={search_text}
|
||||||
@@ -1417,7 +1427,7 @@ class SubFlow extends PureComponent {
|
|||||||
if (page > this.state.loaded_pages + 1) throw new Error('bad page');
|
if (page > this.state.loaded_pages + 1) throw new Error('bad page');
|
||||||
if (page === this.state.loaded_pages + 1) {
|
if (page === this.state.loaded_pages + 1) {
|
||||||
const { mode, search_param } = this.state;
|
const { mode, search_param } = this.state;
|
||||||
const { token, submode } = this.props;
|
const { token, submode, update_announcement } = this.props;
|
||||||
console.log('fetching page', page);
|
console.log('fetching page', page);
|
||||||
cache();
|
cache();
|
||||||
if (mode === 'list') {
|
if (mode === 'list') {
|
||||||
@@ -1444,8 +1454,8 @@ class SubFlow extends PureComponent {
|
|||||||
cache().put(x.pid, parseInt(x.reply, 10), comment_json);
|
cache().put(x.pid, parseInt(x.reply, 10), comment_json);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
window.ANN = json.announcement;
|
this.setState(
|
||||||
this.setState((prev, props) => ({
|
(prev, props) => ({
|
||||||
chunks: {
|
chunks: {
|
||||||
title: 'News Feed',
|
title: 'News Feed',
|
||||||
data: prev.chunks.data.concat(
|
data: prev.chunks.data.concat(
|
||||||
@@ -1459,7 +1469,11 @@ class SubFlow extends PureComponent {
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
loading_status: 'done',
|
loading_status: 'done',
|
||||||
}));
|
}),
|
||||||
|
() => {
|
||||||
|
update_announcement(json.announcement);
|
||||||
|
},
|
||||||
|
);
|
||||||
})
|
})
|
||||||
.catch(failed);
|
.catch(failed);
|
||||||
} else if (mode === 'search' && search_param) {
|
} else if (mode === 'search' && search_param) {
|
||||||
|
|||||||
Reference in New Issue
Block a user