Remove Truth Social-specific features
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
@ -30,7 +30,7 @@ const GroupPopover = (props: IGroupPopoverContainer) => {
|
||||
|
||||
const path = history.location.pathname;
|
||||
const shouldHideAction = matchPath(path, {
|
||||
path: ['/group/:groupSlug'],
|
||||
path: ['/group/:groupId'],
|
||||
exact: true,
|
||||
});
|
||||
|
||||
@ -88,7 +88,7 @@ const GroupPopover = (props: IGroupPopoverContainer) => {
|
||||
|
||||
{!shouldHideAction && (
|
||||
<div className='px-4'>
|
||||
<Link to={`/group/${group.slug}`}>
|
||||
<Link to={`/group/${group.id}`}>
|
||||
<Button type='button' theme='secondary' block>
|
||||
{intl.formatMessage(messages.action)}
|
||||
</Button>
|
||||
|
||||
@ -11,7 +11,7 @@ import { useAccount } from 'soapbox/api/hooks';
|
||||
import Account from 'soapbox/components/account';
|
||||
import { Stack, Divider, HStack, Icon, IconButton, Text } from 'soapbox/components/ui';
|
||||
import ProfileStats from 'soapbox/features/ui/components/profile-stats';
|
||||
import { useAppDispatch, useAppSelector, useGroupsPath, useFeatures } from 'soapbox/hooks';
|
||||
import { useAppDispatch, useAppSelector, useFeatures } from 'soapbox/hooks';
|
||||
import { makeGetOtherAccounts } from 'soapbox/selectors';
|
||||
|
||||
import type { List as ImmutableList } from 'immutable';
|
||||
@ -88,7 +88,6 @@ const SidebarMenu: React.FC = (): JSX.Element | null => {
|
||||
const sidebarOpen = useAppSelector((state) => state.sidebar.sidebarOpen);
|
||||
const settings = useAppSelector((state) => getSettings(state));
|
||||
const followRequestsCount = useAppSelector((state) => state.user_lists.follow_requests.items.count());
|
||||
const groupsPath = useGroupsPath();
|
||||
|
||||
const closeButtonRef = React.useRef(null);
|
||||
|
||||
@ -209,7 +208,7 @@ const SidebarMenu: React.FC = (): JSX.Element | null => {
|
||||
|
||||
{features.groups && (
|
||||
<SidebarLink
|
||||
to={groupsPath}
|
||||
to='/groups'
|
||||
icon={require('@tabler/icons/outline/circles.svg')}
|
||||
text={intl.formatMessage(messages.groups)}
|
||||
onClick={onClose}
|
||||
|
||||
@ -4,7 +4,7 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
||||
import { Stack } from 'soapbox/components/ui';
|
||||
import { useStatContext } from 'soapbox/contexts/stat-context';
|
||||
import ComposeButton from 'soapbox/features/ui/components/compose-button';
|
||||
import { useAppSelector, useGroupsPath, useFeatures, useOwnAccount, useSettings, useInstance } from 'soapbox/hooks';
|
||||
import { useAppSelector, useFeatures, useOwnAccount, useSettings, useInstance } from 'soapbox/hooks';
|
||||
|
||||
import DropdownMenu, { Menu } from './dropdown-menu';
|
||||
import SidebarNavigationLink from './sidebar-navigation-link';
|
||||
@ -26,7 +26,6 @@ const SidebarNavigation = () => {
|
||||
const features = useFeatures();
|
||||
const { isDeveloper } = useSettings();
|
||||
const { account } = useOwnAccount();
|
||||
const groupsPath = useGroupsPath();
|
||||
|
||||
const notificationCount = useAppSelector((state) => state.notifications.unread);
|
||||
const followRequestsCount = useAppSelector((state) => state.user_lists.follow_requests.items.count());
|
||||
@ -142,7 +141,7 @@ const SidebarNavigation = () => {
|
||||
|
||||
{features.groups && (
|
||||
<SidebarNavigationLink
|
||||
to={groupsPath}
|
||||
to='/groups'
|
||||
icon={require('@tabler/icons/outline/circles.svg')}
|
||||
activeIcon={require('@tabler/icons/filled/circles.svg')}
|
||||
text={<FormattedMessage id='tabs_bar.groups' defaultMessage='Groups' />}
|
||||
|
||||
@ -13,7 +13,7 @@ import { initMuteModal } from 'soapbox/actions/mutes';
|
||||
import { initReport, ReportableEntities } from 'soapbox/actions/reports';
|
||||
import { deleteStatus, editStatus, toggleMuteStatus } from 'soapbox/actions/statuses';
|
||||
import { deleteFromTimelines } from 'soapbox/actions/timelines';
|
||||
import { useBlockGroupMember, useGroup, useGroupRelationship, useMuteGroup, useUnmuteGroup } from 'soapbox/api/hooks';
|
||||
import { useBlockGroupMember, useGroup, useGroupRelationship } from 'soapbox/api/hooks';
|
||||
import { useDeleteGroupStatus } from 'soapbox/api/hooks/groups/useDeleteGroupStatus';
|
||||
import DropdownMenu from 'soapbox/components/dropdown-menu';
|
||||
import StatusActionButton from 'soapbox/components/status-action-button';
|
||||
@ -69,12 +69,7 @@ const messages = defineMessages({
|
||||
mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' },
|
||||
more: { id: 'status.more', defaultMessage: 'More' },
|
||||
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
|
||||
muteConfirm: { id: 'confirmations.mute_group.confirm', defaultMessage: 'Mute' },
|
||||
muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute Conversation' },
|
||||
muteGroup: { id: 'group.mute.long_label', defaultMessage: 'Mute Group' },
|
||||
muteHeading: { id: 'confirmations.mute_group.heading', defaultMessage: 'Mute Group' },
|
||||
muteMessage: { id: 'confirmations.mute_group.message', defaultMessage: 'You are about to mute the group. Do you want to continue?' },
|
||||
muteSuccess: { id: 'group.mute.success', defaultMessage: 'Muted the group' },
|
||||
open: { id: 'status.open', defaultMessage: 'Show Post Details' },
|
||||
pin: { id: 'status.pin', defaultMessage: 'Pin on profile' },
|
||||
pinToGroup: { id: 'status.pin_to_group', defaultMessage: 'Pin to Group' },
|
||||
@ -101,8 +96,6 @@ const messages = defineMessages({
|
||||
share: { id: 'status.share', defaultMessage: 'Share' },
|
||||
unbookmark: { id: 'status.unbookmark', defaultMessage: 'Remove bookmark' },
|
||||
unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute Conversation' },
|
||||
unmuteGroup: { id: 'group.unmute.long_label', defaultMessage: 'Unmute Group' },
|
||||
unmuteSuccess: { id: 'group.unmute.success', defaultMessage: 'Unmuted the group' },
|
||||
unpin: { id: 'status.unpin', defaultMessage: 'Unpin from profile' },
|
||||
unpinFromGroup: { id: 'status.unpin_to_group', defaultMessage: 'Unpin from Group' },
|
||||
zap: { id: 'status.zap', defaultMessage: 'Zap' },
|
||||
@ -128,12 +121,9 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||
const intl = useIntl();
|
||||
const history = useHistory();
|
||||
const dispatch = useAppDispatch();
|
||||
const match = useRouteMatch<{ groupSlug: string }>('/group/:groupSlug');
|
||||
const match = useRouteMatch<{ groupId: string }>('/group/:groupId');
|
||||
|
||||
const { group } = useGroup((status.group as Group)?.id as string);
|
||||
const muteGroup = useMuteGroup(group as Group);
|
||||
const unmuteGroup = useUnmuteGroup(group as Group);
|
||||
const isMutingGroup = !!group?.relationship?.muting;
|
||||
const deleteGroupStatus = useDeleteGroupStatus(group as Group, status.id);
|
||||
const blockGroupMember = useBlockGroupMember(group as Group, status.account);
|
||||
|
||||
@ -294,27 +284,6 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||
dispatch(initMuteModal(status.account));
|
||||
};
|
||||
|
||||
const handleMuteGroupClick: React.EventHandler<React.MouseEvent> = () =>
|
||||
dispatch(openModal('CONFIRM', {
|
||||
heading: intl.formatMessage(messages.muteHeading),
|
||||
message: intl.formatMessage(messages.muteMessage),
|
||||
confirm: intl.formatMessage(messages.muteConfirm),
|
||||
confirmationTheme: 'primary',
|
||||
onConfirm: () => muteGroup.mutate(undefined, {
|
||||
onSuccess() {
|
||||
toast.success(intl.formatMessage(messages.muteSuccess));
|
||||
},
|
||||
}),
|
||||
}));
|
||||
|
||||
const handleUnmuteGroupClick: React.EventHandler<React.MouseEvent> = () => {
|
||||
unmuteGroup.mutate(undefined, {
|
||||
onSuccess() {
|
||||
toast.success(intl.formatMessage(messages.unmuteSuccess));
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const handleBlockClick: React.EventHandler<React.MouseEvent> = (e) => {
|
||||
const account = status.account;
|
||||
|
||||
@ -542,14 +511,6 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||
}
|
||||
|
||||
menu.push(null);
|
||||
if (features.groupsMuting && status.group) {
|
||||
menu.push({
|
||||
text: isMutingGroup ? intl.formatMessage(messages.unmuteGroup) : intl.formatMessage(messages.muteGroup),
|
||||
icon: require('@tabler/icons/outline/volume-3.svg'),
|
||||
action: isMutingGroup ? handleUnmuteGroupClick : handleMuteGroupClick,
|
||||
});
|
||||
menu.push(null);
|
||||
}
|
||||
|
||||
menu.push({
|
||||
text: intl.formatMessage(messages.mute, { name: username }),
|
||||
|
||||
@ -3,7 +3,6 @@ import React, { Suspense } from 'react';
|
||||
import { openModal } from 'soapbox/actions/modals';
|
||||
import AttachmentThumbs from 'soapbox/components/attachment-thumbs';
|
||||
import PreviewCard from 'soapbox/components/preview-card';
|
||||
import { GroupLinkPreview } from 'soapbox/features/groups/components/group-link-preview';
|
||||
import PlaceholderCard from 'soapbox/features/placeholder/components/placeholder-card';
|
||||
import { MediaGallery, Video, Audio } from 'soapbox/features/ui/util/async-components';
|
||||
import { useAppDispatch } from 'soapbox/hooks';
|
||||
@ -112,10 +111,6 @@ const StatusMedia: React.FC<IStatusMedia> = ({
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
} else if (status.spoiler_text.length === 0 && !status.quote && status.card?.group) {
|
||||
media = (
|
||||
<GroupLinkPreview card={status.card} />
|
||||
);
|
||||
} else if (status.spoiler_text.length === 0 && !status.quote && status.card) {
|
||||
media = (
|
||||
<PreviewCard
|
||||
|
||||
@ -234,7 +234,7 @@ const Status: React.FC<IStatus> = (props) => {
|
||||
</Link>
|
||||
),
|
||||
group: (
|
||||
<Link to={`/group/${group.slug}`} className='hover:underline'>
|
||||
<Link to={`/group/${group.id}`} className='hover:underline'>
|
||||
<strong
|
||||
className='text-gray-800 dark:text-gray-200'
|
||||
dangerouslySetInnerHTML={{
|
||||
@ -296,7 +296,7 @@ const Status: React.FC<IStatus> = (props) => {
|
||||
defaultMessage='Posted in {group}'
|
||||
values={{
|
||||
group: (
|
||||
<Link to={`/group/${group.slug}`} className='hover:underline'>
|
||||
<Link to={`/group/${group.id}`} className='hover:underline'>
|
||||
<bdi className='truncate'>
|
||||
<strong className='text-gray-800 dark:text-gray-200'>
|
||||
<span dangerouslySetInnerHTML={{ __html: group.display_name_html }} />
|
||||
|
||||
@ -3,12 +3,11 @@ import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import ThumbNavigationLink from 'soapbox/components/thumb-navigation-link';
|
||||
import { useStatContext } from 'soapbox/contexts/stat-context';
|
||||
import { useAppSelector, useFeatures, useGroupsPath, useOwnAccount } from 'soapbox/hooks';
|
||||
import { useAppSelector, useFeatures, useOwnAccount } from 'soapbox/hooks';
|
||||
|
||||
const ThumbNavigation: React.FC = (): JSX.Element => {
|
||||
const { account } = useOwnAccount();
|
||||
const features = useFeatures();
|
||||
const groupsPath = useGroupsPath();
|
||||
|
||||
const { unreadChatsCount } = useStatContext();
|
||||
|
||||
@ -60,7 +59,7 @@ const ThumbNavigation: React.FC = (): JSX.Element => {
|
||||
src={require('@tabler/icons/outline/circles.svg')}
|
||||
activeSrc={require('@tabler/icons/filled/circles.svg')}
|
||||
text={<FormattedMessage id='tabs_bar.groups' defaultMessage='Groups' />}
|
||||
to={groupsPath}
|
||||
to='/groups'
|
||||
exact
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user