diff --git a/app/icons/COPYING.md b/app/icons/COPYING.md index d99855b130..de5c4fcf8d 100644 --- a/app/icons/COPYING.md +++ b/app/icons/COPYING.md @@ -2,11 +2,9 @@ - dashboard-filled.svg - Modified from Tabler icons, MIT - fediverse.svg - Modified from Wikipedia, CC0 -- gavel.svg - Created by ramsha61 for this project, MIT - home-squared.svg - Modified from Tabler icons, MIT - pen-plus.svg - Modified from Tabler icons, MIT Tabler: https://tabler-icons.io/ Feather: https://feathericons.com/ Fediverse logo: https://en.wikipedia.org/wiki/Fediverse#/media/File:Fediverse_logo_proposal.svg -ramsha61: https://www.fiverr.com/ramsha61 diff --git a/app/icons/gavel.svg b/app/icons/gavel.svg deleted file mode 100644 index 38a0ff272e..0000000000 --- a/app/icons/gavel.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app/soapbox/__fixtures__/alex.json b/app/soapbox/__fixtures__/alex.json new file mode 100644 index 0000000000..022978fdee --- /dev/null +++ b/app/soapbox/__fixtures__/alex.json @@ -0,0 +1,127 @@ +{ + "acct": "alex", + "avatar": "https://media.gleasonator.com/6d64aecb17348b23aaff78db4687b9476cb0da1c07cc6a819c2e6ec7144c18b1.png", + "avatar_static": "https://media.gleasonator.com/6d64aecb17348b23aaff78db4687b9476cb0da1c07cc6a819c2e6ec7144c18b1.png", + "bot": false, + "created_at": "2020-01-08T01:25:43.000Z", + "display_name": "Alex Gleason", + "emojis": [], + "fields": [ + { + "name": "Website", + "value": "https://alexgleason.me" + }, + { + "name": "Soapbox", + "value": "https://soapbox.pub" + }, + { + "name": "Email", + "value": "alex@alexgleason.me" + }, + { + "name": "Gender identity", + "value": "Soyboy" + }, + { + "name": "Donate (PayPal)", + "value": "https://paypal.me/gleasonator" + }, + { + "name": "$BTC", + "value": "bc1q9cx35adpm73aq2fw40ye6ts8hfxqzjr5unwg0n" + }, + { + "name": "$ETH", + "value": "0xAc9aB5Fc04Dc1cB1789Af75b523Bd23C70B2D717" + }, + { + "name": "$DOGE", + "value": "D5zVZs6jrRakaPVGiErkQiHt9sayzm6V5D" + }, + { + "name": "$XMR", + "value": "45JDCLrjJ4bgVUSbbs2yjy9m5Mf4VLPW8fG7jw9sq5u69rXZZopQogZNeyYkMBnXpkaip4p4QwaaJNhdTotPa9g44DBCzdK" + } + ], + "followers_count": 2378, + "following_count": 1571, + "fqn": "alex@gleasonator.com", + "header": "https://media.gleasonator.com/accounts/headers/000/000/001/original/9d0e4dbf1c9dbc8f.png", + "header_static": "https://media.gleasonator.com/accounts/headers/000/000/001/original/9d0e4dbf1c9dbc8f.png", + "id": "9v5bmRalQvjOy0ECcC", + "last_status_at": "2022-02-20T04:14:49", + "locked": false, + "note": "I create Fediverse software that empowers people online.

I'm vegan btw

Note: If you have a question for me, please tag me publicly. This gives the opportunity for others to chime in, and bystanders to learn.", + "pleroma": { + "accepts_chat_messages": true, + "also_known_as": [ + "https://mitra.social/users/alex" + ], + "ap_id": "https://gleasonator.com/users/alex", + "background_image": null, + "birthday": "1993-07-03", + "favicon": "https://gleasonator.com/favicon.png", + "hide_favorites": true, + "hide_followers": false, + "hide_followers_count": false, + "hide_follows": false, + "hide_follows_count": false, + "is_admin": true, + "is_confirmed": true, + "is_moderator": false, + "is_suggested": true, + "relationship": {}, + "skip_thread_containment": false, + "tags": [] + }, + "source": { + "fields": [ + { + "name": "Website", + "value": "https://alexgleason.me" + }, + { + "name": "Soapbox", + "value": "https://soapbox.pub" + }, + { + "name": "Email", + "value": "alex@alexgleason.me" + }, + { + "name": "Gender identity", + "value": "Soyboy" + }, + { + "name": "Donate (PayPal)", + "value": "https://paypal.me/gleasonator" + }, + { + "name": "$BTC", + "value": "bc1q9cx35adpm73aq2fw40ye6ts8hfxqzjr5unwg0n" + }, + { + "name": "$ETH", + "value": "0xAc9aB5Fc04Dc1cB1789Af75b523Bd23C70B2D717" + }, + { + "name": "$DOGE", + "value": "D5zVZs6jrRakaPVGiErkQiHt9sayzm6V5D" + }, + { + "name": "$XMR", + "value": "45JDCLrjJ4bgVUSbbs2yjy9m5Mf4VLPW8fG7jw9sq5u69rXZZopQogZNeyYkMBnXpkaip4p4QwaaJNhdTotPa9g44DBCzdK" + } + ], + "note": "I create Fediverse software that empowers people online.\r\n\r\nI'm vegan btw\r\n\r\nNote: If you have a question for me, please tag me publicly. This gives the opportunity for others to chime in, and bystanders to learn.", + "pleroma": { + "actor_type": "Person", + "discoverable": false + }, + "sensitive": false + }, + "statuses_count": 23477, + "url": "https://gleasonator.com/users/alex", + "username": "alex" +} diff --git a/app/soapbox/__fixtures__/fedibird-instance.json b/app/soapbox/__fixtures__/fedibird-instance.json new file mode 100644 index 0000000000..31e17e34e0 --- /dev/null +++ b/app/soapbox/__fixtures__/fedibird-instance.json @@ -0,0 +1,185 @@ +{ + "uri": "fedibird.com", + "title": "Fedibird", + "short_description": "多くの独自機能を備えた、連合志向の汎用Mastodonサーバです。Fediverseの活動拠点としてご利用ください。", + "description": "多くの独自機能を備えた、連合志向の汎用Mastodonサーバです。Fediverseの活動拠点としてご利用ください。", + "email": "support@fedibird.com", + "version": "3.4.1", + "urls": { + "streaming_api": "wss://fedibird.com" + }, + "stats": { + "user_count": 1964, + "status_count": 4590304, + "domain_count": 9024 + }, + "thumbnail": "https://s3.fedibird.com/site_uploads/files/000/000/001/original/fedibird_hero_image.png", + "languages": [ + "ja" + ], + "registrations": true, + "approval_required": false, + "invites_enabled": true, + "configuration": { + "statuses": { + "max_characters": 500, + "max_media_attachments": 4, + "characters_reserved_per_url": 23, + "min_expiration": 60, + "max_expiration": 37152000, + "supported_expires_actions": [ + "delete", + "mark" + ] + }, + "media_attachments": { + "supported_mime_types": [ + "image/jpeg", + "image/png", + "image/gif", + "image/webp", + "image/heif", + "image/heic", + "video/webm", + "video/mp4", + "video/quicktime", + "video/ogg", + "audio/wave", + "audio/wav", + "audio/x-wav", + "audio/x-pn-wave", + "audio/ogg", + "audio/mpeg", + "audio/mp3", + "audio/webm", + "audio/flac", + "audio/aac", + "audio/m4a", + "audio/x-m4a", + "audio/mp4", + "audio/3gpp", + "video/x-ms-asf" + ], + "image_size_limit": 10485760, + "image_matrix_limit": 16777216, + "video_size_limit": 41943040, + "video_frame_rate_limit": 60, + "video_matrix_limit": 2304000 + }, + "polls": { + "max_options": 4, + "max_characters_per_option": 50, + "min_expiration": 300, + "max_expiration": 2629746 + }, + "emoji_reactions": { + "max_reactions": 20 + } + }, + "feature_quote": true, + "fedibird_capabilities": [ + "favourite_hashtag", + "favourite_domain", + "favourite_list", + "status_expire", + "follow_no_delivery", + "follow_hashtag", + "subscribe_account", + "subscribe_domain", + "subscribe_keyword", + "timeline_home_visibility", + "timeline_no_local", + "timeline_domain", + "timeline_group", + "timeline_group_directory", + "visibility_mutual", + "visibility_limited", + "emoji_reaction", + "misskey_birthday", + "misskey_location" + ], + "contact_account": { + "id": "1", + "username": "noellabo", + "acct": "noellabo", + "display_name": "のえる", + "locked": false, + "bot": false, + "cat": false, + "discoverable": true, + "group": false, + "created_at": "2019-08-15T00:00:00.000Z", + "note": "

