Changeset View
Changeset View
Standalone View
Standalone View
web/chat/thread-menu.react.js
// @flow | // @flow | ||||
import * as React from 'react'; | import * as React from 'react'; | ||||
import { | import { | ||||
leaveThread, | leaveThread, | ||||
leaveThreadActionTypes, | leaveThreadActionTypes, | ||||
} from 'lib/actions/thread-actions'; | } from 'lib/actions/thread-actions'; | ||||
import { useModalContext } from 'lib/components/modal-provider.react'; | import { useModalContext } from 'lib/components/modal-provider.react'; | ||||
import SWMansionIcon from 'lib/components/SWMansionIcon.react.js'; | |||||
import { usePromoteSidebar } from 'lib/hooks/promote-sidebar.react'; | import { usePromoteSidebar } from 'lib/hooks/promote-sidebar.react'; | ||||
import { childThreadInfos } from 'lib/selectors/thread-selectors'; | import { childThreadInfos } from 'lib/selectors/thread-selectors'; | ||||
import { | import { | ||||
threadHasPermission, | threadHasPermission, | ||||
viewerIsMember, | viewerIsMember, | ||||
threadIsChannel, | threadIsChannel, | ||||
} from 'lib/shared/thread-utils'; | } from 'lib/shared/thread-utils'; | ||||
import { | import { | ||||
Show All 12 Lines | |||||
import ConfirmLeaveThreadModal from '../modals/threads/confirm-leave-thread-modal.react'; | import ConfirmLeaveThreadModal from '../modals/threads/confirm-leave-thread-modal.react'; | ||||
import ComposeSubchannelModal from '../modals/threads/create/compose-subchannel-modal.react'; | import ComposeSubchannelModal from '../modals/threads/create/compose-subchannel-modal.react'; | ||||
import ThreadMembersModal from '../modals/threads/members/members-modal.react'; | import ThreadMembersModal from '../modals/threads/members/members-modal.react'; | ||||
import ThreadNotificationsModal from '../modals/threads/notifications/notifications-modal.react'; | import ThreadNotificationsModal from '../modals/threads/notifications/notifications-modal.react'; | ||||
import ThreadSettingsModal from '../modals/threads/settings/thread-settings-modal.react'; | import ThreadSettingsModal from '../modals/threads/settings/thread-settings-modal.react'; | ||||
import SidebarsModal from '../modals/threads/sidebars/sidebars-modal.react'; | import SidebarsModal from '../modals/threads/sidebars/sidebars-modal.react'; | ||||
import SubchannelsModal from '../modals/threads/subchannels/subchannels-modal.react'; | import SubchannelsModal from '../modals/threads/subchannels/subchannels-modal.react'; | ||||
import { useSelector } from '../redux/redux-utils'; | import { useSelector } from '../redux/redux-utils'; | ||||
import SWMansionIcon from '../SWMansionIcon.react'; | |||||
import css from './thread-menu.css'; | import css from './thread-menu.css'; | ||||
type ThreadMenuProps = { | type ThreadMenuProps = { | ||||
+threadInfo: ThreadInfo, | +threadInfo: ThreadInfo, | ||||
}; | }; | ||||
function ThreadMenu(props: ThreadMenuProps): React.Node { | function ThreadMenu(props: ThreadMenuProps): React.Node { | ||||
const { pushModal, popModal } = useModalContext(); | const { pushModal, popModal } = useModalContext(); | ||||
▲ Show 20 Lines • Show All 245 Lines • Show Last 20 Lines |