cb0ad15138
Replaces all icons with the [Phosphor icon set](https://phosphoricons.com/). To accomodate these icons this also touches general style of buttons, headings, and other containers of icons. I want to give a massive shout out to [Niléane](https://nileane.fr/@nileane) and her project [Tangerine UI](https://github.com/nileane/TangerineUI-for-Mastodon). Most of the icons/adjustments I’ve made are based on her choices and work. Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/77 Contains: commit4cd78295ddAuthor: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 13:57:50 2025 +0200 [bugfix] increase contrast for spoiler link commit4594e776e0Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 13:48:05 2025 +0200 [bugfix] increase contrast for “secondary” in light mode Increase the contrast for icons, usernames, and some other places commit7db3518be7Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 13:39:36 2025 +0200 [bugfix] increase size of overlayed buttons …such as the hide sensitive content button commit3fd37bbfa5Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 13:29:22 2025 +0200 [bugfix] resize three dot menu next to user commit82a4b2b8d9Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 13:23:29 2025 +0200 [bugfix] use correct icon name commit470cb995f9Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 12:55:27 2025 +0200 [bugfix] add back translation for pin/unpin button https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/77#issuecomment-7718876 commit255b64c8f7Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 12:22:34 2025 +0200 [bugfix] restore title functionality for icons the `title`-attribute doesn’t work on `<SVG>`-elements. the way to do it is with a nested `<title>`-element. this adds this functionality commit9c25c362fbAuthor: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 11:54:44 2025 +0200 [bugfix] remove import of Icon This gave me an error yesterday i think, but seems fine now, so 🤷🏻♀️. From review: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/77#issuecomment-7719077 commit36065d03fbAuthor: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 10:43:02 2025 +0200 [docs] update changelog commit80cb9ef0c5Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 10:09:10 2025 +0200 [bugfix] first pass at deduping and sorting commit59beb08921Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 01:59:50 2025 +0200 fix lint issues commit3ffcdffdf1Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 01:53:24 2025 +0200 liint commitcda2a62ee5Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 01:46:50 2025 +0200 lint commit373b756e8aAuthor: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 00:55:35 2025 +0200 rename calls commitd53ca0d990Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 00:52:25 2025 +0200 rename icon components commit07a1e149e1Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 14 00:45:21 2025 +0200 [feature] change _all_ remaining icons commit53fdc6b82fAuthor: Zoë Bijl <code@moiety.me> Date: Mon Oct 13 20:17:04 2025 +0200 [feature] change upload form icons commitd143b433b2Author: Zoë Bijl <code@moiety.me> Date: Mon Oct 13 13:56:27 2025 +0200 [bugfix] allow icon with badge to expand horizontally This allows it to contain more numbers / text. Getting double digit notifications for example. Or the follow request cap '40+' text. commitb737f07676Author: Zoë Bijl <code@moiety.me> Date: Mon Oct 13 13:46:13 2025 +0200 [bugfix] import correct component for “follow request” menu item commit03205b05a9Author: Zoë Bijl <code@moiety.me> Date: Mon Oct 13 13:07:40 2025 +0200 [feature] update follow request icons commit199db8b9afAuthor: Zoë Bijl <code@moiety.me> Date: Mon Oct 13 01:40:23 2025 +0200 [feature] change video player controls commit9fcbf23274Author: Zoë Bijl <code@moiety.me> Date: Sun Oct 12 14:07:37 2025 +0200 [feature] change unlisted status icon to an open padlock Custom made icon based on Phosphor. I flipped the “lock” bit so it’s easier to distinguish. commita359bf4ab1Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 17:30:10 2025 +0200 [build] add regex for stylelint/custom-property-pattern Example: https://regex101.com/r/eITX54/1 commit972624b360Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 15:52:28 2025 +0200 [build] edit custom-property-pattern commitcaf3c1e41aAuthor: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 15:46:05 2025 +0200 [bugfix] fix media modal icons commit3d2df89ab5Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 15:35:59 2025 +0200 [bugfix] correct notification filter bar colours commit36308a2234Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 15:30:48 2025 +0200 [bugfix] fix account search result styling commiteea1c0315bAuthor: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 15:30:17 2025 +0200 [bugfix] fix drawer colours commitc2140a4be1Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 15:29:37 2025 +0200 [bugfix] fix search styling commit22c7fc2491Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 15:28:48 2025 +0200 [feature] change icons to Phosphor commitf1eeb89908Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 14:23:29 2025 +0200 [bugfix] properly set colors for lightmode commit7138e11984Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 14:22:59 2025 +0200 [feature] use css variables for select component - Search field - Notifications filter bar/account post bar - Status prepend part ('x' boosted) - body background color commitb91f194012Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 13:58:45 2025 +0200 [bugfix] set font-weight on account portion of the display name commit49ebf988a4Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 12:16:41 2025 +0200 [chore] correct path to login.css commit6433626943Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 12:10:54 2025 +0200 [chore] fix lint issues commit9034a3d103Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 12:10:38 2025 +0200 [chore] update stylelint rules commit5d5325d067Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 12:02:52 2025 +0200 [bugfix] style `.gts-icon-with-badge` Fixes styling for the notification badge commitfbd22639d9Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 09:30:14 2025 +0200 icon badge style commit7f1c3fd388Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 09:03:07 2025 +0200 [chore] fix lint issues commit5e063da784Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 10 01:01:35 2025 +0200 [feature] change icon for “new list” button commitc22c8ea097Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 23:50:28 2025 +0200 [chore] add debug style for `.fa` I want to remove all FontAwesome from the project. This will help find any that are left over. commitf236962403Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 23:49:39 2025 +0200 [feature] change “local only” status icon commit94a1ec45c2Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 23:31:42 2025 +0200 [bugfix] properly align account buttons commit7adcf93c80Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 23:31:25 2025 +0200 [bugfix] set border radius on smaller screens commit8ad4c08069Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 23:03:15 2025 +0200 [feature] remove icons from notification purge bar commit457c3c2910Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 19:49:49 2025 +0200 [feature] change list edit buttons commit046be63ed6Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 18:15:14 2025 +0200 [feature] update dismissible banner icon commit506e59034bAuthor: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 15:08:15 2025 +0200 [feature] change header pin state/move icons commitd97df4b87fAuthor: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 11:42:55 2025 +0200 [chore] fix lint:js errors commitb418204ae3Author: Zoë Bijl <code@moiety.me> Date: Thu Oct 9 09:50:37 2025 +0200 [chore] fix lint:js errors …related to the icons commit415b05d20aAuthor: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 13:44:51 2025 +0200 [feature] replace column move icons commit14f119be65Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 13:38:18 2025 +0200 [bugfix] hide overflow text commit6fb2dd73beAuthor: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 12:05:25 2025 +0200 [feature] improve status-prepend display name hover state commitf8f0b403afAuthor: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:55:57 2025 +0200 [bugfix] uncomment slim back button styles commit8b254ae288Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:44:54 2025 +0200 [feature] refactor status styling This does a bunch of stuff: - split out status components into their own file - unify spacing within a status - outline all icons - neatly fade the overflow part of a username - add underlines to username links when appropriate - correctly size all icons in a status - restyle spoiler link (content warning button) commitebfbed0553Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:40:18 2025 +0200 [feature] change content warning state icon commitf70946ef48Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:26:22 2025 +0200 [bugfix] remove unnecessary `<span>` commit312b157581Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:15:07 2025 +0200 [bugfix] correctly align status prepend commit2cd3a82fc7Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:04:39 2025 +0200 [bugfix] set correct icon state in detailed status view This change was already made for the normal status view. It sets the icon to be filled when a status is boosted or favourited. Also forgoing the need for the Glitch checkmark. commite1c1325905Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:02:58 2025 +0200 [feature] replace load-gap icon commitd483cab118Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 11:00:05 2025 +0200 [feature] align `drawer` and `compose-panel` components - Neatly aligns both the `.drawer` and `.compose-panel` components - Fixes `.search__input` padding when inside the `.compose-panel` commit3c85b02b51Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 8 10:52:37 2025 +0200 [feature] add “sizes” variables file commit7a4b9c6634Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 7 17:26:30 2025 +0200 [feature] space out status action bar items commitebfd05be3dAuthor: Zoë Bijl <code@moiety.me> Date: Tue Oct 7 17:25:49 2025 +0200 [bugfix] remove “sticky” background on focus commita977011b34Author: Zoë Bijl <code@moiety.me> Date: Tue Oct 7 17:24:52 2025 +0200 [feature] refactor status prepend box commit52fbda27edAuthor: Zoë Bijl <code@moiety.me> Date: Tue Oct 7 17:20:44 2025 +0200 [feature] add GTS specific CSS provides a space to place rewritten CSS; should help keep track of what has been done. commit7209169ba9Author: Zoë Bijl <code@moiety.me> Date: Mon Oct 6 13:02:02 2025 +0200 [feature] add animations to status bar icons When activated the status bar (under a toot) icons now do a cute lil animation, courtesy of Tangerine UI. commitc0ea21299fAuthor: Zoë Bijl <code@moiety.me> Date: Sun Oct 5 01:36:12 2025 +0200 [feature] refactor search box / add drawer outlines - add outlines to some UI elements like the timeline and drawers - search “clear” button is now an actual `<button>` commit82cc610ab7Author: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 20:34:17 2025 +0200 [feature] set icons for lists commit004404dc83Author: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 20:33:39 2025 +0200 [feature] refactor local settings navigation item commit9dbc200fd6Author: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 20:32:27 2025 +0200 [feature] refactor column/drawer header commitbeb7a68b5eAuthor: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 20:30:29 2025 +0200 [fix] set correct icon size for action-bar commit6fb994abe6Author: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 20:29:35 2025 +0200 [feature] refactor notifications filter bar commitefaeb5d969Author: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 01:25:42 2025 +0200 [refactor] compose form button bar CSS Complete rewrite of the CSS for the compose form button bar. This makes the buttons and icons sit nicely in the available space. commit18fd2ef39aAuthor: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 01:14:03 2025 +0200 [feat] change unlisted icon from lock to moon Makes easier to distinguish. commit5e16246d56Author: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 01:00:54 2025 +0200 [fix] use `<button>` for emoji button No idea why this was a `<div>`; this works fine in my testing. commit250b415a9dAuthor: Zoë Bijl <code@moiety.me> Date: Sat Oct 4 00:58:16 2025 +0200 [fix] remove inline styling for icon button commitea3106c635Author: Zoë Bijl <code@moiety.me> Date: Fri Oct 3 23:11:38 2025 +0200 [feature] set toot footer icons based on state When you favourite, boost, or bookmark a toot the icons turns into a filled version. commit5a6fd18ec2Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 1 23:48:22 2025 +0200 [feature] add SVG icons commitb62c1f4fc6Author: Zoë Bijl <code@moiety.me> Date: Wed Oct 1 00:56:51 2025 +0200 [feature] add SVG icons # Conflicts: # .editorconfig # Conflicts: # app/javascript/flavours/glitch/components/account.jsx # app/javascript/flavours/glitch/components/column_back_button.jsx # app/javascript/flavours/glitch/components/column_back_button_slim.jsx # app/javascript/flavours/glitch/components/column_header.jsx # app/javascript/flavours/glitch/components/dropdown_menu.jsx # app/javascript/flavours/glitch/components/media_gallery.jsx # app/javascript/flavours/glitch/components/status.jsx # app/javascript/flavours/glitch/components/status_action_bar.jsx # app/javascript/flavours/glitch/components/status_icons.jsx # app/javascript/flavours/glitch/components/status_prepend.jsx # app/javascript/flavours/glitch/components/status_visibility_icon.jsx # app/javascript/flavours/glitch/features/account/components/header.jsx # app/javascript/flavours/glitch/features/audio/index.jsx # app/javascript/flavours/glitch/features/compose/components/dropdown.jsx # app/javascript/flavours/glitch/features/compose/components/dropdown_menu.jsx # app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.jsx # app/javascript/flavours/glitch/features/compose/components/header.jsx # app/javascript/flavours/glitch/features/compose/components/options.jsx # app/javascript/flavours/glitch/features/compose/components/poll_form.jsx # app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.jsx # app/javascript/flavours/glitch/features/compose/components/publisher.jsx # app/javascript/flavours/glitch/features/compose/components/reply_indicator.jsx # app/javascript/flavours/glitch/features/compose/components/search.jsx # app/javascript/flavours/glitch/features/compose/components/textarea_icons.jsx # app/javascript/flavours/glitch/features/favourites/index.jsx # app/javascript/flavours/glitch/features/getting_started/index.jsx # app/javascript/flavours/glitch/features/interaction_modal/index.jsx # app/javascript/flavours/glitch/features/local_settings/navigation/item/index.jsx # app/javascript/flavours/glitch/features/notifications/components/admin_report.jsx # app/javascript/flavours/glitch/features/notifications/components/admin_signup.jsx # app/javascript/flavours/glitch/features/notifications/components/clear_column_button.jsx # app/javascript/flavours/glitch/features/notifications/components/filter_bar.jsx # app/javascript/flavours/glitch/features/notifications/components/follow.jsx # app/javascript/flavours/glitch/features/notifications/components/follow_request.jsx # app/javascript/flavours/glitch/features/notifications/index.jsx # app/javascript/flavours/glitch/features/picture_in_picture/components/footer.jsx # app/javascript/flavours/glitch/features/reblogs/index.jsx # app/javascript/flavours/glitch/features/status/components/action_bar.jsx # app/javascript/flavours/glitch/features/status/components/detailed_status.jsx # app/javascript/flavours/glitch/features/status/index.jsx # app/javascript/flavours/glitch/features/ui/components/column_header.jsx # app/javascript/flavours/glitch/features/ui/components/column_link.jsx # app/javascript/flavours/glitch/features/ui/components/doodle_modal.jsx # app/javascript/flavours/glitch/features/ui/components/embed_modal.jsx # app/javascript/flavours/glitch/features/ui/components/filter_modal.jsx # app/javascript/flavours/glitch/features/ui/components/focal_point_modal.jsx # app/javascript/flavours/glitch/features/ui/components/image_modal.jsx # app/javascript/flavours/glitch/features/ui/components/media_modal.jsx # app/javascript/flavours/glitch/features/ui/components/notifications_counter_icon.js # app/javascript/flavours/glitch/features/ui/components/report_modal.jsx
225 lines
8.8 KiB
React
225 lines
8.8 KiB
React
import PropTypes from "prop-types";
|
|
import { PureComponent } from "react";
|
|
|
|
import { defineMessages, injectIntl, FormattedMessage } from "react-intl";
|
|
|
|
import classNames from "classnames";
|
|
import { Helmet } from "react-helmet";
|
|
|
|
import { List as ImmutableList } from "immutable";
|
|
import ImmutablePropTypes from "react-immutable-proptypes";
|
|
import { connect } from "react-redux";
|
|
|
|
import { fetchServer, fetchDomainBlocks } from "flavours/glitch/actions/server";
|
|
import Column from "flavours/glitch/components/column";
|
|
import { Icon } from "flavours/glitch/components/icon";
|
|
import { ServerHeroImage } from "flavours/glitch/components/server_hero_image";
|
|
import { Skeleton } from "flavours/glitch/components/skeleton";
|
|
import Account from "flavours/glitch/containers/account_container";
|
|
import LinkFooter from "flavours/glitch/features/ui/components/link_footer";
|
|
|
|
const messages = defineMessages({
|
|
title: { id: "column.about", defaultMessage: "About" },
|
|
rules: { id: "about.rules", defaultMessage: "Server rules" },
|
|
blocks: { id: "about.blocks", defaultMessage: "Moderated servers" },
|
|
silenced: { id: "about.domain_blocks.silenced.title", defaultMessage: "Limited" },
|
|
silencedExplanation: { id: "about.domain_blocks.silenced.explanation", defaultMessage: "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following." },
|
|
suspended: { id: "about.domain_blocks.suspended.title", defaultMessage: "Suspended" },
|
|
suspendedExplanation: { id: "about.domain_blocks.suspended.explanation", defaultMessage: "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible." },
|
|
});
|
|
|
|
const severityMessages = {
|
|
silence: {
|
|
title: messages.silenced,
|
|
explanation: messages.silencedExplanation,
|
|
},
|
|
|
|
suspend: {
|
|
title: messages.suspended,
|
|
explanation: messages.suspendedExplanation,
|
|
},
|
|
};
|
|
|
|
const mapStateToProps = state => ({
|
|
server: state.getIn(["server", "server"]),
|
|
domainBlocks: state.getIn(["server", "domainBlocks"]),
|
|
});
|
|
|
|
class Section extends PureComponent {
|
|
|
|
static propTypes = {
|
|
title: PropTypes.string,
|
|
children: PropTypes.node,
|
|
open: PropTypes.bool,
|
|
onOpen: PropTypes.func,
|
|
};
|
|
|
|
state = {
|
|
collapsed: !this.props.open,
|
|
};
|
|
|
|
handleClick = () => {
|
|
const { onOpen } = this.props;
|
|
const { collapsed } = this.state;
|
|
|
|
this.setState({ collapsed: !collapsed }, () => onOpen && onOpen());
|
|
};
|
|
|
|
render () {
|
|
const { title, children } = this.props;
|
|
const { collapsed } = this.state;
|
|
|
|
return (
|
|
<div className={classNames("about__section", { active: !collapsed })}>
|
|
<div className='about__section__title' role='button' tabIndex={0} onClick={this.handleClick}>
|
|
<Icon id={collapsed ? "caret-right" : "caret-down"} fixedWidth /> {title}
|
|
</div>
|
|
|
|
{!collapsed && (
|
|
<div className='about__section__body'>{children}</div>
|
|
)}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
class About extends PureComponent {
|
|
|
|
static propTypes = {
|
|
server: ImmutablePropTypes.map,
|
|
domainBlocks: ImmutablePropTypes.contains({
|
|
isLoading: PropTypes.bool,
|
|
isAvailable: PropTypes.bool,
|
|
items: ImmutablePropTypes.list,
|
|
}),
|
|
dispatch: PropTypes.func.isRequired,
|
|
intl: PropTypes.object.isRequired,
|
|
multiColumn: PropTypes.bool,
|
|
};
|
|
|
|
componentDidMount () {
|
|
const { dispatch } = this.props;
|
|
dispatch(fetchServer());
|
|
}
|
|
|
|
handleDomainBlocksOpen = () => {
|
|
const { dispatch } = this.props;
|
|
dispatch(fetchDomainBlocks());
|
|
};
|
|
|
|
render () {
|
|
const { multiColumn, intl, server, domainBlocks } = this.props;
|
|
const isLoading = server.get("isLoading");
|
|
|
|
return (
|
|
<Column bindToDocument={!multiColumn} label={intl.formatMessage(messages.title)}>
|
|
<div className='scrollable about'>
|
|
<div className='about__header'>
|
|
<ServerHeroImage blurhash={server.getIn(["thumbnail", "blurhash"])} src={server.getIn(["thumbnail", "url"])} srcSet={server.getIn(["thumbnail", "versions"])?.map((value, key) => `${value} ${key.replace("@", "")}`).join(", ")} className='about__header__hero' />
|
|
<h1>{isLoading ? <Skeleton width='10ch' /> : server.get("domain")}</h1>
|
|
<p><FormattedMessage id='about.powered_by' defaultMessage='Decentralized social media powered by {torment}' values={{ torment: <a href='https://doom.fandom.com/wiki/Argent_Energy' className='about__mail' target='_blank' rel="noreferrer">torment</a> }} /></p>
|
|
</div>
|
|
|
|
<div className='about__meta'>
|
|
<div className='about__meta__column'>
|
|
<h4><FormattedMessage id='server_banner.administered_by' defaultMessage='Administered by:' /></h4>
|
|
|
|
<Account id={server.getIn(["contact", "account", "id"])} size={36} />
|
|
</div>
|
|
|
|
<hr className='about__meta__divider' />
|
|
|
|
<div className='about__meta__column'>
|
|
<h4><FormattedMessage id='about.contact' defaultMessage='Contact:' /></h4>
|
|
|
|
{isLoading ? <Skeleton width='10ch' /> : <a className='about__mail' href={`mailto:${server.getIn(["contact", "email"])}`}>{server.getIn(["contact", "email"])}</a>}
|
|
</div>
|
|
</div>
|
|
|
|
<Section open title={intl.formatMessage(messages.title)}>
|
|
{isLoading ? (
|
|
<>
|
|
<Skeleton width='100%' />
|
|
<br />
|
|
<Skeleton width='100%' />
|
|
<br />
|
|
<Skeleton width='100%' />
|
|
<br />
|
|
<Skeleton width='70%' />
|
|
</>
|
|
) : (server.get("description")?.length > 0 ? (
|
|
<div
|
|
className='prose'
|
|
dangerouslySetInnerHTML={{ __html: server.get("description") }}
|
|
/>
|
|
) : (
|
|
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
|
|
))}
|
|
</Section>
|
|
|
|
<Section title={intl.formatMessage(messages.rules)}>
|
|
{!isLoading && (server.get("rules", ImmutableList()).isEmpty() ? (
|
|
<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")}>
|
|
<span className='rules-list__text'>{rule.get("text")}</span>
|
|
</li>
|
|
))}
|
|
</ol>
|
|
))}
|
|
</Section>
|
|
|
|
<Section title={intl.formatMessage(messages.blocks)} onOpen={this.handleDomainBlocksOpen}>
|
|
{domainBlocks.get("isLoading") ? (
|
|
<>
|
|
<Skeleton width='100%' />
|
|
<br />
|
|
<Skeleton width='70%' />
|
|
</>
|
|
) : (domainBlocks.get("isAvailable") ? (
|
|
<>
|
|
<p><FormattedMessage id='about.domain_blocks.preamble' defaultMessage='Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.' /></p>
|
|
|
|
<div className='about__domain-blocks'>
|
|
{domainBlocks.get("items").map(block => (
|
|
<div className='about__domain-blocks__domain' key={block.get("domain")}>
|
|
<div className='about__domain-blocks__domain__header'>
|
|
<h6><span title={`SHA-256: ${block.get("digest")}`}>{block.get("domain")}</span></h6>
|
|
<span className='about__domain-blocks__domain__type' title={intl.formatMessage(severityMessages[block.get("severity")].explanation)}>{intl.formatMessage(severityMessages[block.get("severity")].title)}</span>
|
|
</div>
|
|
|
|
<p>{(block.get("comment") || "").length > 0 ? block.get("comment") : <FormattedMessage id='about.domain_blocks.no_reason_available' defaultMessage='Reason not available' />}</p>
|
|
</div>
|
|
))}
|
|
</div>
|
|
</>
|
|
) : (
|
|
<p><FormattedMessage id='about.not_available' defaultMessage='This information has not been made available on this server.' /></p>
|
|
))}
|
|
</Section>
|
|
|
|
<LinkFooter />
|
|
|
|
<div className='about__footer'>
|
|
<p><FormattedMessage
|
|
id='about.fork_disclaimer'
|
|
defaultMessage='Masto-FE (🦥 flavour) is open source software forked from Mastodon via Glitch.'
|
|
/></p>
|
|
</div>
|
|
</div>
|
|
|
|
<Helmet>
|
|
<title>{intl.formatMessage(messages.title)}</title>
|
|
<meta name='robots' content='all' />
|
|
</Helmet>
|
|
</Column>
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
export default connect(mapStateToProps)(injectIntl(About));
|