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

node cover display

This commit is contained in:
Fedor Katurov 2019-10-22 15:49:04 +07:00
parent c8593b7e7a
commit ad0b9e6a28
9 changed files with 94 additions and 7 deletions

View file

@ -14,18 +14,22 @@ import { URLS } from '~/constants/urls';
import { Modal } from '~/containers/dialogs/Modal';
import { selectModal } from '~/redux/modal/selectors';
import { BlurWrapper } from '~/components/containers/BlurWrapper';
import { PageCover } from '~/components/containers/PageCover';
import { NodeLayout } from './node/NodeLayout';
import { BottomContainer } from '~/containers/main/BottomContainer';
const mapStateToProps = selectModal;
const mapStateToProps = state => ({
modal: selectModal(state),
});
const mapDispatchToProps = {};
type IProps = typeof mapDispatchToProps & ReturnType<typeof mapStateToProps> & {};
const Component: FC<IProps> = ({ is_shown }) => (
const Component: FC<IProps> = ({ modal: { is_shown } }) => (
<ConnectedRouter history={history}>
<div>
<BlurWrapper is_blurred={is_shown}>
<PageCover />
<MainLayout>
<Modal />
<Sprites />

View file

@ -26,6 +26,7 @@ const mapStateToProps = state => ({
const mapDispatchToProps = {
nodeLoadNode: NODE_ACTIONS.nodeLoadNode,
nodeUpdateTags: NODE_ACTIONS.nodeUpdateTags,
nodeSetCoverImage: NODE_ACTIONS.nodeSetCoverImage,
nodeEdit: NODE_ACTIONS.nodeEdit,
nodeLike: NODE_ACTIONS.nodeLike,
};
@ -38,13 +39,14 @@ const NodeLayoutUnconnected: FC<IProps> = ({
match: {
params: { id },
},
node: { is_loading, is_loading_comments, comments = [], current: node },
node: { is_loading, is_loading_comments, comments = [], current: node, current_cover_image },
user,
user: { is_user, role },
user: { is_user },
nodeLoadNode,
nodeUpdateTags,
nodeEdit,
nodeLike,
nodeSetCoverImage,
}) => {
const [layout, setLayout] = useState({});
@ -71,6 +73,12 @@ const NodeLayoutUnconnected: FC<IProps> = ({
const onEdit = useCallback(() => nodeEdit(node.id), [nodeEdit, node]);
const onLike = useCallback(() => nodeLike(node.id), [nodeLike, node]);
useEffect(() => {
if (!node.cover) return;
nodeSetCoverImage(node.cover);
return () => nodeSetCoverImage(null);
}, [nodeSetCoverImage, node.cover]);
return (
<Card className={styles.node} seamless>
{block && createElement(block, { node, is_loading, updateLayout, layout })}