diff --git a/CHANGELOG.md b/CHANGELOG.md index a9ac41b44..5220eab0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- Posts: Support posts filtering on recent Mastodon versions ### Changed diff --git a/app/soapbox/features/filters/edit-filter.tsx b/app/soapbox/features/filters/edit-filter.tsx index 207195387..4d035f8d3 100644 --- a/app/soapbox/features/filters/edit-filter.tsx +++ b/app/soapbox/features/filters/edit-filter.tsx @@ -27,7 +27,6 @@ interface IEditFilter { const messages = defineMessages({ subheading_add_new: { id: 'column.filters.subheading_add_new', defaultMessage: 'Add New Filter' }, - subheading_edit: { id: 'column.filters.subheading_edit', defaultMessage: 'Edit Filter' }, title: { id: 'column.filters.title', defaultMessage: 'Title' }, keyword: { id: 'column.filters.keyword', defaultMessage: 'Keyword or phrase' }, keywords: { id: 'column.filters.keywords', defaultMessage: 'Keywords or phrases' }, @@ -41,8 +40,6 @@ const messages = defineMessages({ drop_hint: { id: 'column.filters.drop_hint', defaultMessage: 'Filtered posts will disappear irreversibly, even if filter is later removed' }, hide_header: { id: 'column.filters.hide_header', defaultMessage: 'Hide completely' }, hide_hint: { id: 'column.filters.hide_hint', defaultMessage: 'Completely hide the filtered content, instead of showing a warning' }, - whole_word_header: { id: 'column.filters.whole_word_header', defaultMessage: 'Whole word' }, - whole_word_hint: { id: 'column.filters.whole_word_hint', defaultMessage: 'When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word' }, add_new: { id: 'column.filters.add_new', defaultMessage: 'Add New Filter' }, edit: { id: 'column.filters.edit', defaultMessage: 'Edit Filter' }, create_error: { id: 'column.filters.create_error', defaultMessage: 'Error adding filter' }, diff --git a/app/soapbox/features/filters/index.tsx b/app/soapbox/features/filters/index.tsx index 6b09eb515..46eba410b 100644 --- a/app/soapbox/features/filters/index.tsx +++ b/app/soapbox/features/filters/index.tsx @@ -3,34 +3,20 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { useHistory } from 'react-router-dom'; import { fetchFilters, deleteFilter } from 'soapbox/actions/filters'; +import RelativeTimestamp from 'soapbox/components/relative-timestamp'; import ScrollableList from 'soapbox/components/scrollable-list'; -import { Button, CardTitle, Column, HStack, Stack, Text } from 'soapbox/components/ui'; -import { useAppDispatch, useAppSelector } from 'soapbox/hooks'; +import { Button, Column, HStack, Stack, Text } from 'soapbox/components/ui'; +import { useAppDispatch, useAppSelector, useFeatures } from 'soapbox/hooks'; import toast from 'soapbox/toast'; const messages = defineMessages({ heading: { id: 'column.filters', defaultMessage: 'Muted words' }, - subheading_add_new: { id: 'column.filters.subheading_add_new', defaultMessage: 'Add New Filter' }, - title: { id: 'column.filters.title', defaultMessage: 'Title' }, - keyword: { id: 'column.filters.keyword', defaultMessage: 'Keyword or phrase' }, - keywords: { id: 'column.filters.keywords', defaultMessage: 'Keywords or phrases' }, - expires: { id: 'column.filters.expires', defaultMessage: 'Expire after' }, - expires_hint: { id: 'column.filters.expires_hint', defaultMessage: 'Expiration dates are not currently supported' }, home_timeline: { id: 'column.filters.home_timeline', defaultMessage: 'Home timeline' }, public_timeline: { id: 'column.filters.public_timeline', defaultMessage: 'Public timeline' }, notifications: { id: 'column.filters.notifications', defaultMessage: 'Notifications' }, conversations: { id: 'column.filters.conversations', defaultMessage: 'Conversations' }, accounts: { id: 'column.filters.accounts', defaultMessage: 'Accounts' }, - drop_header: { id: 'column.filters.drop_header', defaultMessage: 'Drop instead of hide' }, - drop_hint: { id: 'column.filters.drop_hint', defaultMessage: 'Filtered posts will disappear irreversibly, even if filter is later removed' }, - hide_header: { id: 'column.filters.hide_header', defaultMessage: 'Hide completely' }, - hide_hint: { id: 'column.filters.hide_hint', defaultMessage: 'Completely hide the filtered content, instead of showing a warning' }, - whole_word_header: { id: 'column.filters.whole_word_header', defaultMessage: 'Whole word' }, - whole_word_hint: { id: 'column.filters.whole_word_hint', defaultMessage: 'When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word' }, - add_new: { id: 'column.filters.add_new', defaultMessage: 'Add New Filter' }, - create_error: { id: 'column.filters.create_error', defaultMessage: 'Error adding filter' }, delete_error: { id: 'column.filters.delete_error', defaultMessage: 'Error deleting filter' }, - subheading_filters: { id: 'column.filters.subheading_filters', defaultMessage: 'Current Filters' }, edit: { id: 'column.filters.edit', defaultMessage: 'Edit' }, delete: { id: 'column.filters.delete', defaultMessage: 'Delete' }, }); @@ -47,6 +33,7 @@ const Filters = () => { const intl = useIntl(); const dispatch = useAppDispatch(); const history = useHistory(); + const { filtersV2 } = useFeatures(); const filters = useAppSelector((state) => state.filters); @@ -68,8 +55,7 @@ const Filters = () => { return ( - - +