Use a consumer for identity

This commit is contained in:
Essem 2024-03-14 20:51:15 -05:00 committed by Jeremy Kescher
parent 21a23b58ab
commit 327da54e23
No known key found for this signature in database
GPG key ID: 80A419A7A613DFA4
2 changed files with 29 additions and 8 deletions

View file

@ -20,6 +20,7 @@ import Card from '../features/status/components/card';
// to use the progress bar to show download progress // to use the progress bar to show download progress
import Bundle from '../features/ui/components/bundle'; import Bundle from '../features/ui/components/bundle';
import { MediaGallery, Video, Audio } from '../features/ui/util/async-components'; import { MediaGallery, Video, Audio } from '../features/ui/util/async-components';
import { IdentityConsumer } from '../features/ui/util/identity_consumer';
import { SensitiveMediaContext } from '../features/ui/util/sensitive_media_context'; import { SensitiveMediaContext } from '../features/ui/util/sensitive_media_context';
import { displayMedia, visibleReactions } from '../initial_state'; import { displayMedia, visibleReactions } from '../initial_state';
@ -845,14 +846,18 @@ class Status extends ImmutablePureComponent {
{...statusContentProps} {...statusContentProps}
/> />
<StatusReactions <IdentityConsumer>
statusId={status.get('id')} {identity => (
reactions={status.get('reactions')} <StatusReactions
numVisible={visibleReactions} statusId={status.get('id')}
addReaction={this.props.onReactionAdd} reactions={status.get('reactions')}
removeReaction={this.props.onReactionRemove} numVisible={visibleReactions}
canReact={this.context.identity.signedIn} addReaction={this.props.onReactionAdd}
/> removeReaction={this.props.onReactionRemove}
canReact={identity.signedIn}
/>
)}
</IdentityConsumer>
{(!isCollapsed || !(muted || !settings.getIn(['collapsed', 'show_action_bar']))) && ( {(!isCollapsed || !(muted || !settings.getIn(['collapsed', 'show_action_bar']))) && (
<StatusActionBar <StatusActionBar

View file

@ -0,0 +1,16 @@
import PropTypes from 'prop-types';
import { PureComponent } from 'react';
export class IdentityConsumer extends PureComponent {
static contextTypes = {
identity: PropTypes.object
};
static propTypes = {
children: PropTypes.func.isRequired
};
render() {
return this.props.children(this.context.identity);
}
}