1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 12:56:41 +07:00

fetching messages for user

This commit is contained in:
Fedor Katurov 2019-11-12 09:58:47 +07:00
parent 54687b131c
commit e45dee3c9f
12 changed files with 103 additions and 17 deletions

View file

@ -7,6 +7,7 @@ import { connect } from 'react-redux';
import { selectAuthProfile } from '~/redux/auth/selectors';
import { NodeNoComments } from '~/components/node/NodeNoComments';
import { CommentForm } from '~/components/node/CommentForm';
import { ProfileMessages } from '~/containers/profile/ProfileMessages';
const mapStateToProps = selectAuthProfile;
const mapDispatchToProps = {};
@ -16,14 +17,9 @@ type IProps = IDialogProps & ReturnType<typeof mapStateToProps> & {};
const ProfileDialogUnconnected: FC<IProps> = ({ onRequestClose, is_loading, user }) => (
<BetterScrollDialog
header={<ProfileInfo is_loading={is_loading} user={user} />}
footer={<CommentForm id="0" />}
onClose={onRequestClose}
>
<div className={styles.messages}>
<NodeNoComments />
<NodeNoComments />
<NodeNoComments />
</div>
<ProfileMessages />
</BetterScrollDialog>
);

View file

@ -0,0 +1,36 @@
import React, { FC, useEffect } from 'react';
import { connect } from 'react-redux';
import { selectAuthProfile } from '~/redux/auth/selectors';
import { NodeNoComments } from '~/components/node/NodeNoComments';
import styles from './styles.scss';
import * as AUTH_ACTIONS from '~/redux/auth/actions';
const mapStateToProps = state => ({ profile: selectAuthProfile(state) });
const mapDispatchToProps = {
authGetMessages: AUTH_ACTIONS.authGetMessages,
};
type IProps = ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps & {};
const ProfileMessagesUnconnected: FC<IProps> = ({ profile, authGetMessages }) => {
useEffect(() => {
if (profile.is_loading || !profile.user || !profile.user.username) return;
authGetMessages(profile.user.username);
}, [profile.user]);
return (
<div className={styles.messages}>
{profile.messages.map(message => (
<div key={message.id}>{message.text}</div>
))}
</div>
);
};
const ProfileMessages = connect(
mapStateToProps,
mapDispatchToProps
)(ProfileMessagesUnconnected);
export { ProfileMessages };