主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。

Mastodonサーバ『Fedibird』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more@info を参照してください。

", + "url": "https://fedibird.com/@noellabo", + "avatar": "https://s3.fedibird.com/accounts/avatars/000/000/001/original/6ef3b7f18f726755.png", + "avatar_static": "https://s3.fedibird.com/accounts/avatars/000/000/001/original/6ef3b7f18f726755.png", + "header": "https://s3.fedibird.com/accounts/headers/000/000/001/original/6a5a51722c094835.jpg", + "header_static": "https://s3.fedibird.com/accounts/headers/000/000/001/original/6a5a51722c094835.jpg", + "followers_count": 1560, + "following_count": 758, + "subscribing_count": 121, + "statuses_count": 61325, + "last_status_at": "2022-02-24", + "emojis": [ + { + "shortcode": "liberapay", + "url": "https://s3.fedibird.com/custom_emojis/images/000/025/634/original/5b8620742973f844.png", + "static_url": "https://s3.fedibird.com/custom_emojis/images/000/025/634/static/5b8620742973f844.png", + "visible_in_picker": true + }, + { + "shortcode": "mastodon", + "url": "https://s3.fedibird.com/custom_emojis/images/000/008/396/original/1317b6f8efcf8318.png", + "static_url": "https://s3.fedibird.com/custom_emojis/images/000/008/396/static/1317b6f8efcf8318.png", + "visible_in_picker": true + } + ], + "fields": [ + { + "name": ":liberapay: Liberapay", + "value": "https://liberapay.com/noellabo", + "verified_at": "2020-10-22T03:04:43.206+00:00" + }, + { + "name": ":mastodon: DTP-Mstdn.jp", + "value": "https://dtp-mstdn.jp/@noellabo", + "verified_at": "2020-05-23T00:14:02.232+00:00" + }, + { + "name": "別宅", + "value": "https://gorone.xyz/@noellabo", + "verified_at": "2021-08-11T07:48:53.479+00:00" + }, + { + "name": "bluesky community", + "value": "https://mastodon.blueskycommunity.net/@noellabo", + "verified_at": "2021-11-13T04:28:30.593+00:00" + } + ], + "other_settings": { + "birthday": null, + "location": "埼玉県", + "cat_ears_color": "#d5c5c0", + "noindex": false, + "hide_network": false, + "hide_statuses_count": false, + "hide_following_count": false, + "hide_followers_count": false, + "enable_reaction": true + } + }, + "rules": [ + { + "id": "2", + "text": "日本の法律と社会規範に従った行動を心がけてください" + }, + { + "id": "3", + "text": "不快や脅威に対してはブロック・ミュート・フィルターで距離をとってください" + }, + { + "id": "1", + "text": "投稿する際は、適切な公開範囲・CW・閲覧注意を使用してください" + } + ] +} diff --git a/app/soapbox/__fixtures__/friendica-instance.json b/app/soapbox/__fixtures__/friendica-instance.json new file mode 100644 index 0000000000..cb6902d1ff --- /dev/null +++ b/app/soapbox/__fixtures__/friendica-instance.json @@ -0,0 +1,46 @@ +{ + "uri": "https://ica.mkljczk.pl", + "title": "Friendica Social Network", + "short_description": "", + "description": "", + "email": "me@mkljczk.pl", + "version": "2022.05-dev", + "urls": null, + "stats": { + "user_count": 0, + "status_count": 0, + "domain_count": 0 + }, + "thumbnail": "https://ica.mkljczk.plimages/friendica-32.png", + "languages": [ + "pl" + ], + "max_toot_chars": 200000, + "registrations": true, + "approval_required": false, + "invites_enabled": false, + "contact_account": { + "id": "2", + "username": "nofriend", + "acct": "nofriend", + "display_name": "marcin mikołajczak", + "locked": true, + "bot": false, + "discoverable": true, + "group": false, + "created_at": "2022-02-19T14:51:00.000Z", + "note": "", + "url": "https://ica.mkljczk.pl/profile/nofriend", + "avatar": "https://ica.mkljczk.pl/photo/contact/300/68a16c11-1262-1103-d40b-806159848009?ts=1645292106", + "avatar_static": "https://ica.mkljczk.pl/photo/contact/300/68a16c11-1262-1103-d40b-806159848009?ts=1645292106", + "header": "https://ica.mkljczk.pl/photo/header/68a16c11-1262-1103-d40b-806159848009?ts=1645292106", + "header_static": "https://ica.mkljczk.pl/photo/header/68a16c11-1262-1103-d40b-806159848009?ts=1645292106", + "followers_count": 0, + "following_count": 1, + "statuses_count": 0, + "last_status_at": "2022-02-20", + "emojis": [], + "fields": [] + }, + "rules": [] +} diff --git a/app/soapbox/__fixtures__/friendica-status.json b/app/soapbox/__fixtures__/friendica-status.json new file mode 100644 index 0000000000..fc64e430e7 --- /dev/null +++ b/app/soapbox/__fixtures__/friendica-status.json @@ -0,0 +1,53 @@ +{ + "id": "106", + "created_at": "2022-02-19T18:19:40.000Z", + "in_reply_to_id": null, + "in_reply_to_account_id": null, + "sensitive": false, + "spoiler_text": "", + "visibility": "public", + "language": "fa", + "uri": "https://ica.mkljczk.pl/objects/68a16c11-4262-1134-bc4e-0db298374337", + "url": "https://ica.mkljczk.pl/display/68a16c11-4262-1134-bc4e-0db298374337", + "replies_count": 0, + "reblogs_count": 0, + "favourites_count": 0, + "favourited": false, + "reblogged": false, + "muted": false, + "bookmarked": true, + "content": "Hello to Friendica from fe.soapbox.pub!", + "reblog": null, + "application": { + "name": "Soapbox FE" + }, + "account": { + "id": "95", + "username": "alex", + "acct": "alex", + "display_name": "Alex Gleason", + "locked": true, + "bot": false, + "discoverable": false, + "group": false, + "created_at": "2022-02-19T18:17:43.000Z", + "note": "", + "url": "https://ica.mkljczk.pl/profile/alex", + "avatar": "https://ica.mkljczk.pl/photo/contact/300/68a16c11-1862-1134-4779-f98088458845?ts=1645294804", + "avatar_static": "https://ica.mkljczk.pl/photo/contact/300/68a16c11-1862-1134-4779-f98088458845?ts=1645294804", + "header": "https://ica.mkljczk.pl/photo/header/68a16c11-1862-1134-4779-f98088458845?ts=1645294804", + "header_static": "https://ica.mkljczk.pl/photo/header/68a16c11-1862-1134-4779-f98088458845?ts=1645294804", + "followers_count": 0, + "following_count": 0, + "statuses_count": 2, + "last_status_at": "2022-02-19", + "emojis": [], + "fields": [] + }, + "media_attachments": [], + "mentions": [], + "tags": [], + "emojis": [], + "card": null, + "poll": null +} diff --git a/app/soapbox/__fixtures__/gotosocial-account.json b/app/soapbox/__fixtures__/gotosocial-account.json new file mode 100644 index 0000000000..3700bc4735 --- /dev/null +++ b/app/soapbox/__fixtures__/gotosocial-account.json @@ -0,0 +1,27 @@ +{ + "id": "00YSECR4P7E64BD5MBA639PRVT", + "username": "alex", + "acct": "alex", + "display_name": "Alex Gleason", + "locked": false, + "bot": false, + "created_at": "2022-02-23T22:43:55Z", + "note": "

