Merge commit 'f1a6f4333a75f5bc186334f7f43a26e969cd712d' into glitch-soc/merge-upstream
This commit is contained in:
commit
b031f65670
148 files changed
+1524
-1211
No files matched your search
@@ -11,9 +11,12 @@ import {
|
||||
unblockAccount,
|
||||
muteAccount,
|
||||
unmuteAccount,
|
||||
followAccountSuccess,
|
||||
} from 'mastodon/actions/accounts';
|
||||
import { showAlertForError } from 'mastodon/actions/alerts';
|
||||
import { openModal } from 'mastodon/actions/modal';
|
||||
import { initMuteModal } from 'mastodon/actions/mutes';
|
||||
import { apiFollowAccount } from 'mastodon/api/accounts';
|
||||
import { Avatar } from 'mastodon/components/avatar';
|
||||
import { Button } from 'mastodon/components/button';
|
||||
import { FollowersCounter } from 'mastodon/components/counters';
|
||||
@@ -24,6 +27,7 @@ import { RelativeTimestamp } from 'mastodon/components/relative_timestamp';
|
||||
import { ShortNumber } from 'mastodon/components/short_number';
|
||||
import { Skeleton } from 'mastodon/components/skeleton';
|
||||
import { VerifiedBadge } from 'mastodon/components/verified_badge';
|
||||
import { me } from 'mastodon/initial_state';
|
||||
import type { MenuItem } from 'mastodon/models/dropdown_menu';
|
||||
import { useAppSelector, useAppDispatch } from 'mastodon/store';
|
||||
|
||||
@@ -113,14 +117,43 @@ export const Account: React.FC<{
|
||||
];
|
||||
} else if (defaultAction !== 'block') {
|
||||
const handleAddToLists = () => {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'LIST_ADDER',
|
||||
modalProps: {
|
||||
accountId: id,
|
||||
},
|
||||
}),
|
||||
);
|
||||
const openAddToListModal = () => {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'LIST_ADDER',
|
||||
modalProps: {
|
||||
accountId: id,
|
||||
},
|
||||
}),
|
||||
);
|
||||
};
|
||||
if (relationship?.following || relationship?.requested || id === me) {
|
||||
openAddToListModal();
|
||||
} else {
|
||||
dispatch(
|
||||
openModal({
|
||||
modalType: 'CONFIRM_FOLLOW_TO_LIST',
|
||||
modalProps: {
|
||||
accountId: id,
|
||||
onConfirm: () => {
|
||||
apiFollowAccount(id)
|
||||
.then((relationship) => {
|
||||
dispatch(
|
||||
followAccountSuccess({
|
||||
relationship,
|
||||
alreadyFollowing: false,
|
||||
}),
|
||||
);
|
||||
openAddToListModal();
|
||||
})
|
||||
.catch((err: unknown) => {
|
||||
dispatch(showAlertForError(err));
|
||||
});
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
arr = [
|
||||
|
||||
@@ -44,6 +44,7 @@ const severityMessages = {
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
server: state.getIn(['server', 'server']),
|
||||
locale: state.getIn(['meta', 'locale']),
|
||||
extendedDescription: state.getIn(['server', 'extendedDescription']),
|
||||
domainBlocks: state.getIn(['server', 'domainBlocks']),
|
||||
});
|
||||
@@ -91,6 +92,7 @@ class About extends PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
server: ImmutablePropTypes.map,
|
||||
locale: ImmutablePropTypes.string,
|
||||
extendedDescription: ImmutablePropTypes.map,
|
||||
domainBlocks: ImmutablePropTypes.contains({
|
||||
isLoading: PropTypes.bool,
|
||||
@@ -114,7 +116,7 @@ class About extends PureComponent {
|
||||
};
|
||||
|
||||
render () {
|
||||
const { multiColumn, intl, server, extendedDescription, domainBlocks } = this.props;
|
||||
const { multiColumn, intl, server, extendedDescription, domainBlocks, locale } = this.props;
|
||||
const isLoading = server.get('isLoading');
|
||||
|
||||
return (
|
||||
@@ -168,12 +170,15 @@ class About extends PureComponent {
|
||||
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
|
||||
) : (
|
||||
<ol className='rules-list'>
|
||||
{server.get('rules').map(rule => (
|
||||
<li key={rule.get('id')}>
|
||||
<div className='rules-list__text'>{rule.get('text')}</div>
|
||||
{rule.get('hint').length > 0 && (<div className='rules-list__hint'>{rule.get('hint')}</div>)}
|
||||
</li>
|
||||
))}
|
||||
{server.get('rules').map(rule => {
|
||||
const text = rule.getIn(['translations', locale, 'text']) || rule.get('text');
|
||||
const hint = rule.getIn(['translations', locale, 'hint']) || rule.get('hint');
|
||||
return (
|
||||
<li key={rule.get('id')}>
|
||||
<div className='rules-list__text'>{text}</div>
|
||||
{hint.length > 0 && (<div className='rules-list__hint'>{hint}</div>)}
|
||||
</li>
|
||||
)})}
|
||||
</ol>
|
||||
))}
|
||||
</Section>
|
||||
|
||||
@@ -12,6 +12,7 @@ import Option from './components/option';
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
rules: state.getIn(['server', 'server', 'rules']),
|
||||
locale: state.getIn(['meta', 'locale']),
|
||||
});
|
||||
|
||||
class Rules extends PureComponent {
|
||||
@@ -19,6 +20,7 @@ class Rules extends PureComponent {
|
||||
static propTypes = {
|
||||
onNextStep: PropTypes.func.isRequired,
|
||||
rules: ImmutablePropTypes.list,
|
||||
locale: PropTypes.string,
|
||||
selectedRuleIds: ImmutablePropTypes.set.isRequired,
|
||||
onToggle: PropTypes.func.isRequired,
|
||||
};
|
||||
@@ -34,7 +36,7 @@ class Rules extends PureComponent {
|
||||
};
|
||||
|
||||
render () {
|
||||
const { rules, selectedRuleIds } = this.props;
|
||||
const { rules, locale, selectedRuleIds } = this.props;
|
||||
|
||||
return (
|
||||
<>
|
||||
@@ -49,7 +51,7 @@ class Rules extends PureComponent {
|
||||
value={item.get('id')}
|
||||
checked={selectedRuleIds.includes(item.get('id'))}
|
||||
onToggle={this.handleRulesToggle}
|
||||
label={item.get('text')}
|
||||
label={item.getIn(['translations', locale, 'text']) || item.get('text')}
|
||||
multiple
|
||||
/>
|
||||
))}
|
||||
|
||||
@@ -24,7 +24,9 @@ export const HotkeyIndicator: React.FC<{
|
||||
enter: [{ opacity: 1 }],
|
||||
leave: [{ opacity: 0 }],
|
||||
onRest: (_result, _ctrl, item) => {
|
||||
onDismiss(item);
|
||||
if (item) {
|
||||
onDismiss(item);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -346,8 +346,10 @@ export const Video: React.FC<{
|
||||
const updateProgress = () => {
|
||||
nextFrame = requestAnimationFrame(() => {
|
||||
if (videoRef.current) {
|
||||
const progress =
|
||||
videoRef.current.currentTime / videoRef.current.duration;
|
||||
void api.start({
|
||||
progress: `${(videoRef.current.currentTime / videoRef.current.duration) * 100}%`,
|
||||
progress: isNaN(progress) ? '0%' : `${progress * 100}%`,
|
||||
immediate: reduceMotion,
|
||||
config: config.stiff,
|
||||
});
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
"account.joined_short": "S'hi va unir",
|
||||
"account.languages": "Canvia les llengües subscrites",
|
||||
"account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}",
|
||||
"account.locked_info": "L'estat de privadesa del compte està definit com a blocat. El propietari revisa manualment qui pot seguir-lo.",
|
||||
"account.locked_info": "L'estat de privacitat del compte està definit com a blocat. El propietari revisa manualment qui pot seguir-lo.",
|
||||
"account.media": "Contingut",
|
||||
"account.mention": "Menciona @{name}",
|
||||
"account.moved_to": "{name} ha indicat que el seu nou compte és:",
|
||||
@@ -727,7 +727,7 @@
|
||||
"privacy.unlisted.long": "Menys fanfàrries algorísmiques",
|
||||
"privacy.unlisted.short": "Públic silenciós",
|
||||
"privacy_policy.last_updated": "Darrera actualització {date}",
|
||||
"privacy_policy.title": "Política de privadesa",
|
||||
"privacy_policy.title": "Política de Privacitat",
|
||||
"recommended": "Recomanat",
|
||||
"refresh": "Actualitza",
|
||||
"regeneration_indicator.please_stand_by": "Espereu.",
|
||||
|
||||
@@ -28,7 +28,11 @@
|
||||
"account.edit_profile": "Cuir an phróifíl in eagar",
|
||||
"account.enable_notifications": "Cuir mé in eol nuair bpostálann @{name}",
|
||||
"account.endorse": "Cuir ar an phróifíl mar ghné",
|
||||
"account.familiar_followers_many": "Ina dhiaidh sin ag {name1}, {name2}, agus {othersCount, plural, \n one {duine eile atá aithnid duit} \n two {# duine eile atá aithnid duit} \n few {# dhuine eile atá aithnid duit} \n many {# nduine eile atá aithnid duit} \n other {# duine eile atá aithnid duit}}",
|
||||
"account.familiar_followers_one": "Ina dhiaidh sin {name1}",
|
||||
"account.familiar_followers_two": "Ina dhiaidh sin tá {name1} agus {name2}",
|
||||
"account.featured": "Faoi thrácht",
|
||||
"account.featured.accounts": "Próifílí",
|
||||
"account.featured.hashtags": "Haischlibeanna",
|
||||
"account.featured.posts": "Poist",
|
||||
"account.featured_tags.last_status_at": "Postáil is déanaí ar {date}",
|
||||
@@ -405,8 +409,10 @@
|
||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} rannpháirtí} two {{counter} rannpháirtí} few {{counter} rannpháirtí} many {{counter} rannpháirtí} other {{counter} rannpháirtí}}",
|
||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} post} two {{counter} post} few {{counter} post} many {{counter} post} other {{counter} poist}}",
|
||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} post inniu} other {{counter} poist inniu}} inniu",
|
||||
"hashtag.feature": "Gné ar phróifíl",
|
||||
"hashtag.follow": "Lean haischlib",
|
||||
"hashtag.mute": "Balbhaigh #{hashtag}",
|
||||
"hashtag.unfeature": "Ná cuir le feiceáil ar phróifíl",
|
||||
"hashtag.unfollow": "Ná lean haischlib",
|
||||
"hashtags.and_other": "agus {count, plural, one {} two {# níos} few {# níos} many {# níos} other {# níos}}",
|
||||
"hints.profiles.followers_may_be_missing": "Seans go bhfuil leantóirí don phróifíl seo in easnamh.",
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
"footer.privacy_policy": "Política de privacidade",
|
||||
"footer.source_code": "Ver código fonte",
|
||||
"footer.status": "Estado",
|
||||
"footer.terms_of_service": "Termos do servizo",
|
||||
"footer.terms_of_service": "Condicións do servizo",
|
||||
"generic.saved": "Gardado",
|
||||
"getting_started.heading": "Primeiros pasos",
|
||||
"hashtag.admin_moderation": "Abrir interface de moderación para ##{name}",
|
||||
@@ -894,7 +894,7 @@
|
||||
"tabs_bar.home": "Inicio",
|
||||
"tabs_bar.notifications": "Notificacións",
|
||||
"terms_of_service.effective_as_of": "Con efecto desde o {date}",
|
||||
"terms_of_service.title": "Termos do Servizo",
|
||||
"terms_of_service.title": "Condicións do Servizo",
|
||||
"terms_of_service.upcoming_changes_on": "Cambios por vir o {date}",
|
||||
"time_remaining.days": "Remata en {number, plural, one {# día} other {# días}}",
|
||||
"time_remaining.hours": "Remata en {number, plural, one {# hora} other {# horas}}",
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
"account.edit_profile": "Profil szerkesztése",
|
||||
"account.enable_notifications": "Figyelmeztessen, ha @{name} bejegyzést tesz közzé",
|
||||
"account.endorse": "Kiemelés a profilodon",
|
||||
"account.familiar_followers_many": "{name1}, {name2} és még {othersCount, plural, one {egy valaki} other {# valaki}}, akit ismersz",
|
||||
"account.familiar_followers_one": "{name1} követi",
|
||||
"account.familiar_followers_two": "{name1} és {name2} követi",
|
||||
"account.featured": "Kiemelt",
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
"account.edit_profile": "Rediger profil",
|
||||
"account.enable_notifications": "Varsle meg når @{name} skriv innlegg",
|
||||
"account.endorse": "Vis på profilen",
|
||||
"account.familiar_followers_many": "Fylgt av {name1}, {name2}, og {othersCount, plural, one {ein annan du kjenner} other {# andre du kjenner}}",
|
||||
"account.familiar_followers_one": "Fylgt av {name1}",
|
||||
"account.familiar_followers_two": "Fylgt av {name1} og {name2}",
|
||||
"account.featured": "Utvald",
|
||||
"account.featured.accounts": "Profilar",
|
||||
"account.featured.hashtags": "Emneknaggar",
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M440-800v487L216-537l-56 57 320 320 320-320-56-57-224 224v-487h-80Z"/></svg>
|
||||
|
After Width: | Height: | Size: 173 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M440-800v487L216-537l-56 57 320 320 320-320-56-57-224 224v-487h-80Z"/></svg>
|
||||
|
After Width: | Height: | Size: 173 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z"/></svg>
|
||||
|
After Width: | Height: | Size: 173 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z"/></svg>
|
||||
|
After Width: | Height: | Size: 173 B |
@@ -1,7 +1,7 @@
|
||||
@use '../mastodon/functions' as *;
|
||||
|
||||
// Dependent colors
|
||||
$black: #000000;
|
||||
$black: #000;
|
||||
|
||||
$classic-base-color: hsl(240deg, 16%, 19%);
|
||||
$classic-primary-color: hsl(240deg, 29%, 70%);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
body {
|
||||
accent-color: #6364ff;
|
||||
word-break: break-word;
|
||||
overflow-wrap: anywhere;
|
||||
margin: 0;
|
||||
background-color: #f3f2f5;
|
||||
padding: 0;
|
||||
@@ -45,7 +45,7 @@ table + p {
|
||||
.email {
|
||||
min-width: 280px;
|
||||
font-family: Inter, 'Lucida Grande', sans-serif;
|
||||
word-break: break-word;
|
||||
overflow-wrap: anywhere;
|
||||
color: #17063b;
|
||||
background-color: #f3f2f5;
|
||||
}
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
format('woff2-variations');
|
||||
font-weight: 100 900;
|
||||
font-style: normal;
|
||||
mso-generic-font-family: swiss; /* stylelint-disable-line property-no-unknown -- Proprietary property for Outlook on Windows. */
|
||||
mso-generic-font-family: swiss;
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
$lighten-multiplier: -1
|
||||
);
|
||||
|
||||
$black: #000000; // Black
|
||||
$white: #ffffff; // White
|
||||
$black: #000; // Black
|
||||
$white: #fff; // White
|
||||
$blurple-500: #6364ff; // Brand purple
|
||||
$grey-600: hsl(240deg, 8%, 33%); // Trout
|
||||
$grey-100: hsl(240deg, 51%, 90%); // Topaz
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
@use 'functions' as *;
|
||||
|
||||
// Commonly used web colors
|
||||
$black: #000000; // Black
|
||||
$white: #ffffff; // White
|
||||
$black: #000; // Black
|
||||
$white: #fff; // White
|
||||
$red-600: #b7253d !default; // Deep Carmine
|
||||
$red-500: #df405a !default; // Cerise
|
||||
$blurple-600: #563acc; // Iris
|
||||
|
||||
@@ -114,15 +114,14 @@ $content-width: 840px;
|
||||
|
||||
a {
|
||||
font-size: 14px;
|
||||
display: block;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 15px;
|
||||
color: $darker-text-color;
|
||||
text-decoration: none;
|
||||
transition: all 200ms linear;
|
||||
transition-property: color, background-color;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:hover {
|
||||
color: $primary-text-color;
|
||||
@@ -1121,7 +1120,7 @@ a.name-tag,
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0;
|
||||
word-break: break-word;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
&__permissions {
|
||||
@@ -1144,6 +1143,15 @@ a.name-tag,
|
||||
}
|
||||
}
|
||||
|
||||
.rule-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
a.table-action-link {
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.dashboard__counters.admin-account-counters {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
@@ -8385,7 +8385,7 @@ noscript {
|
||||
}
|
||||
|
||||
a {
|
||||
word-break: break-word;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1156,7 +1156,7 @@ code {
|
||||
|
||||
&__type {
|
||||
color: $darker-text-color;
|
||||
word-break: break-word;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user