Merge commit 'e1dbbf6c9db6dbf3f356dae4c59fa05299372370' into glitch-soc/merge-upstream
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
import type { AxiosResponse, Method, RawAxiosRequestHeaders } from 'axios';
|
||||
import type {
|
||||
AxiosError,
|
||||
AxiosResponse,
|
||||
Method,
|
||||
RawAxiosRequestHeaders,
|
||||
} from 'axios';
|
||||
import axios from 'axios';
|
||||
import LinkHeader from 'http-link-header';
|
||||
|
||||
@@ -41,7 +46,7 @@ const authorizationTokenFromInitialState = (): RawAxiosRequestHeaders => {
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default function api(withAuthorization = true) {
|
||||
return axios.create({
|
||||
const instance = axios.create({
|
||||
transitional: {
|
||||
clarifyTimeoutError: true,
|
||||
},
|
||||
@@ -60,6 +65,22 @@ export default function api(withAuthorization = true) {
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
instance.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
if (response.headers.deprecation) {
|
||||
console.warn(
|
||||
`Deprecated request: ${response.config.method} ${response.config.url}`,
|
||||
);
|
||||
}
|
||||
return response;
|
||||
},
|
||||
(error: AxiosError) => {
|
||||
return Promise.reject(error);
|
||||
},
|
||||
);
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
type RequestParamsOrData = Record<string, unknown>;
|
||||
|
||||
@@ -99,6 +99,7 @@ class Bookmarks extends ImmutablePureComponent {
|
||||
onLoadMore={this.handleLoadMore}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
timelineId='bookmarks'
|
||||
/>
|
||||
|
||||
<Helmet>
|
||||
|
||||
@@ -99,6 +99,7 @@ class Favourites extends ImmutablePureComponent {
|
||||
onLoadMore={this.handleLoadMore}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
timelineId='favourites'
|
||||
/>
|
||||
|
||||
<Helmet>
|
||||
|
||||
@@ -15,6 +15,7 @@ import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?re
|
||||
import { AnimatedNumber } from 'mastodon/components/animated_number';
|
||||
import { ContentWarning } from 'mastodon/components/content_warning';
|
||||
import EditedTimestamp from 'mastodon/components/edited_timestamp';
|
||||
import { FilterWarning } from 'mastodon/components/filter_warning';
|
||||
import type { StatusLike } from 'mastodon/components/hashtag_bar';
|
||||
import { getHashtagBarForStatus } from 'mastodon/components/hashtag_bar';
|
||||
import { Icon } from 'mastodon/components/icon';
|
||||
@@ -70,6 +71,7 @@ export const DetailedStatus: React.FC<{
|
||||
}) => {
|
||||
const properStatus = status?.get('reblog') ?? status;
|
||||
const [height, setHeight] = useState(0);
|
||||
const [showDespiteFilter, setShowDespiteFilter] = useState(false);
|
||||
const nodeRef = useRef<HTMLDivElement>();
|
||||
|
||||
const handleOpenVideo = useCallback(
|
||||
@@ -82,6 +84,10 @@ export const DetailedStatus: React.FC<{
|
||||
[onOpenVideo, status],
|
||||
);
|
||||
|
||||
const handleFilterToggle = useCallback(() => {
|
||||
setShowDespiteFilter(!showDespiteFilter);
|
||||
}, [showDespiteFilter, setShowDespiteFilter]);
|
||||
|
||||
const handleExpandedToggle = useCallback(() => {
|
||||
if (onToggleHidden) onToggleHidden(status);
|
||||
}, [onToggleHidden, status]);
|
||||
@@ -292,8 +298,12 @@ export const DetailedStatus: React.FC<{
|
||||
const { statusContentProps, hashtagBar } = getHashtagBarForStatus(
|
||||
status as StatusLike,
|
||||
);
|
||||
|
||||
const matchedFilters = status.get('matched_filters');
|
||||
|
||||
const expanded =
|
||||
!status.get('hidden') || status.get('spoiler_text').length === 0;
|
||||
(!matchedFilters || showDespiteFilter) &&
|
||||
(!status.get('hidden') || status.get('spoiler_text').length === 0);
|
||||
|
||||
return (
|
||||
<div style={outerStyle}>
|
||||
@@ -334,17 +344,26 @@ export const DetailedStatus: React.FC<{
|
||||
)}
|
||||
</Link>
|
||||
|
||||
{status.get('spoiler_text').length > 0 && (
|
||||
<ContentWarning
|
||||
text={
|
||||
status.getIn(['translation', 'spoilerHtml']) ||
|
||||
status.get('spoilerHtml')
|
||||
}
|
||||
expanded={expanded}
|
||||
onClick={handleExpandedToggle}
|
||||
{matchedFilters && (
|
||||
<FilterWarning
|
||||
title={matchedFilters.join(', ')}
|
||||
expanded={showDespiteFilter}
|
||||
onClick={handleFilterToggle}
|
||||
/>
|
||||
)}
|
||||
|
||||
{status.get('spoiler_text').length > 0 &&
|
||||
(!matchedFilters || showDespiteFilter) && (
|
||||
<ContentWarning
|
||||
text={
|
||||
status.getIn(['translation', 'spoilerHtml']) ||
|
||||
status.get('spoilerHtml')
|
||||
}
|
||||
expanded={expanded}
|
||||
onClick={handleExpandedToggle}
|
||||
/>
|
||||
)}
|
||||
|
||||
{expanded && (
|
||||
<>
|
||||
<StatusContent
|
||||
|
||||
@@ -138,7 +138,7 @@ const makeMapStateToProps = () => {
|
||||
});
|
||||
|
||||
const mapStateToProps = (state, props) => {
|
||||
const status = getStatus(state, { id: props.params.statusId });
|
||||
const status = getStatus(state, { id: props.params.statusId, contextType: 'detailed' });
|
||||
|
||||
let ancestorsIds = ImmutableList();
|
||||
let descendantsIds = ImmutableList();
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "nejpoužívanější hashtag",
|
||||
"annual_report.summary.most_used_hashtag.none": "Žádné",
|
||||
"annual_report.summary.new_posts.new_posts": "nové příspěvky",
|
||||
"annual_report.summary.percentile.text": "<topLabel>To vás umisťuje do vrcholu</topLabel><percentage></percentage><bottomLabel>{domain} uživatelů.</bottomLabel>",
|
||||
"annual_report.summary.percentile.text": "<topLabel>To vás umisťuje do horních</topLabel><percentage></percentage><bottomLabel> uživatelů domény {domain}.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "To, že jste zdejší smetánka, zůstane mezi námi ;).",
|
||||
"annual_report.summary.thanks": "Děkujeme, že jste součástí Mastodonu!",
|
||||
"attachments_list.unprocessed": "(nezpracováno)",
|
||||
|
||||
@@ -6,20 +6,20 @@
|
||||
"account.badges.group": "ჯგუფი",
|
||||
"account.block": "დაბლოკე @{name}",
|
||||
"account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}",
|
||||
"account.blocked": "დაიბლოკა",
|
||||
"account.blocked": "დაბლოკილია",
|
||||
"account.cancel_follow_request": "Withdraw follow request",
|
||||
"account.domain_blocked": "დომენი დამალულია",
|
||||
"account.edit_profile": "პროფილის ცვლილება",
|
||||
"account.endorse": "გამორჩევა პროფილზე",
|
||||
"account.featured_tags.last_status_never": "პოსტები არ არის",
|
||||
"account.featured_tags.last_status_never": "პოსტების გარეშე",
|
||||
"account.follow": "გაყოლა",
|
||||
"account.followers": "მიმდევრები",
|
||||
"account.hide_reblogs": "დაიმალოს ბუსტები @{name}-სგან",
|
||||
"account.media": "მედია",
|
||||
"account.mention": "ასახელეთ @{name}",
|
||||
"account.mute": "გააჩუმე @{name}",
|
||||
"account.muted": "გაჩუმებული",
|
||||
"account.posts": "ტუტები",
|
||||
"account.muted": "დადუმებულია",
|
||||
"account.posts": "პოსტები",
|
||||
"account.posts_with_replies": "ტუტები და პასუხები",
|
||||
"account.report": "დაარეპორტე @{name}",
|
||||
"account.requested": "დამტკიცების მოლოდინში. დააწკაპუნეთ რომ უარყოთ დადევნების მოთხონვა",
|
||||
@@ -42,7 +42,7 @@
|
||||
"column.community": "ლოკალური თაიმლაინი",
|
||||
"column.domain_blocks": "დამალული დომენები",
|
||||
"column.follow_requests": "დადევნების მოთხოვნები",
|
||||
"column.home": "სახლი",
|
||||
"column.home": "საწყისი",
|
||||
"column.lists": "სიები",
|
||||
"column.mutes": "გაჩუმებული მომხმარებლები",
|
||||
"column.notifications": "შეტყობინებები",
|
||||
@@ -52,9 +52,9 @@
|
||||
"column_header.hide_settings": "პარამეტრების დამალვა",
|
||||
"column_header.moveLeft_settings": "სვეტის მარცხნივ გადატანა",
|
||||
"column_header.moveRight_settings": "სვეტის მარჯვნივ გადატანა",
|
||||
"column_header.pin": "აპინვა",
|
||||
"column_header.pin": "მიმაგრება",
|
||||
"column_header.show_settings": "პარამეტრების ჩვენება",
|
||||
"column_header.unpin": "პინის მოხსნა",
|
||||
"column_header.unpin": "მოხსნა",
|
||||
"column_subheading.settings": "პარამეტრები",
|
||||
"community.column_settings.media_only": "მხოლოდ მედია",
|
||||
"compose_form.direct_message_warning_learn_more": "გაიგე მეტი",
|
||||
@@ -66,21 +66,21 @@
|
||||
"compose_form.publish_form": "Publish",
|
||||
"compose_form.spoiler.marked": "გაფრთხილების უკან ტექსტი დამალულია",
|
||||
"compose_form.spoiler.unmarked": "ტექსტი არაა დამალული",
|
||||
"confirmation_modal.cancel": "უარყოფა",
|
||||
"confirmation_modal.cancel": "გაუქმება",
|
||||
"confirmations.block.confirm": "ბლოკი",
|
||||
"confirmations.delete.confirm": "გაუქმება",
|
||||
"confirmations.delete.confirm": "წაშლა",
|
||||
"confirmations.delete.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი?",
|
||||
"confirmations.delete_list.confirm": "გაუქმება",
|
||||
"confirmations.delete_list.confirm": "წაშლა",
|
||||
"confirmations.delete_list.message": "დარწმუნებული ხართ, გსურთ სამუდამოდ გააუქმოთ ეს სია?",
|
||||
"confirmations.mute.confirm": "გაჩუმება",
|
||||
"confirmations.mute.confirm": "დადუმება",
|
||||
"confirmations.redraft.confirm": "გაუქმება და გადანაწილება",
|
||||
"confirmations.unfollow.confirm": "ნუღარ მიჰყვები",
|
||||
"confirmations.unfollow.message": "დარწმუნებული ხართ, აღარ გსურთ მიჰყვებოდეთ {name}-ს?",
|
||||
"embed.instructions": "ეს სტატუსი ჩასვით თქვენს ვებ-საიტზე შემდეგი კოდის კოპირებით.",
|
||||
"embed.preview": "ესაა თუ როგორც გამოჩნდება:",
|
||||
"emoji_button.activity": "აქტივობა",
|
||||
"emoji_button.custom": "პერსონალიზირებული",
|
||||
"emoji_button.flags": "დროშები",
|
||||
"emoji_button.custom": "მომხმარებლის",
|
||||
"emoji_button.flags": "ალმები",
|
||||
"emoji_button.food": "საჭმელი და სასლმელი",
|
||||
"emoji_button.label": "ემოჯის ჩასმა",
|
||||
"emoji_button.nature": "ბუმება",
|
||||
@@ -119,7 +119,7 @@
|
||||
"keyboard_shortcuts.federated": "to open federated timeline",
|
||||
"keyboard_shortcuts.heading": "კლავიატურის სწრაფი ბმულები",
|
||||
"keyboard_shortcuts.home": "to open home timeline",
|
||||
"keyboard_shortcuts.hotkey": "ცხელი კლავიში",
|
||||
"keyboard_shortcuts.hotkey": "მალსახმობი ღილაკი",
|
||||
"keyboard_shortcuts.legend": "ამ ლეგენდის გამოსაჩენად",
|
||||
"keyboard_shortcuts.local": "to open local timeline",
|
||||
"keyboard_shortcuts.mention": "ავტორის დასახელებლად",
|
||||
@@ -180,20 +180,20 @@
|
||||
"relative_time.just_now": "ახლა",
|
||||
"relative_time.minutes": "{number}წთ",
|
||||
"relative_time.seconds": "{number}წმ",
|
||||
"reply_indicator.cancel": "უარყოფა",
|
||||
"reply_indicator.cancel": "გაუქმება",
|
||||
"report.forward": "ფორვარდი {target}-ს",
|
||||
"report.forward_hint": "ანგარიში სხვა სერვერიდანაა. გავაგზავნოთ რეპორტის ანონიმური ასლიც?",
|
||||
"report.placeholder": "დამატებითი კომენტარები",
|
||||
"report.submit": "დასრულება",
|
||||
"report.submit": "გადაცემა",
|
||||
"report.target": "არეპორტებთ {target}",
|
||||
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
|
||||
"search.placeholder": "ძებნა",
|
||||
"search_results.hashtags": "ჰეშტეგები",
|
||||
"search_results.statuses": "ტუტები",
|
||||
"sign_in_banner.sign_in": "Sign in",
|
||||
"search_results.statuses": "პოსტები",
|
||||
"sign_in_banner.sign_in": "შესვლა",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
"status.block": "დაბლოკე @{name}",
|
||||
"status.cancel_reblog_private": "ბუსტის მოშორება",
|
||||
"status.cancel_reblog_private": "ბუსტის მოხსნა",
|
||||
"status.cannot_reblog": "ეს პოსტი ვერ დაიბუსტება",
|
||||
"status.copy": "Copy link to status",
|
||||
"status.delete": "წაშლა",
|
||||
@@ -222,7 +222,7 @@
|
||||
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
|
||||
"status.unmute_conversation": "საუბარზე გაჩუმების მოშორება",
|
||||
"status.unpin": "პროფილიდან პინის მოშორება",
|
||||
"tabs_bar.home": "სახლი",
|
||||
"tabs_bar.home": "საწყისი",
|
||||
"tabs_bar.notifications": "შეტყობინებები",
|
||||
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
|
||||
"ui.beforeunload": "თქვენი დრაფტი გაუქმდება თუ დატოვებთ მასტოდონს.",
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
"compose.published.open": "Atvērt",
|
||||
"compose.saved.body": "Ziņa saglabāta.",
|
||||
"compose_form.direct_message_warning_learn_more": "Uzzināt vairāk",
|
||||
"compose_form.encryption_warning": "Mastodon ieraksti nav pilnībā šifrēti. Nedalies ar jebkādu jutīgu informāciju caur Mastodon!",
|
||||
"compose_form.encryption_warning": "Mastodon ieraksti nav pilnībā šifrēti. Nedalies ar jebkādu jūtīgu informāciju caur Mastodon!",
|
||||
"compose_form.hashtag_warning": "Šis ieraksts netiks uzrādīts nevienā tēmturī, jo tas nav redzams visiem. Tikai visiem redzamos ierakstus var meklēt pēc tēmtura.",
|
||||
"compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var Tev sekot, lai redzētu tikai sekotājiem paredzētos ierakstus.",
|
||||
"compose_form.lock_disclaimer.lock": "slēgts",
|
||||
@@ -474,9 +474,9 @@
|
||||
"notification.moderation_warning": "Ir saņemts satura pārraudzības brīdinājums",
|
||||
"notification.moderation_warning.action_delete_statuses": "Daži no Taviem ierakstiem tika noņemti.",
|
||||
"notification.moderation_warning.action_disable": "Tavs konts tika atspējots.",
|
||||
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Daži no Taviem ierakstiem tika atzīmēti kā jutīgi.",
|
||||
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Daži no Taviem ierakstiem tika atzīmēti kā jūtīgi.",
|
||||
"notification.moderation_warning.action_none": "Konts ir saņēmis satura pārraudzības brīdinājumu.",
|
||||
"notification.moderation_warning.action_sensitive": "Tavi ieraksti turpmāk tiks atzīmēti kā jutīgi.",
|
||||
"notification.moderation_warning.action_sensitive": "Tavi ieraksti turpmāk tiks atzīmēti kā jūtīgi.",
|
||||
"notification.moderation_warning.action_silence": "Tavs konts tika ierobežots.",
|
||||
"notification.moderation_warning.action_suspend": "Tava konta darbība tika apturēta.",
|
||||
"notification.own_poll": "Tava aptauja ir noslēgusies",
|
||||
@@ -702,7 +702,7 @@
|
||||
"status.reply": "Atbildēt",
|
||||
"status.replyAll": "Atbildēt uz tematu",
|
||||
"status.report": "Ziņot par @{name}",
|
||||
"status.sensitive_warning": "Sensitīvs saturs",
|
||||
"status.sensitive_warning": "Jūtīgs saturs",
|
||||
"status.share": "Kopīgot",
|
||||
"status.show_less_all": "Rādīt mazāk visiem",
|
||||
"status.show_more_all": "Rādīt vairāk visiem",
|
||||
|
||||
@@ -15,9 +15,10 @@ export const makeGetStatus = () => {
|
||||
(state, { id }) => state.getIn(['accounts', state.getIn(['statuses', id, 'account'])]),
|
||||
(state, { id }) => state.getIn(['accounts', state.getIn(['statuses', state.getIn(['statuses', id, 'reblog']), 'account'])]),
|
||||
getFilters,
|
||||
(_, { contextType }) => ['detailed', 'bookmarks', 'favourites'].includes(contextType),
|
||||
],
|
||||
|
||||
(statusBase, statusReblog, accountBase, accountReblog, filters) => {
|
||||
(statusBase, statusReblog, accountBase, accountReblog, filters, warnInsteadOfHide) => {
|
||||
if (!statusBase || statusBase.get('isLoading')) {
|
||||
return null;
|
||||
}
|
||||
@@ -31,7 +32,7 @@ export const makeGetStatus = () => {
|
||||
let filtered = false;
|
||||
if ((accountReblog || accountBase).get('id') !== me && filters) {
|
||||
let filterResults = statusReblog?.get('filtered') || statusBase.get('filtered') || ImmutableList();
|
||||
if (filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'hide')) {
|
||||
if (!warnInsteadOfHide && filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'hide')) {
|
||||
return null;
|
||||
}
|
||||
filterResults = filterResults.filter(result => filters.has(result.get('filter')));
|
||||
|
||||
@@ -6,6 +6,11 @@ export const toServerSideType = (columnType: string) => {
|
||||
case 'thread':
|
||||
case 'account':
|
||||
return columnType;
|
||||
case 'detailed':
|
||||
return 'thread';
|
||||
case 'bookmarks':
|
||||
case 'favourites':
|
||||
return 'home';
|
||||
default:
|
||||
if (columnType.includes('list:')) {
|
||||
return 'home';
|
||||
|
||||
Reference in New Issue
Block a user