import PropTypes from "prop-types"; import { Component } from "react"; import { defineMessages, injectIntl } from "react-intl"; import { Link } from "react-router-dom"; import { WordmarkLogo } from "mastodon/components/logo"; import NavigationPortal from "mastodon/components/navigation_portal"; import { timelinePreview, trendsEnabled } from "mastodon/initial_state"; import { transientSingleColumn } from "mastodon/is_mobile"; import ColumnLink from "./column_link"; import DisabledAccountBanner from "./disabled_account_banner"; import FollowRequestsColumnLink from "./follow_requests_column_link"; import ListPanel from "./list_panel"; import NotificationsCounterIcon from "./notifications_counter_icon"; import SignInBanner from "./sign_in_banner"; const messages = defineMessages({ home: { id: "tabs_bar.home", defaultMessage: "Home" }, notifications: { id: "tabs_bar.notifications", defaultMessage: "Notifications" }, explore: { id: "explore.title", defaultMessage: "Explore" }, firehose: { id: "column.firehose", defaultMessage: "Live feeds" }, direct: { id: "navigation_bar.direct", defaultMessage: "Private mentions" }, favourites: { id: "navigation_bar.favourites", defaultMessage: "Favorites" }, bookmarks: { id: "navigation_bar.bookmarks", defaultMessage: "Bookmarks" }, lists: { id: "navigation_bar.lists", defaultMessage: "Lists" }, preferences: { id: "navigation_bar.preferences", defaultMessage: "Preferences" }, followsAndFollowers: { id: "navigation_bar.follows_and_followers", defaultMessage: "Follows and followers" }, about: { id: "navigation_bar.about", defaultMessage: "About" }, search: { id: "navigation_bar.search", defaultMessage: "Search" }, advancedInterface: { id: "navigation_bar.advanced_interface", defaultMessage: "Open in advanced web interface" }, openedInClassicInterface: { id: "navigation_bar.opened_in_classic_interface", defaultMessage: "Posts, accounts, and other specific pages are opened by default in the classic web interface." }, }); class NavigationPanel extends Component { static contextTypes = { router: PropTypes.object.isRequired, identity: PropTypes.object.isRequired, }; static propTypes = { intl: PropTypes.object.isRequired, }; isFirehoseActive = (match, location) => { return match || location.pathname.startsWith("/public"); }; render () { const { intl } = this.props; const { signedIn, disabledAccountId } = this.context.identity; return (