My GoToSocial profile

", + "url": "http://localhost/@alex", + "avatar": "", + "avatar_static": "", + "header": "", + "header_static": "", + "followers_count": 0, + "following_count": 0, + "statuses_count": 1, + "last_status_at": "2022-02-23T22:54:14Z", + "emojis": [], + "fields": [], + "source": { + "privacy": "unlisted", + "language": "en", + "note": "

My GoToSocial profile

", + "fields": [] + } +} diff --git a/app/soapbox/__fixtures__/gotosocial-instance.json b/app/soapbox/__fixtures__/gotosocial-instance.json new file mode 100644 index 0000000000..fdaf4c96b4 --- /dev/null +++ b/app/soapbox/__fixtures__/gotosocial-instance.json @@ -0,0 +1,42 @@ +{ + "uri": "http://localhost", + "title": "localhost", + "description": "", + "short_description": "", + "email": "", + "version": "0.2.0 31935ee", + "registrations": true, + "approval_required": true, + "invites_enabled": false, + "urls": { + "streaming_api": "wss://localhost" + }, + "stats": { + "domain_count": 0, + "status_count": 1, + "user_count": 1 + }, + "thumbnail": "", + "contact_account": { + "id": "", + "username": "", + "acct": "", + "display_name": "", + "locked": false, + "bot": false, + "created_at": "", + "note": "", + "url": "", + "avatar": "", + "avatar_static": "", + "header": "", + "header_static": "", + "followers_count": 0, + "following_count": 0, + "statuses_count": 0, + "last_status_at": "", + "emojis": null, + "fields": null + }, + "max_toot_chars": 5000 +} diff --git a/app/soapbox/__fixtures__/gotosocial-status.json b/app/soapbox/__fixtures__/gotosocial-status.json new file mode 100644 index 0000000000..3546482b27 --- /dev/null +++ b/app/soapbox/__fixtures__/gotosocial-status.json @@ -0,0 +1,50 @@ +{ + "id": "01FWMCNM07GGDV8HF40NZ9YTGR", + "created_at": "2022-02-23T22:54:14Z", + "sensitive": false, + "spoiler_text": "", + "visibility": "public", + "language": "en", + "uri": "http://localhost/users/alex/statuses/01FWMCNM07GGDV8HF40NZ9YTGR", + "url": "http://localhost/@alex/statuses/01FWMCNM07GGDV8HF40NZ9YTGR", + "replies_count": 0, + "reblogs_count": 0, + "favourites_count": 0, + "favourited": false, + "reblogged": false, + "muted": false, + "bookmarked": false, + "content": "

Hello GoToSocial!

", + "application": { + "name": "Soapbox FE", + "website": "https://soapbox.pub/" + }, + "account": { + "id": "00YSECR4P7E64BD5MBA639PRVT", + "username": "alex", + "acct": "alex", + "display_name": "alex", + "locked": false, + "bot": false, + "created_at": "2022-02-23T22:43:55Z", + "note": "", + "url": "http://localhost/@alex", + "avatar": "", + "avatar_static": "", + "header": "", + "header_static": "", + "followers_count": 0, + "following_count": 0, + "statuses_count": 1, + "last_status_at": "2022-02-23T22:54:14Z", + "emojis": [], + "fields": [] + }, + "media_attachments": [], + "mentions": [], + "tags": [], + "emojis": [], + "card": null, + "poll": null, + "text": "Hello GoToSocial!" +} diff --git a/app/soapbox/__fixtures__/mastodon-reply-to-self.json b/app/soapbox/__fixtures__/mastodon-reply-to-self.json new file mode 100644 index 0000000000..7cfc756f36 --- /dev/null +++ b/app/soapbox/__fixtures__/mastodon-reply-to-self.json @@ -0,0 +1,51 @@ +{ + "id": "107828148293766288", + "created_at": "2022-02-20T03:16:09.812Z", + "in_reply_to_id": "107828147870368566", + "in_reply_to_account_id": "106801667066418367", + "sensitive": false, + "spoiler_text": "", + "visibility": "public", + "language": "en", + "uri": "https://mastodon.social/users/benis911/statuses/107828148293766288", + "url": "https://mastodon.social/@benis911/107828148293766288", + "replies_count": 0, + "reblogs_count": 0, + "favourites_count": 0, + "edited_at": null, + "content": "

test reply to self

