Optimize how statuses are re-rendered and relative time intervals
This commit is contained in:
parent
6d26bfd147
commit
98c3a5e9c3
6 changed files with 91 additions and 33 deletions
|
@ -13,13 +13,47 @@ import {
|
|||
} from '../actions/interactions';
|
||||
import { deleteStatus } from '../actions/statuses';
|
||||
import { openMedia } from '../actions/modal';
|
||||
import { createSelector } from 'reselect'
|
||||
|
||||
const makeMapStateToProps = () => {
|
||||
const getStatus = makeGetStatus();
|
||||
const mapStateToProps = (state, props) => ({
|
||||
statusBase: state.getIn(['statuses', props.id]),
|
||||
me: state.getIn(['meta', 'me'])
|
||||
});
|
||||
|
||||
const mapStateToProps = (state, props) => ({
|
||||
status: getStatus(state, props.id),
|
||||
me: state.getIn(['meta', 'me'])
|
||||
const makeMapStateToPropsInner = () => {
|
||||
const getStatus = (() => {
|
||||
return createSelector(
|
||||
[
|
||||
(_, base) => base,
|
||||
(state, base) => (base ? state.getIn(['accounts', base.get('account')]) : null),
|
||||
(state, base) => (base ? state.getIn(['statuses', base.get('reblog')], null) : null)
|
||||
],
|
||||
|
||||
(base, account, reblog) => (base ? base.set('account', account).set('reblog', reblog) : null)
|
||||
);
|
||||
})();
|
||||
|
||||
const mapStateToProps = (state, { statusBase }) => ({
|
||||
status: getStatus(state, statusBase)
|
||||
});
|
||||
|
||||
return mapStateToProps;
|
||||
};
|
||||
|
||||
const makeMapStateToPropsLast = () => {
|
||||
const getStatus = (() => {
|
||||
return createSelector(
|
||||
[
|
||||
(_, status) => status,
|
||||
(state, status) => (status ? state.getIn(['accounts', status.getIn(['reblog', 'account'])], null) : null)
|
||||
],
|
||||
|
||||
(status, reblogAccount) => (status && status.get('reblog') ? status.setIn(['reblog', 'account'], reblogAccount) : status)
|
||||
);
|
||||
})();
|
||||
|
||||
const mapStateToProps = (state, { status }) => ({
|
||||
status: getStatus(state, status)
|
||||
});
|
||||
|
||||
return mapStateToProps;
|
||||
|
@ -61,4 +95,8 @@ const mapDispatchToProps = (dispatch) => ({
|
|||
|
||||
});
|
||||
|
||||
export default connect(makeMapStateToProps, mapDispatchToProps)(Status);
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(
|
||||
connect(makeMapStateToPropsInner)(
|
||||
connect(makeMapStateToPropsLast)(Status)
|
||||
)
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue