import React, { Component } from 'react'; import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap'; import PropTypes from 'prop-types'; import moment from 'moment'; import { siteRoot, gettext, appAvatarURL, username } from '../../utils/constants'; import ModalPortal from '../modal-portal'; import WikiDeleteDialog from '../dialog/wiki-delete-dialog'; const propTypes = { wiki: PropTypes.object.isRequired, deleteWiki: PropTypes.func.isRequired, }; class WikiCardItem extends Component { constructor(props) { super(props); this.state = { isShowDeleteDialog: false, isItemMenuShow: false, }; } onDeleteToggle = (e) => { e.preventDefault(); this.setState({ isShowDeleteDialog: !this.state.isShowDeleteDialog, }); }; onDeleteCancel = () => { this.setState({ isShowDeleteDialog: !this.state.isShowDeleteDialog, }); }; deleteWiki = () => { let wiki = this.props.wiki; this.props.deleteWiki(wiki); this.setState({ isShowDeleteDialog: !this.state.isShowDeleteDialog, }); }; clickWikiCard = (link) => { window.open(link); }; toggleDropDownMenu = () => { this.setState({isItemMenuShow: !this.state.isItemMenuShow}); }; onClickDropdown = (e) => { e.preventDefault(); e.stopPropagation(); }; renderAvatar = () => { const { wiki } = this.props; return (
{wiki.owner_nickname}/ {wiki.owner_nickname}
); }; renderDept = () => { const { wiki } = this.props; return (
{wiki.owner_nickname}
); }; render() { const { wiki } = this.props; let isOldVersion = wiki.version !== 'v2'; let publishedUrl = `${siteRoot}published/${encodeURIComponent(wiki.slug)}/`; let editUrl = `${siteRoot}wikis/${wiki.id}/`; let wikiName = isOldVersion ? `${wiki.name} (old version)` : wiki.name; return ( <>
{wikiName}
{/* {gettext('Rename')} */} {gettext('Unpublish')}
{wiki.owner === username ? this.renderAvatar() : this.renderDept()} {moment(wiki.updated_at).fromNow()}
{this.state.isShowDeleteDialog && } ); } } WikiCardItem.propTypes = propTypes; export default WikiCardItem;