", + "reblog": null, + "application": { + "name": "Soapbox FE", + "website": "https://soapbox.pub/" + }, + "account": { + "id": "106801667066418367", + "username": "benis911", + "acct": "benis911", + "display_name": "", + "locked": false, + "bot": false, + "discoverable": null, + "group": false, + "created_at": "2021-08-22T00:00:00.000Z", + "note": "

", + "url": "https://mastodon.social/@benis911", + "avatar": "https://mastodon.social/avatars/original/missing.png", + "avatar_static": "https://mastodon.social/avatars/original/missing.png", + "header": "https://mastodon.social/headers/original/missing.png", + "header_static": "https://mastodon.social/headers/original/missing.png", + "followers_count": 0, + "following_count": 0, + "statuses_count": 3, + "last_status_at": "2022-02-20", + "emojis": [], + "fields": [] + }, + "media_attachments": [], + "mentions": [], + "tags": [], + "emojis": [], + "card": null, + "poll": null +} diff --git a/app/soapbox/__fixtures__/mitra-instance.json b/app/soapbox/__fixtures__/mitra-instance.json new file mode 100644 index 0000000000..2c476ba304 --- /dev/null +++ b/app/soapbox/__fixtures__/mitra-instance.json @@ -0,0 +1,13 @@ +{ + "uri": "mitra.social", + "title": "Mitra", + "short_description": "Federated social network with smart contracts", + "description": "This is an instance of [Mitra](https://codeberg.org/silverpill/mitra), federated social network built on [ActivityPub](https://activitypub.rocks/) protocol.\nRegistration is invitation-only.\nAdmin:\n - [@silverpill@mitra.social](https://mitra.social/profile/dd4ebc18-269d-4c7b-a310-03d29c6ab551)\n - Matrix: @silverpill:poa.st\n", + "version": "3.0.0 (compatible; Mitra 0.4.0)", + "registrations": false, + "login_message": "Sign this message to log in to https://mitra.social. Do not sign this message on other sites!", + "post_character_limit": 5000, + "blockchain_explorer_url": null, + "blockchain_contract_address": null, + "ipfs_gateway_url": "https://ipfs.mitra.social" +} diff --git a/app/soapbox/__fixtures__/status-custom-emoji.json b/app/soapbox/__fixtures__/status-custom-emoji.json new file mode 100644 index 0000000000..ac3f184ee4 --- /dev/null +++ b/app/soapbox/__fixtures__/status-custom-emoji.json @@ -0,0 +1,126 @@ +{ + "account": { + "acct": "benis911", + "avatar": "https://gleasonator.com/images/avi.png", + "avatar_static": "https://gleasonator.com/images/avi.png", + "bot": false, + "created_at": "2021-03-26T20:42:11.000Z", + "display_name": "benis911", + "emojis": [], + "fields": [], + "followers_count": 0, + "following_count": 0, + "fqn": "benis911@gleasonator.com", + "header": "https://media.gleasonator.com/fc595bbbcf5aabefecd1c2adfe5b7f5457db59847992881668653a0338ba25bd.jpg", + "header_static": "https://media.gleasonator.com/fc595bbbcf5aabefecd1c2adfe5b7f5457db59847992881668653a0338ba25bd.jpg", + "id": "A5c5LK7EJTFR0u26Pg", + "last_status_at": "2022-02-23T17:31:08", + "locked": true, + "note": "hello world 2", + "pleroma": { + "accepts_chat_messages": true, + "also_known_as": [ + "https://gleasonator.com/users/alex", + "https://poa.st/users/alex" + ], + "ap_id": "https://gleasonator.com/users/benis911", + "background_image": null, + "birthday": "2000-01-25", + "favicon": "https://gleasonator.com/favicon.png", + "hide_favorites": true, + "hide_followers": true, + "hide_followers_count": true, + "hide_follows": true, + "hide_follows_count": true, + "is_admin": false, + "is_confirmed": true, + "is_moderator": false, + "is_suggested": false, + "relationship": {}, + "skip_thread_containment": false, + "tags": [] + }, + "source": { + "fields": [], + "note": "hello world 2", + "pleroma": { + "actor_type": "Person", + "discoverable": false + }, + "sensitive": false + }, + "statuses_count": 152, + "url": "https://gleasonator.com/users/benis911", + "username": "benis911" + }, + "application": { + "name": "Soapbox FE", + "website": "https://soapbox.pub/" + }, + "bookmarked": false, + "card": null, + "content": "Hello :ablobcathyper: :ageblobcat: 😂 world 😋 test :blobcatphoto:", + "created_at": "2022-02-23T17:31:07.000Z", + "emojis": [ + { + "shortcode": "ablobcathyper", + "static_url": "https://gleasonator.com/emoji/blobcat/ablobcathyper.png", + "url": "https://gleasonator.com/emoji/blobcat/ablobcathyper.png", + "visible_in_picker": false + }, + { + "shortcode": "ageblobcat", + "static_url": "https://gleasonator.com/emoji/blobcat/ageblobcat.png", + "url": "https://gleasonator.com/emoji/blobcat/ageblobcat.png", + "visible_in_picker": false + }, + { + "shortcode": "blobcatphoto", + "static_url": "https://gleasonator.com/emoji/blobcat/blobcatphoto.png", + "url": "https://gleasonator.com/emoji/blobcat/blobcatphoto.png", + "visible_in_picker": false + } + ], + "favourited": false, + "favourites_count": 0, + "id": "AGm7uC9DaAIGUa4KYK", + "in_reply_to_account_id": null, + "in_reply_to_id": null, + "language": null, + "media_attachments": [], + "mentions": [], + "muted": false, + "pinned": false, + "pleroma": { + "content": { + "text/plain": "Hello :ablobcathyper: :ageblobcat: 😂 world 😋 test :blobcatphoto:" + }, + "conversation_id": "AGm7uC3BwZTOBtFW9w", + "direct_conversation_id": null, + "emoji_reactions": [], + "expires_at": null, + "in_reply_to_account_acct": null, + "local": true, + "parent_visible": false, + "pinned_at": null, + "quote": null, + "quote_url": null, + "quote_visible": false, + "spoiler_text": { + "text/plain": "" + }, + "thread_muted": false + }, + "poll": null, + "reblog": null, + "reblogged": false, + "reblogs_count": 0, + "replies_count": 0, + "sensitive": false, + "spoiler_text": "", + "tags": [], + "text": null, + "uri": "https://gleasonator.com/objects/2dc79219-aed6-40c0-8818-0c2d26ed3436", + "url": "https://gleasonator.com/notice/AGm7uC9DaAIGUa4KYK", + "visibility": "public" +} diff --git a/app/soapbox/__fixtures__/status-cw.json b/app/soapbox/__fixtures__/status-cw.json new file mode 100644 index 0000000000..af9978cfb4 --- /dev/null +++ b/app/soapbox/__fixtures__/status-cw.json @@ -0,0 +1,63 @@ +{ + "id": "107831528995252317", + "created_at": "2022-02-20T17:35:55.224Z", + "in_reply_to_id": null, + "in_reply_to_account_id": null, + "sensitive": true, + "spoiler_text": "testing", + "visibility": "public", + "language": "en", + "uri": "https://fedibird.com/users/alex/statuses/107831528995252317", + "url": "https://fedibird.com/@alex/107831528995252317", + "replies_count": 0, + "reblogs_count": 0, + "favourites_count": 0, + "emoji_reactions_count": 0, + "emoji_reactions": [], + "content": "

