2022-10-19 20:30:59 +11:00
|
|
|
import React from 'react';
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import FeaturedTags from 'mastodon/features/account/containers/featured_tags_container';
|
2022-10-24 08:38:08 +11:00
|
|
|
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
2022-10-19 20:30:59 +11:00
|
|
|
|
|
|
|
const mapStateToProps = (state, { match: { params: { acct } } }) => {
|
2022-10-24 08:38:08 +11:00
|
|
|
const accountId = state.getIn(['accounts_map', normalizeForLookup(acct)]);
|
2022-10-19 20:30:59 +11:00
|
|
|
|
|
|
|
if (!accountId) {
|
|
|
|
return {
|
|
|
|
isLoading: true,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
accountId,
|
|
|
|
isLoading: false,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
export default @connect(mapStateToProps)
|
|
|
|
class AccountNavigation extends React.PureComponent {
|
|
|
|
|
|
|
|
static propTypes = {
|
|
|
|
match: PropTypes.shape({
|
|
|
|
params: PropTypes.shape({
|
|
|
|
acct: PropTypes.string,
|
|
|
|
tagged: PropTypes.string,
|
|
|
|
}).isRequired,
|
|
|
|
}).isRequired,
|
|
|
|
|
|
|
|
accountId: PropTypes.string,
|
|
|
|
isLoading: PropTypes.bool,
|
|
|
|
};
|
|
|
|
|
|
|
|
render () {
|
|
|
|
const { accountId, isLoading, match: { params: { tagged } } } = this.props;
|
|
|
|
|
|
|
|
if (isLoading) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<div className='flex-spacer' />
|
|
|
|
<FeaturedTags accountId={accountId} tagged={tagged} />
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|