hello world

", + "reblog": null, + "application": { + "name": "Web", + "website": null + }, + "account": { + "id": "66768", + "username": "alex", + "acct": "alex", + "display_name": "", + "locked": false, + "bot": false, + "cat": false, + "discoverable": null, + "group": false, + "created_at": "2020-01-27T00:00:00.000Z", + "note": "

", + "url": "https://fedibird.com/@alex", + "avatar": "https://fedibird.com/avatars/original/missing.png", + "avatar_static": "https://fedibird.com/avatars/original/missing.png", + "header": "https://fedibird.com/headers/original/missing.png", + "header_static": "https://fedibird.com/headers/original/missing.png", + "followers_count": 1, + "following_count": 1, + "subscribing_count": 0, + "statuses_count": 5, + "last_status_at": "2022-02-20", + "emojis": [], + "fields": [], + "other_settings": { + "noindex": false, + "hide_network": false, + "hide_statuses_count": false, + "hide_following_count": false, + "hide_followers_count": false, + "enable_reaction": true + } + }, + "media_attachments": [], + "mentions": [], + "tags": [], + "emojis": [], + "card": null, + "poll": null, + "quote": null +} diff --git a/app/soapbox/__fixtures__/status-with-poll.json b/app/soapbox/__fixtures__/status-with-poll.json new file mode 100644 index 0000000000..9dfd90d7ed --- /dev/null +++ b/app/soapbox/__fixtures__/status-with-poll.json @@ -0,0 +1,201 @@ +{ + "account": { + "acct": "alex", + "avatar": "https://media.gleasonator.com/6d64aecb17348b23aaff78db4687b9476cb0da1c07cc6a819c2e6ec7144c18b1.png", + "avatar_static": "https://media.gleasonator.com/6d64aecb17348b23aaff78db4687b9476cb0da1c07cc6a819c2e6ec7144c18b1.png", + "bot": false, + "created_at": "2020-01-08T01:25:43.000Z", + "display_name": "Alex Gleason", + "emojis": [], + "fields": [ + { + "name": "Website", + "value": "https://alexgleason.me" + }, + { + "name": "Soapbox", + "value": "https://soapbox.pub" + }, + { + "name": "Email", + "value": "alex@alexgleason.me" + }, + { + "name": "Gender identity", + "value": "Soyboy" + }, + { + "name": "Donate (PayPal)", + "value": "https://paypal.me/gleasonator" + }, + { + "name": "$BTC", + "value": "bc1q9cx35adpm73aq2fw40ye6ts8hfxqzjr5unwg0n" + }, + { + "name": "$ETH", + "value": "0xAc9aB5Fc04Dc1cB1789Af75b523Bd23C70B2D717" + }, + { + "name": "$DOGE", + "value": "D5zVZs6jrRakaPVGiErkQiHt9sayzm6V5D" + }, + { + "name": "$XMR", + "value": "45JDCLrjJ4bgVUSbbs2yjy9m5Mf4VLPW8fG7jw9sq5u69rXZZopQogZNeyYkMBnXpkaip4p4QwaaJNhdTotPa9g44DBCzdK" + } + ], + "followers_count": 2390, + "following_count": 1574, + "fqn": "alex@gleasonator.com", + "header": "https://media.gleasonator.com/accounts/headers/000/000/001/original/9d0e4dbf1c9dbc8f.png", + "header_static": "https://media.gleasonator.com/accounts/headers/000/000/001/original/9d0e4dbf1c9dbc8f.png", + "id": "9v5bmRalQvjOy0ECcC", + "last_status_at": "2022-02-23T17:54:41", + "locked": false, + "note": "I create Fediverse software that empowers people online.

I'm vegan btw

Note: If you have a question for me, please tag me publicly. This gives the opportunity for others to chime in, and bystanders to learn.", + "pleroma": { + "accepts_chat_messages": true, + "also_known_as": [ + "https://mitra.social/users/alex" + ], + "ap_id": "https://gleasonator.com/users/alex", + "background_image": null, + "birthday": "1993-07-03", + "favicon": "https://gleasonator.com/favicon.png", + "hide_favorites": true, + "hide_followers": false, + "hide_followers_count": false, + "hide_follows": false, + "hide_follows_count": false, + "is_admin": true, + "is_confirmed": true, + "is_moderator": false, + "is_suggested": true, + "relationship": {}, + "skip_thread_containment": false, + "tags": [] + }, + "source": { + "fields": [ + { + "name": "Website", + "value": "https://alexgleason.me" + }, + { + "name": "Soapbox", + "value": "https://soapbox.pub" + }, + { + "name": "Email", + "value": "alex@alexgleason.me" + }, + { + "name": "Gender identity", + "value": "Soyboy" + }, + { + "name": "Donate (PayPal)", + "value": "https://paypal.me/gleasonator" + }, + { + "name": "$BTC", + "value": "bc1q9cx35adpm73aq2fw40ye6ts8hfxqzjr5unwg0n" + }, + { + "name": "$ETH", + "value": "0xAc9aB5Fc04Dc1cB1789Af75b523Bd23C70B2D717" + }, + { + "name": "$DOGE", + "value": "D5zVZs6jrRakaPVGiErkQiHt9sayzm6V5D" + }, + { + "name": "$XMR", + "value": "45JDCLrjJ4bgVUSbbs2yjy9m5Mf4VLPW8fG7jw9sq5u69rXZZopQogZNeyYkMBnXpkaip4p4QwaaJNhdTotPa9g44DBCzdK" + } + ], + "note": "I create Fediverse software that empowers people online.\r\n\r\nI'm vegan btw\r\n\r\nNote: If you have a question for me, please tag me publicly. This gives the opportunity for others to chime in, and bystanders to learn.", + "pleroma": { + "actor_type": "Person", + "discoverable": false + }, + "sensitive": false + }, + "statuses_count": 23502, + "url": "https://gleasonator.com/users/alex", + "username": "alex" + }, + "application": null, + "bookmarked": false, + "card": null, + "content": "

What is tolerance?

", + "created_at": "2020-03-23T19:33:06.000Z", + "emojis": [], + "favourited": false, + "favourites_count": 47, + "id": "103874034847713213", + "in_reply_to_account_id": null, + "in_reply_to_id": null, + "language": null, + "media_attachments": [], + "mentions": [], + "muted": false, + "pinned": true, + "pleroma": { + "content": { + "text/plain": "What is tolerance?" + }, + "conversation_id": "3023268", + "direct_conversation_id": null, + "emoji_reactions": [ + { + "count": 3, + "me": false, + "name": "❤️" + } + ], + "expires_at": null, + "in_reply_to_account_acct": null, + "local": true, + "parent_visible": false, + "pinned_at": "2021-11-23T01:38:44.000Z", + "quote": null, + "quote_url": null, + "quote_visible": false, + "spoiler_text": { + "text/plain": "" + }, + "thread_muted": false + }, + "poll": { + "emojis": [], + "expired": true, + "expires_at": "2020-03-24T19:33:06.000Z", + "id": "4930", + "multiple": false, + "options": [ + { + "title": "Banning, censoring, and deplatforming anyone you disagree with", + "votes_count": 2 + }, + { + "title": "Promoting free speech, even for people and ideas you dislike", + "votes_count": 36 + } + ], + "voters_count": 2, + "votes_count": 38 + }, + "reblog": null, + "reblogged": false, + "reblogs_count": 26, + "replies_count": 14, + "sensitive": false, + "spoiler_text": "", + "tags": [], + "text": null, + "uri": "https://gleasonator.com/users/alex/statuses/103874034847713213", + "url": "https://gleasonator.com/notice/103874034847713213", + "visibility": "public" +} diff --git a/app/soapbox/actions/account_notes.js b/app/soapbox/actions/account_notes.js new file mode 100644 index 0000000000..d6aeefc499 Binary files /dev/null and b/app/soapbox/actions/account_notes.js differ diff --git a/app/soapbox/actions/importer/index.js b/app/soapbox/actions/importer/index.js index 3a019e6369..56efcf6517 100644 Binary files a/app/soapbox/actions/importer/index.js and b/app/soapbox/actions/importer/index.js differ diff --git a/app/soapbox/actions/importer/normalizer.js b/app/soapbox/actions/importer/normalizer.js index 7d40357f0a..4de148c0ba 100644 Binary files a/app/soapbox/actions/importer/normalizer.js and b/app/soapbox/actions/importer/normalizer.js differ diff --git a/app/soapbox/actions/soapbox.js b/app/soapbox/actions/soapbox.js index d85bd0f0ff..03814cf7c6 100644 Binary files a/app/soapbox/actions/soapbox.js and b/app/soapbox/actions/soapbox.js differ diff --git a/app/soapbox/components/error_boundary.js b/app/soapbox/components/error_boundary.js index b739445752..2e7c3f717f 100644 Binary files a/app/soapbox/components/error_boundary.js and b/app/soapbox/components/error_boundary.js differ diff --git a/app/soapbox/components/status_action_bar.js b/app/soapbox/components/status_action_bar.js index 1780f65759..1770d7cc21 100644 Binary files a/app/soapbox/components/status_action_bar.js and b/app/soapbox/components/status_action_bar.js differ diff --git a/app/soapbox/components/status_reply_mentions.js b/app/soapbox/components/status_reply_mentions.js index 11664bb31f..51c6848410 100644 Binary files a/app/soapbox/components/status_reply_mentions.js and b/app/soapbox/components/status_reply_mentions.js differ diff --git a/app/soapbox/containers/soapbox.js b/app/soapbox/containers/soapbox.js index 301de4c015..19b218877d 100644 Binary files a/app/soapbox/containers/soapbox.js and b/app/soapbox/containers/soapbox.js differ diff --git a/app/soapbox/features/account/components/header.js b/app/soapbox/features/account/components/header.js index 884d57034c..8b5a5f258a 100644 Binary files a/app/soapbox/features/account/components/header.js and b/app/soapbox/features/account/components/header.js differ diff --git a/app/soapbox/features/account_timeline/components/header.js b/app/soapbox/features/account_timeline/components/header.js index 51120dfcf6..5886979433 100644 Binary files a/app/soapbox/features/account_timeline/components/header.js and b/app/soapbox/features/account_timeline/components/header.js differ diff --git a/app/soapbox/features/account_timeline/containers/header_container.js b/app/soapbox/features/account_timeline/containers/header_container.js index cec3c29fe0..6087217ca7 100644 Binary files a/app/soapbox/features/account_timeline/containers/header_container.js and b/app/soapbox/features/account_timeline/containers/header_container.js differ diff --git a/app/soapbox/features/admin/components/admin_nav.js b/app/soapbox/features/admin/components/admin_nav.js index 6195601ac6..de7b0d3372 100644 Binary files a/app/soapbox/features/admin/components/admin_nav.js and b/app/soapbox/features/admin/components/admin_nav.js differ diff --git a/app/soapbox/features/scheduled_statuses/builder.js b/app/soapbox/features/scheduled_statuses/builder.js index 05cef642cb..8e3417582a 100644 Binary files a/app/soapbox/features/scheduled_statuses/builder.js and b/app/soapbox/features/scheduled_statuses/builder.js differ diff --git a/app/soapbox/features/scheduled_statuses/components/scheduled_status.js b/app/soapbox/features/scheduled_statuses/components/scheduled_status.js index b47e2b6d02..c79de8af12 100644 Binary files a/app/soapbox/features/scheduled_statuses/components/scheduled_status.js and b/app/soapbox/features/scheduled_statuses/components/scheduled_status.js differ diff --git a/app/soapbox/features/soapbox_config/components/site_preview.js b/app/soapbox/features/soapbox_config/components/site_preview.js index a516046957..5d67494526 100644 Binary files a/app/soapbox/features/soapbox_config/components/site_preview.js and b/app/soapbox/features/soapbox_config/components/site_preview.js differ diff --git a/app/soapbox/features/soapbox_config/index.js b/app/soapbox/features/soapbox_config/index.js index 5ec7f0b399..84d80eea35 100644 Binary files a/app/soapbox/features/soapbox_config/index.js and b/app/soapbox/features/soapbox_config/index.js differ diff --git a/app/soapbox/features/status/components/action_bar.js b/app/soapbox/features/status/components/action_bar.js index 5908ab6ad9..fecb664c27 100644 Binary files a/app/soapbox/features/status/components/action_bar.js and b/app/soapbox/features/status/components/action_bar.js differ diff --git a/app/soapbox/features/ui/components/account_note_modal.js b/app/soapbox/features/ui/components/account_note_modal.js new file mode 100644 index 0000000000..8990ab582a Binary files /dev/null and b/app/soapbox/features/ui/components/account_note_modal.js differ diff --git a/app/soapbox/features/ui/components/modal_root.js b/app/soapbox/features/ui/components/modal_root.js index 5b7e43a8aa..2ef13cb034 100644 Binary files a/app/soapbox/features/ui/components/modal_root.js and b/app/soapbox/features/ui/components/modal_root.js differ diff --git a/app/soapbox/features/ui/components/pending_status.js b/app/soapbox/features/ui/components/pending_status.js index 0968558582..e788819a60 100644 Binary files a/app/soapbox/features/ui/components/pending_status.js and b/app/soapbox/features/ui/components/pending_status.js differ diff --git a/app/soapbox/features/ui/components/profile_info_panel.js b/app/soapbox/features/ui/components/profile_info_panel.js index 8cd4dfb5dc..35d12a627b 100644 Binary files a/app/soapbox/features/ui/components/profile_info_panel.js and b/app/soapbox/features/ui/components/profile_info_panel.js differ diff --git a/app/soapbox/features/ui/components/sign_up_panel.js b/app/soapbox/features/ui/components/sign_up_panel.js index cee57bb0d9..49410affa0 100644 Binary files a/app/soapbox/features/ui/components/sign_up_panel.js and b/app/soapbox/features/ui/components/sign_up_panel.js differ diff --git a/app/soapbox/features/ui/components/tabs_bar.js b/app/soapbox/features/ui/components/tabs_bar.js index 70f7fbd264..26731c95f9 100644 Binary files a/app/soapbox/features/ui/components/tabs_bar.js and b/app/soapbox/features/ui/components/tabs_bar.js differ diff --git a/app/soapbox/features/ui/components/unauthorized_modal.js b/app/soapbox/features/ui/components/unauthorized_modal.js index be54a6beca..590b73d2d1 100644 Binary files a/app/soapbox/features/ui/components/unauthorized_modal.js and b/app/soapbox/features/ui/components/unauthorized_modal.js differ diff --git a/app/soapbox/features/ui/util/async-components.js b/app/soapbox/features/ui/util/async-components.js index 5f44a28017..9c2218f8e5 100644 Binary files a/app/soapbox/features/ui/util/async-components.js and b/app/soapbox/features/ui/util/async-components.js differ diff --git a/app/soapbox/features/ui/util/pending_status_builder.js b/app/soapbox/features/ui/util/pending_status_builder.js index fcb41c14f3..8ea186f567 100644 Binary files a/app/soapbox/features/ui/util/pending_status_builder.js and b/app/soapbox/features/ui/util/pending_status_builder.js differ diff --git a/app/soapbox/locales/pl.json b/app/soapbox/locales/pl.json index 470bac41b5..d26164d620 100644 --- a/app/soapbox/locales/pl.json +++ b/app/soapbox/locales/pl.json @@ -856,6 +856,7 @@ "soapbox_config.crypto_donate_panel_limit.meta_fields.limit_placeholder": "Liczba elementów do wyświetlenia w widżecie krypto na stronie głównej", "soapbox_config.custom_css.meta_fields.url_placeholder": "Adres URL", "soapbox_config.display_fqn_label": "Wyświetlaj domenę (np. @użytkownik@domena) dla lokalnych kont.", + "soapbox_config.fields.accent_color_label": "Kolor akcentu", "soapbox_config.fields.brand_color_label": "Kolor marki", "soapbox_config.fields.crypto_address.add": "Dodaj nowy adres krypto", "soapbox_config.fields.crypto_addresses_label": "Adresy kryptowalut", diff --git a/app/soapbox/locales/uk.json b/app/soapbox/locales/uk.json index 47b9144911..1ab59de143 100644 --- a/app/soapbox/locales/uk.json +++ b/app/soapbox/locales/uk.json @@ -844,6 +844,7 @@ "soapbox_config.crypto_donate_panel_limit.meta_fields.limit_placeholder": "Number of items to display in the crypto homepage widget", "soapbox_config.custom_css.meta_fields.url_placeholder": "URL", "soapbox_config.display_fqn_label": "Display domain (eg @user@domain) for local accounts.", + "soapbox_config.fields.accent_color_label": "Акцентний колір", "soapbox_config.fields.brand_color_label": "Brand color", "soapbox_config.fields.crypto_address.add": "Add new crypto address", "soapbox_config.fields.crypto_addresses_label": "Cryptocurrency addresses", diff --git a/app/soapbox/normalizers/__tests__/instance-test.js b/app/soapbox/normalizers/__tests__/instance-test.js index 28eea31918..8f992bb841 100644 Binary files a/app/soapbox/normalizers/__tests__/instance-test.js and b/app/soapbox/normalizers/__tests__/instance-test.js differ diff --git a/app/soapbox/normalizers/__tests__/status-test.js b/app/soapbox/normalizers/__tests__/status-test.js new file mode 100644 index 0000000000..26428e3bac Binary files /dev/null and b/app/soapbox/normalizers/__tests__/status-test.js differ diff --git a/app/soapbox/normalizers/status.js b/app/soapbox/normalizers/status.js new file mode 100644 index 0000000000..8927546e8f Binary files /dev/null and b/app/soapbox/normalizers/status.js differ diff --git a/app/soapbox/reducers/__tests__/statuses-test.js b/app/soapbox/reducers/__tests__/statuses-test.js index 926c9a867c..3a81f20046 100644 Binary files a/app/soapbox/reducers/__tests__/statuses-test.js and b/app/soapbox/reducers/__tests__/statuses-test.js differ diff --git a/app/soapbox/reducers/account_notes.js b/app/soapbox/reducers/account_notes.js new file mode 100644 index 0000000000..67cd83e1d4 Binary files /dev/null and b/app/soapbox/reducers/account_notes.js differ diff --git a/app/soapbox/reducers/index.js b/app/soapbox/reducers/index.js index a5c178b3c4..c7b48cc229 100644 Binary files a/app/soapbox/reducers/index.js and b/app/soapbox/reducers/index.js differ diff --git a/app/soapbox/reducers/relationships.js b/app/soapbox/reducers/relationships.js index 29276c5c32..129040d991 100644 Binary files a/app/soapbox/reducers/relationships.js and b/app/soapbox/reducers/relationships.js differ diff --git a/app/soapbox/reducers/statuses.js b/app/soapbox/reducers/statuses.js index 70c62244c8..2f2b0ac7f1 100644 Binary files a/app/soapbox/reducers/statuses.js and b/app/soapbox/reducers/statuses.js differ diff --git a/app/soapbox/utils/__tests__/accounts-test.js b/app/soapbox/utils/__tests__/accounts-test.js index 15a42ec575..d3fd6f9ba1 100644 Binary files a/app/soapbox/utils/__tests__/accounts-test.js and b/app/soapbox/utils/__tests__/accounts-test.js differ diff --git a/app/soapbox/utils/accounts.ts b/app/soapbox/utils/accounts.ts index 361ecbc25e..a6d418968c 100644 --- a/app/soapbox/utils/accounts.ts +++ b/app/soapbox/utils/accounts.ts @@ -71,3 +71,12 @@ export const isVerified = (account: ImmutableMap): boolean => { const tags: any = account.getIn(['pleroma', 'tags'], ImmutableList()); return tags.includes('verified'); }; + +export const accountToMention = (account: ImmutableMap): ImmutableMap => { + return ImmutableMap({ + id: account.get('id'), + username: account.get('username'), + acct: account.get('acct'), + url: account.get('url'), + }); +}; diff --git a/app/soapbox/utils/features.js b/app/soapbox/utils/features.js index 54355e0056..0516ef02dd 100644 Binary files a/app/soapbox/utils/features.js and b/app/soapbox/utils/features.js differ diff --git a/app/soapbox/utils/theme.js b/app/soapbox/utils/theme.js index b398145bf2..1b3c85dfe7 100644 Binary files a/app/soapbox/utils/theme.js and b/app/soapbox/utils/theme.js differ diff --git a/app/styles/components/error-boundary.scss b/app/styles/components/error-boundary.scss index b809a1efa4..fbf515c128 100644 --- a/app/styles/components/error-boundary.scss +++ b/app/styles/components/error-boundary.scss @@ -63,6 +63,11 @@ } } + &__version { + font-size: 12px; + margin: 6px 0; + } + p.help-text { text-align: left; font-style: italic; diff --git a/app/styles/components/modal.scss b/app/styles/components/modal.scss index aa12f40927..7d40aab68c 100644 --- a/app/styles/components/modal.scss +++ b/app/styles/components/modal.scss @@ -126,7 +126,9 @@ top: 0; bottom: 0; - @media screen and (max-width: 600px) { padding: 30px 2px; } + @media screen and (max-width: 600px) { + padding: 30px 2px; + } .svg-icon { width: 24px; @@ -342,7 +344,8 @@ .mute-modal, .reactions-modal, .reblogs-modal, -.mentions-modal { +.mentions-modal, +.account-note-modal { position: relative; flex-direction: column; overflow: hidden; @@ -411,7 +414,8 @@ .boost-modal__action-bar, .confirmation-modal__action-bar, -.mute-modal__action-bar { +.mute-modal__action-bar, +.account-note-modal__action-bar { display: flex; align-items: center; justify-content: space-between; @@ -464,7 +468,8 @@ vertical-align: middle; } -.report-modal { +.report-modal, +.account-note-modal { width: 90vw; max-width: 700px; } @@ -521,27 +526,6 @@ margin-bottom: 20px; } - .setting-text { - display: block; - box-sizing: border-box; - width: 100%; - margin: 0; - color: var(--primary-text-color); - background: var(--background-color); - padding: 10px; - font-family: inherit; - font-size: 14px; - resize: vertical; - outline: 0; - border: 1px solid var(--background-color); - border-radius: 4px; - margin-bottom: 20px; - - &:focus { - border: 1px solid var(--background-color); - } - } - .setting-toggle { margin-top: 20px; margin-bottom: 24px; @@ -574,7 +558,9 @@ max-height: 300px; } - .actions-modal__item-label { font-weight: 500; } + .actions-modal__item-label { + font-weight: 500; + } ul { overflow-y: auto; @@ -582,12 +568,18 @@ max-height: calc(100vh - 147px); // NOTE - not sure what this is yet, leaving alone for now until I find out. - &.with-status { max-height: calc(80vh - 75px); } + &.with-status { + max-height: calc(80vh - 75px); + } - li:empty { margin: 0; } + li:empty { + margin: 0; + } li:not(:empty) { - &:first-of-type { margin: 10px 0 0; } + &:first-of-type { + margin: 10px 0 0; + } a { display: flex; @@ -654,10 +646,12 @@ } .confirmation-modal__action-bar, -.mute-modal__action-bar { +.mute-modal__action-bar, +.account-note-modal__action-bar { .confirmation-modal__secondary-button, .confirmation-modal__cancel-button, - .mute-modal__cancel-button { + .mute-modal__cancel-button, + .account-note-modal__cancel-button { background-color: transparent; color: var(--highlight-text-color); font-size: 14px; @@ -726,7 +720,9 @@ } .modal-layout { - background: var(--brand-color--med) url('data:image/svg+xml;utf8,') repeat-x bottom fixed; + background: var(--brand-color--med) + url('data:image/svg+xml;utf8,') + repeat-x bottom fixed; display: flex; flex-direction: column; height: 100vh; @@ -1068,7 +1064,8 @@ } .confirmation-modal, -.mute-modal { +.mute-modal, +.account-note-modal { &__header { display: flex; align-items: center; @@ -1090,3 +1087,35 @@ text-align: left; } } + +.report-modal__comment, +.account-note-modal__container { + .setting-text { + display: block; + box-sizing: border-box; + width: 100%; + margin: 0; + color: var(--primary-text-color); + background: var(--background-color); + padding: 10px; + font-family: inherit; + font-size: 14px; + resize: vertical; + outline: 0; + border: 1px solid var(--background-color); + border-radius: 4px; + margin-bottom: 20px; + + &:focus { + border: 1px solid var(--background-color); + } + } +} + +.account-note-modal { + .setting-text { + margin-top: 20px; + margin-bottom: 0; + resize: none; + } +} diff --git a/app/styles/components/profile-info-panel.scss b/app/styles/components/profile-info-panel.scss index a3c3f6dc56..65e70c4bd4 100644 --- a/app/styles/components/profile-info-panel.scss +++ b/app/styles/components/profile-info-panel.scss @@ -23,7 +23,8 @@ } &__join-date, - &__birthday { + &__birthday, + &__note { display: flex; font-size: 14px; color: var(--primary-text-color--faint); @@ -39,6 +40,15 @@ } } + &__note { + text-decoration: none; + + &:hover, + &:focus { + text-decoration: underline; + } + } + &__stats { margin: 15px 0; @@ -163,10 +173,10 @@ } .profile-info-panel__name-content::before { - content: '['; + content: "["; } .profile-info-panel__name-content::after { - content: ']'; + content: "]"; } } diff --git a/app/styles/forms.scss b/app/styles/forms.scss index 64ab2fb4d1..53551941a8 100644 --- a/app/styles/forms.scss +++ b/app/styles/forms.scss @@ -418,6 +418,10 @@ code { margin-bottom: 10px; margin-right: 10px; + &#accent_color { + background: var(--accent-color); + } + &:last-child { margin-right: 0; } @@ -510,7 +514,7 @@ code { .label_input { &__color { - display: inline-flex; + display: flex; font-size: 14px; .color-swatch { diff --git a/app/styles/themes.scss b/app/styles/themes.scss index 032f8ce4db..de6a6b1bff 100644 --- a/app/styles/themes.scss +++ b/app/styles/themes.scss @@ -41,9 +41,6 @@ body, --background-color_hsl: var(--background-color_h), var(--background-color_s), var(--background-color_l); --foreground-color_hsl: var(--foreground-color_h), var(--foreground-color_s), var(--foreground-color_l); --warning-color_hsl: var(--warning-color_h), var(--warning-color_s), var(--warning-color_l); - --accent-color_h: calc(var(--brand-color_h) - 15); - --accent-color_s: 86%; - --accent-color_l: 44%; // Modifiers --brand-color--faint: hsla(var(--brand-color_hsl), 0.1);