diff --git a/app/javascript/gabsocial/features/home_timeline.js b/app/javascript/gabsocial/features/home_timeline.js
index e2bffd55..2baf2bc0 100644
--- a/app/javascript/gabsocial/features/home_timeline.js
+++ b/app/javascript/gabsocial/features/home_timeline.js
@@ -4,7 +4,7 @@ import StatusList from '../components/status_list'
const messages = defineMessages({
title: { id: 'column.home', defaultMessage: 'Home' },
- empty: { id: 'empty_column.home', defaultMessage: 'Your home timeline is empty. Start following other users to recieve their content here.' },
+ empty: { id: 'empty_timeline.home', defaultMessage: 'Your home timeline is empty. Start following other users to recieve their content here.' },
})
const mapStateToProps = (state) => ({
diff --git a/app/javascript/gabsocial/features/mutes.js b/app/javascript/gabsocial/features/mutes.js
index eb3012d1..8db82323 100644
--- a/app/javascript/gabsocial/features/mutes.js
+++ b/app/javascript/gabsocial/features/mutes.js
@@ -4,12 +4,12 @@ import ImmutablePropTypes from 'react-immutable-proptypes'
import debounce from 'lodash.debounce'
import { fetchMutes, expandMutes } from '../actions/mutes'
import Account from '../components/account'
-import ColumnIndicator from '../components/column_indicator'
import ScrollableList from '../components/scrollable_list'
const mapStateToProps = (state) => ({
accountIds: state.getIn(['user_lists', 'mutes', 'items']),
hasMore: !!state.getIn(['user_lists', 'mutes', 'next']),
+ isLoading: state.getIn(['user_lists', 'mutes', 'isLoading'], true),
})
export default
@@ -22,6 +22,7 @@ class Mutes extends ImmutablePureComponent {
dispatch: PropTypes.func.isRequired,
hasMore: PropTypes.bool,
accountIds: ImmutablePropTypes.list,
+ isLoading: PropTypes.bool,
}
componentWillMount() {
@@ -33,21 +34,18 @@ class Mutes extends ImmutablePureComponent {
}, 300, { leading: true })
render() {
- const { hasMore, accountIds } = this.props
-
- if (!accountIds) {
- return
- }
+ const { hasMore, accountIds, isLoading } = this.props
return (
}
>
{
- accountIds.map(id =>
+ accountIds && accountIds.map(id =>
)
}
diff --git a/app/javascript/gabsocial/features/status.js b/app/javascript/gabsocial/features/status.js
index 6312a724..c149ccb8 100644
--- a/app/javascript/gabsocial/features/status.js
+++ b/app/javascript/gabsocial/features/status.js
@@ -2,8 +2,6 @@ import StatusContainer from '../containers/status_container'
export default class Status extends PureComponent {
render() {
- console.log("this.props:", this.props)
-
return (
)
diff --git a/app/javascript/gabsocial/initial_state.js b/app/javascript/gabsocial/initial_state.js
index 22d1dfb0..bb840b14 100644
--- a/app/javascript/gabsocial/initial_state.js
+++ b/app/javascript/gabsocial/initial_state.js
@@ -26,5 +26,6 @@ export const promotions = initialState && initialState.promotions;
export const unreadCount = getMeta('unread_count');
export const monthlyExpensesComplete = getMeta('monthly_expenses_complete');
export const favouritesCount = getMeta('favourites_count');
+export const compactMode = false;
export default initialState;
diff --git a/app/javascript/gabsocial/layouts/layout.js b/app/javascript/gabsocial/layouts/layout.js
index 362bba2a..8ba86ed5 100644
--- a/app/javascript/gabsocial/layouts/layout.js
+++ b/app/javascript/gabsocial/layouts/layout.js
@@ -17,7 +17,6 @@ export default class Layout extends PureComponent {
showBackBtn: PropTypes.bool,
noSidebar: PropTypes.bool,
noRightSidebar: PropTypes.bool,
- noHeader: PropTypes.bool,
noComposeButton: PropTypes.bool,
}
@@ -31,7 +30,6 @@ export default class Layout extends PureComponent {
tabs,
noSidebar,
noRightSidebar,
- noHeader,
noComposeButton,
} = this.props
diff --git a/app/javascript/gabsocial/locales/ast.json b/app/javascript/gabsocial/locales/ast.json
index a04de2a8..97bdba39 100644
--- a/app/javascript/gabsocial/locales/ast.json
+++ b/app/javascript/gabsocial/locales/ast.json
@@ -222,7 +222,7 @@
"lists.search": "Guetar ente la xente que sigues",
"lists.subheading": "Les tos llistes",
"loading_indicator.label": "Cargando...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Nun s'alcontró",
"missing_indicator.sublabel": "Esti recursu nun pudo alcontrase",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -282,9 +282,9 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Namái siguidores",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
diff --git a/app/javascript/gabsocial/locales/bg.json b/app/javascript/gabsocial/locales/bg.json
index bccd4744..a0a0bffe 100644
--- a/app/javascript/gabsocial/locales/bg.json
+++ b/app/javascript/gabsocial/locales/bg.json
@@ -2,7 +2,7 @@
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Блокирай",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
"account.domain_blocked": "Domain hidden",
@@ -30,14 +30,14 @@
"account.share": "Share @{name}'s profile",
"account.show_reposts": "Show reposts from @{name}",
"account.unblock": "Не блокирай",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Unblock domain {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Не следвай",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
- "boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.combo": "You can press Shift + Repost to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
@@ -47,7 +47,7 @@
"column.blocks": "Blocked users",
"column.community": "Community timeline",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favorites",
"column.follow_requests": "Follow requests",
"column.home": "Начало",
@@ -91,7 +91,7 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -222,7 +222,7 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Зареждане...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Редактирай профил",
"navigation_bar.favorites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -282,9 +282,9 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Изтриване",
diff --git a/app/javascript/gabsocial/locales/defaultMessages.json b/app/javascript/gabsocial/locales/defaultMessages.json
index 3b872b5d..ae9029e8 100644
--- a/app/javascript/gabsocial/locales/defaultMessages.json
+++ b/app/javascript/gabsocial/locales/defaultMessages.json
@@ -125,7 +125,7 @@
{
"descriptors": [
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
}
],
@@ -170,7 +170,7 @@
{
"descriptors": [
{
- "defaultMessage": "Toggle visibility",
+ "defaultMessage": "Hide media",
"id": "media_gallery.toggle_visible"
},
{
@@ -314,7 +314,7 @@
"id": "status.repost_private"
},
{
- "defaultMessage": "Un-repost",
+ "defaultMessage": "Remove Repost",
"id": "status.cancel_repost_private"
},
{
@@ -435,7 +435,7 @@
{
"descriptors": [
{
- "defaultMessage": "Hide entire domain",
+ "defaultMessage": "Block entire domain",
"id": "confirmations.domain_block.confirm"
},
{
@@ -523,7 +523,7 @@
"id": "confirmations.block.confirm"
},
{
- "defaultMessage": "Hide entire domain",
+ "defaultMessage": "Block entire domain",
"id": "confirmations.domain_block.confirm"
},
{
@@ -621,11 +621,11 @@
"id": "account.media"
},
{
- "defaultMessage": "Hide everything from {domain}",
+ "defaultMessage": "Block domain {domain}",
"id": "account.block_domain"
},
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
},
{
@@ -661,7 +661,7 @@
"id": "navigation_bar.blocks"
},
{
- "defaultMessage": "Hidden domains",
+ "defaultMessage": "Blocked domains",
"id": "navigation_bar.domain_blocks"
},
{
@@ -785,7 +785,7 @@
"id": "navigation_bar.blocks"
},
{
- "defaultMessage": "Hidden domains",
+ "defaultMessage": "Blocked domains",
"id": "navigation_bar.domain_blocks"
},
{
@@ -943,7 +943,7 @@
"id": "privacy.public.short"
},
{
- "defaultMessage": "Post to public timelines",
+ "defaultMessage": "Visible for anyone on or off Gab",
"id": "privacy.public.long"
},
{
@@ -959,7 +959,7 @@
"id": "privacy.private.short"
},
{
- "defaultMessage": "Post to followers only",
+ "defaultMessage": "Visible for your followers only",
"id": "privacy.private.long"
},
{
@@ -1191,15 +1191,15 @@
{
"descriptors": [
{
- "defaultMessage": "Hidden domains",
+ "defaultMessage": "Blocked domains",
"id": "column.domain_blocks"
},
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
},
{
- "defaultMessage": "There are no hidden domains yet.",
+ "defaultMessage": "There are no blocked domains yet.",
"id": "empty_column.domain_blocks"
}
],
@@ -1322,7 +1322,7 @@
"id": "navigation_bar.blocks"
},
{
- "defaultMessage": "Hidden domains",
+ "defaultMessage": "Blocked domains",
"id": "navigation_bar.domain_blocks"
},
{
@@ -1962,7 +1962,7 @@
"id": "status.repost_private"
},
{
- "defaultMessage": "Un-repost",
+ "defaultMessage": "Remove Repost",
"id": "status.cancel_repost_private"
},
{
@@ -2121,7 +2121,7 @@
{
"descriptors": [
{
- "defaultMessage": "Un-repost",
+ "defaultMessage": "Remove Repost",
"id": "status.cancel_repost_private"
},
{
@@ -2129,7 +2129,7 @@
"id": "status.repost"
},
{
- "defaultMessage": "You can press {combo} to skip this next time",
+ "defaultMessage": "You can press Shift + Repost to skip this next time",
"id": "boost_modal.combo"
}
],
diff --git a/app/javascript/gabsocial/locales/en.json b/app/javascript/gabsocial/locales/en.json
index 24225f5d..7604f6ad 100644
--- a/app/javascript/gabsocial/locales/en.json
+++ b/app/javascript/gabsocial/locales/en.json
@@ -2,7 +2,7 @@
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct message @{name}",
"account.domain_blocked": "Domain hidden",
@@ -30,14 +30,14 @@
"account.share": "Share @{name}'s profile",
"account.show_reposts": "Show reposts from @{name}",
"account.unblock": "Unblock @{name}",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Unblock domain {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
- "boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.combo": "You can press Shift + Repost to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
@@ -47,7 +47,7 @@
"column.blocks": "Blocked users",
"column.community": "Community timeline",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favorites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
@@ -92,7 +92,7 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
@@ -123,7 +123,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite gabs yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this gab yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -224,7 +224,7 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -234,7 +234,7 @@
"navigation_bar.compose": "Compose new gab",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favorites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -285,11 +285,11 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Do not post to public timelines",
+ "privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
@@ -319,7 +319,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
diff --git a/app/javascript/gabsocial/locales/he.json b/app/javascript/gabsocial/locales/he.json
index 359fc295..742a591c 100644
--- a/app/javascript/gabsocial/locales/he.json
+++ b/app/javascript/gabsocial/locales/he.json
@@ -47,7 +47,7 @@
"column.blocks": "חסימות",
"column.community": "ציר זמן מקומי",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "חיבובים",
"column.follow_requests": "בקשות מעקב",
"column.home": "בבית",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "עריכת פרופיל",
"navigation_bar.favorites": "חיבובים",
"navigation_bar.filters": "Muted words",
diff --git a/app/javascript/gabsocial/locales/hi.json b/app/javascript/gabsocial/locales/hi.json
index 337453aa..7423e91d 100644
--- a/app/javascript/gabsocial/locales/hi.json
+++ b/app/javascript/gabsocial/locales/hi.json
@@ -2,7 +2,7 @@
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct message @{name}",
"account.domain_blocked": "Domain hidden",
@@ -30,14 +30,14 @@
"account.share": "Share @{name}'s profile",
"account.show_reposts": "Show reposts from @{name}",
"account.unblock": "Unblock @{name}",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Unblock domain {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
- "boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.combo": "You can press Shift + Repost to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
@@ -47,7 +47,7 @@
"column.blocks": "Blocked users",
"column.community": "Community timeline",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favorites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
@@ -91,7 +91,7 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -222,7 +222,7 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favorites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -282,9 +282,9 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
diff --git a/app/javascript/gabsocial/locales/hr.json b/app/javascript/gabsocial/locales/hr.json
index 9833c0a4..0ca88f55 100644
--- a/app/javascript/gabsocial/locales/hr.json
+++ b/app/javascript/gabsocial/locales/hr.json
@@ -47,7 +47,7 @@
"column.blocks": "Blokirani korisnici",
"column.community": "Lokalni timeline",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favoriti",
"column.follow_requests": "Zahtjevi za slijeđenje",
"column.home": "Dom",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Uredi profil",
"navigation_bar.favorites": "Favoriti",
"navigation_bar.filters": "Muted words",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "Ovaj post ne može biti repostan",
"status.copy": "Copy link to status",
"status.delete": "Obriši",
diff --git a/app/javascript/gabsocial/locales/hu.json b/app/javascript/gabsocial/locales/hu.json
index 61c64c09..89b5c49b 100644
--- a/app/javascript/gabsocial/locales/hu.json
+++ b/app/javascript/gabsocial/locales/hu.json
@@ -47,7 +47,7 @@
"column.blocks": "Letiltott felhasználók",
"column.community": "Helyi idővonal",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Kedvencek",
"column.follow_requests": "Követési kérések",
"column.home": "Kezdőlap",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "A helyi idővonal üres. Írj egy publikus stástuszt, hogy elindítsd a labdát!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Profil szerkesztése",
"navigation_bar.favorites": "Kedvencek",
"navigation_bar.filters": "Muted words",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "Ezen státusz nem rebloggolható",
"status.copy": "Copy link to status",
"status.delete": "Törlés",
diff --git a/app/javascript/gabsocial/locales/hy.json b/app/javascript/gabsocial/locales/hy.json
index eca6e1ce..190806c4 100644
--- a/app/javascript/gabsocial/locales/hy.json
+++ b/app/javascript/gabsocial/locales/hy.json
@@ -47,7 +47,7 @@
"column.blocks": "Արգելափակված օգտատերեր",
"column.community": "Տեղական հոսք",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Հավանածներ",
"column.follow_requests": "Հետեւելու հայցեր",
"column.home": "Հիմնական",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Տեղական հոսքը դատա՛րկ է։ Հրապարակային մի բան գրիր շարժիչը խոդ տալու համար։",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Խմբագրել անձնական էջը",
"navigation_bar.favorites": "Հավանածներ",
"navigation_bar.filters": "Muted words",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Արգելափակել @{name}֊ին",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "Այս թութը չի կարող տարածվել",
"status.copy": "Copy link to status",
"status.delete": "Ջնջել",
diff --git a/app/javascript/gabsocial/locales/id.json b/app/javascript/gabsocial/locales/id.json
index 2c6b307f..ae863e8f 100644
--- a/app/javascript/gabsocial/locales/id.json
+++ b/app/javascript/gabsocial/locales/id.json
@@ -47,7 +47,7 @@
"column.blocks": "Pengguna diblokir",
"column.community": "Linimasa Lokal",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favorit",
"column.follow_requests": "Permintaan mengikuti",
"column.home": "Beranda",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Ubah profil",
"navigation_bar.favorites": "Favorit",
"navigation_bar.filters": "Muted words",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Hapus",
diff --git a/app/javascript/gabsocial/locales/io.json b/app/javascript/gabsocial/locales/io.json
index de6c5d24..7f590c76 100644
--- a/app/javascript/gabsocial/locales/io.json
+++ b/app/javascript/gabsocial/locales/io.json
@@ -2,7 +2,7 @@
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blokusar @{name}",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
"account.domain_blocked": "Domain hidden",
@@ -30,7 +30,7 @@
"account.share": "Share @{name}'s profile",
"account.show_reposts": "Show reposts from @{name}",
"account.unblock": "Desblokusar @{name}",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Unblock domain {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Ne plus sequar",
"account.unmute": "Ne plus celar @{name}",
@@ -47,7 +47,7 @@
"column.blocks": "Blokusita uzeri",
"column.community": "Lokala tempolineo",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favorati",
"column.follow_requests": "Demandi di sequado",
"column.home": "Hemo",
@@ -91,7 +91,7 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Modifikar profilo",
"navigation_bar.favorites": "Favorati",
"navigation_bar.filters": "Muted words",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Efacar",
diff --git a/app/javascript/gabsocial/locales/ka.json b/app/javascript/gabsocial/locales/ka.json
index 9b4d0122..d592424a 100644
--- a/app/javascript/gabsocial/locales/ka.json
+++ b/app/javascript/gabsocial/locales/ka.json
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!",
"empty_column.direct": "ჯერ პირდაპირი წერილები არ გაქვთ. როდესაც მიიღებთ ან გააგზავნით, გამოჩნდება აქ.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite gabs yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this gab yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
diff --git a/app/javascript/gabsocial/locales/lv.json b/app/javascript/gabsocial/locales/lv.json
index 182a347b..9f540554 100644
--- a/app/javascript/gabsocial/locales/lv.json
+++ b/app/javascript/gabsocial/locales/lv.json
@@ -222,7 +222,7 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favorites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -282,9 +282,9 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
diff --git a/app/javascript/gabsocial/locales/ms.json b/app/javascript/gabsocial/locales/ms.json
index 072fdbc6..2ac4375b 100644
--- a/app/javascript/gabsocial/locales/ms.json
+++ b/app/javascript/gabsocial/locales/ms.json
@@ -2,7 +2,7 @@
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct message @{name}",
"account.domain_blocked": "Domain hidden",
@@ -30,14 +30,14 @@
"account.share": "Share @{name}'s profile",
"account.show_reposts": "Show reposts from @{name}",
"account.unblock": "Unblock @{name}",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Unblock domain {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
- "boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.combo": "You can press Shift + Repost to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
@@ -47,7 +47,7 @@
"column.blocks": "Blocked users",
"column.community": "Community timeline",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favorites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
@@ -91,7 +91,7 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -222,7 +222,7 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favorites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -282,9 +282,9 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
diff --git a/app/javascript/gabsocial/locales/no.json b/app/javascript/gabsocial/locales/no.json
index 06c3d14b..b4cccee9 100644
--- a/app/javascript/gabsocial/locales/no.json
+++ b/app/javascript/gabsocial/locales/no.json
@@ -47,7 +47,7 @@
"column.blocks": "Blokkerte brukere",
"column.community": "Lokal tidslinje",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Likt",
"column.follow_requests": "Følgeforespørsler",
"column.home": "Hjem",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Rediger profil",
"navigation_bar.favorites": "Favoritter",
"navigation_bar.filters": "Muted words",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "Denne posten kan ikke fremheves",
"status.copy": "Copy link to status",
"status.delete": "Slett",
diff --git a/app/javascript/gabsocial/locales/sl.json b/app/javascript/gabsocial/locales/sl.json
index 4040b9c5..e33efb2e 100644
--- a/app/javascript/gabsocial/locales/sl.json
+++ b/app/javascript/gabsocial/locales/sl.json
@@ -222,7 +222,7 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favorites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -282,9 +282,9 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
diff --git a/app/javascript/gabsocial/locales/sr-Latn.json b/app/javascript/gabsocial/locales/sr-Latn.json
index 9f603c0d..cc371464 100644
--- a/app/javascript/gabsocial/locales/sr-Latn.json
+++ b/app/javascript/gabsocial/locales/sr-Latn.json
@@ -47,7 +47,7 @@
"column.blocks": "Blokirani korisnici",
"column.community": "Lokalna lajna",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Omiljeni",
"column.follow_requests": "Zahtevi za praćenje",
"column.home": "Početna",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Izmeni profil",
"navigation_bar.favorites": "Omiljeni",
"navigation_bar.filters": "Muted words",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "Ovaj status ne može da se podrži",
"status.copy": "Copy link to status",
"status.delete": "Obriši",
diff --git a/app/javascript/gabsocial/locales/sv.json b/app/javascript/gabsocial/locales/sv.json
index cad08aca..73516137 100644
--- a/app/javascript/gabsocial/locales/sv.json
+++ b/app/javascript/gabsocial/locales/sv.json
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att få bollen att rulla!",
"empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot kommer den att dyka upp här.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite gabs yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this gab yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
diff --git a/app/javascript/gabsocial/locales/ta.json b/app/javascript/gabsocial/locales/ta.json
index ed4250bf..18642631 100644
--- a/app/javascript/gabsocial/locales/ta.json
+++ b/app/javascript/gabsocial/locales/ta.json
@@ -2,7 +2,7 @@
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct message @{name}",
"account.domain_blocked": "Domain hidden",
@@ -30,14 +30,14 @@
"account.share": "Share @{name}'s profile",
"account.show_reposts": "Show reposts from @{name}",
"account.unblock": "Unblock @{name}",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Unblock domain {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
- "boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.combo": "You can press Shift + Repost to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
@@ -47,7 +47,7 @@
"column.blocks": "Blocked users",
"column.community": "Community timeline",
"column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favorites": "Favorites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
@@ -91,7 +91,7 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -222,7 +222,7 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -232,7 +232,7 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favorites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -282,9 +282,9 @@
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for your followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for anyone on or off Gab",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "This post cannot be reposted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
diff --git a/app/javascript/gabsocial/locales/th.json b/app/javascript/gabsocial/locales/th.json
index 0af32acf..5d8242fb 100644
--- a/app/javascript/gabsocial/locales/th.json
+++ b/app/javascript/gabsocial/locales/th.json
@@ -37,7 +37,7 @@
"account.unmute_notifications": "เลิกปิดเสียงการแจ้งเตือนจาก @{name}",
"alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
"alert.unexpected.title": "อุปส์!",
- "boost_modal.combo": "You can press {combo} to skip this next time",
+ "boost_modal.combo": "You can press Shift + Repost to skip this next time",
"bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้",
"bundle_column_error.retry": "ลองอีกครั้ง",
"bundle_column_error.title": "ข้อผิดพลาดเครือข่าย",
@@ -91,7 +91,7 @@
"confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบสถานะนี้?",
"confirmations.delete_list.confirm": "ลบ",
"confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
"confirmations.mute.confirm": "ปิดเสียง",
"confirmations.mute.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดเสียง {name}?",
diff --git a/app/javascript/gabsocial/locales/uk.json b/app/javascript/gabsocial/locales/uk.json
index 947ac05d..984083e9 100644
--- a/app/javascript/gabsocial/locales/uk.json
+++ b/app/javascript/gabsocial/locales/uk.json
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!",
"empty_column.direct": "У вас ще немає прямих повідомлень. Коли ви відправите чи отримаєте якесь, воно з'явиться тут.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -316,7 +316,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.cancel_repost_private": "Un-repost",
+ "status.cancel_repost_private": "Remove Repost",
"status.cannot_repost": "Цей допис не може бути передмухнутий",
"status.copy": "Copy link to status",
"status.delete": "Видалити",
diff --git a/app/javascript/gabsocial/locales/zh-CN.json b/app/javascript/gabsocial/locales/zh-CN.json
index ef10bbd0..338c3084 100644
--- a/app/javascript/gabsocial/locales/zh-CN.json
+++ b/app/javascript/gabsocial/locales/zh-CN.json
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "本站时间轴暂时没有内容,快嘟几个来抢头香啊!",
"empty_column.direct": "你还没有使用过私信。当你发出或者收到私信时,它会在这里显示。",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
diff --git a/app/javascript/gabsocial/locales/zh-HK.json b/app/javascript/gabsocial/locales/zh-HK.json
index 4fb6d5e0..a44e47f0 100644
--- a/app/javascript/gabsocial/locales/zh-HK.json
+++ b/app/javascript/gabsocial/locales/zh-HK.json
@@ -122,7 +122,7 @@
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!",
"empty_column.direct": "你沒有個人訊息。當你發出或接收個人訊息,就會在這裡出現。",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favorited_statuses": "You don't have any favorite toots yet. When you favorite one, it will show up here.",
"empty_column.favorites": "No one has favorited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
diff --git a/app/javascript/gabsocial/pages/profile_page.js b/app/javascript/gabsocial/pages/profile_page.js
index 15672d55..4b2f0702 100644
--- a/app/javascript/gabsocial/pages/profile_page.js
+++ b/app/javascript/gabsocial/pages/profile_page.js
@@ -62,7 +62,6 @@ class ProfilePage extends ImmutablePureComponent {
} = this.props
const name = !!account ? account.get('display_name_html') : ''
- console.log("name:", name, account)
return (
n - 1)
if (prevSize === 0 && (state.get('default_sensitive') || state.get('spoiler'))) {
map.set('sensitive', true);
@@ -314,11 +316,11 @@ export default function compose(state = initialState, action) {
case COMPOSE_UPLOAD_CHANGE_FAIL:
return state.set('is_changing_upload', false);
case COMPOSE_UPLOAD_REQUEST:
- return state.set('is_uploading', true);
+ return state.set('is_uploading', true).update('pending_media_attachments', n => n + 1)
case COMPOSE_UPLOAD_SUCCESS:
return appendMedia(state, fromJS(action.media));
case COMPOSE_UPLOAD_FAIL:
- return state.set('is_uploading', false);
+ return state.set('is_uploading', false).update('pending_media_attachments', n => action.decrement ? n - 1 : n);
case COMPOSE_UPLOAD_UNDO:
return removeMedia(state, action.media_id);
case COMPOSE_UPLOAD_PROGRESS:
diff --git a/app/javascript/gabsocial/reducers/notifications.js b/app/javascript/gabsocial/reducers/notifications.js
index b0dbd6ae..d8b7b914 100644
--- a/app/javascript/gabsocial/reducers/notifications.js
+++ b/app/javascript/gabsocial/reducers/notifications.js
@@ -69,8 +69,6 @@ const expandNormalizedNotifications = (state, notifications, next) => {
let items = ImmutableList()
- console.log("notifications:", notifications)
-
notifications.forEach((n) => {
const notification = notificationToMap(n)
const statusId = notification.get('status')
@@ -136,8 +134,6 @@ const expandNormalizedNotifications = (state, notifications, next) => {
}
}
- console.log("final items: ", items)
-
return state.withMutations(mutable => {
if (!items.isEmpty()) {
mutable.update('items', list => {
@@ -149,12 +145,8 @@ const expandNormalizedNotifications = (state, notifications, next) => {
item => item !== null && compareId(item.get('id'), items.first().get('id')) > 0
)
- // console.log("firstIndex, lastIndex: ", firstIndex, lastIndex)
-
const pop = list.take(firstIndex).concat(items, list.skip(lastIndex))
- // console.log("pop:", pop)
-
return pop
})
}
@@ -224,7 +216,6 @@ export default function notifications(state = initialState, action) {
case NOTIFICATIONS_FILTER_SET:
return state.withMutations(mutable => {
mutable.set('items', ImmutableList()).set('hasMore', true)
- console.log("NOTIFICATIONS_FILTER_SET:", action.path, action.value)
mutable.setIn(['filter', action.path], action.value)
})
case NOTIFICATIONS_SCROLL_TOP:
diff --git a/app/javascript/gabsocial/reducers/user_lists.js b/app/javascript/gabsocial/reducers/user_lists.js
index dc80c7e3..744226ea 100644
--- a/app/javascript/gabsocial/reducers/user_lists.js
+++ b/app/javascript/gabsocial/reducers/user_lists.js
@@ -1,32 +1,52 @@
+import { Map as ImmutableMap, List as ImmutableList } from 'immutable'
import {
+ FOLLOWERS_FETCH_REQUEST,
FOLLOWERS_FETCH_SUCCESS,
FOLLOWERS_EXPAND_SUCCESS,
+ FOLLOWERS_FETCH_FAIL,
+ FOLLOWERS_EXPAND_REQUEST,
+ FOLLOWERS_EXPAND_FAIL,
+ FOLLOWING_FETCH_REQUEST,
+ FOLLOWING_FETCH_FAIL,
+ FOLLOWING_EXPAND_REQUEST,
FOLLOWING_FETCH_SUCCESS,
FOLLOWING_EXPAND_SUCCESS,
+ FOLLOWING_EXPAND_FAIL,
+ FOLLOW_REQUESTS_FETCH_REQUEST,
+ FOLLOW_REQUESTS_FETCH_FAIL,
+ FOLLOW_REQUESTS_EXPAND_REQUEST,
FOLLOW_REQUESTS_FETCH_SUCCESS,
FOLLOW_REQUESTS_EXPAND_SUCCESS,
+ FOLLOW_REQUESTS_EXPAND_FAIL,
FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
FOLLOW_REQUEST_REJECT_SUCCESS,
-} from '../actions/accounts';
+} from '../actions/accounts'
import {
REPOSTS_FETCH_SUCCESS,
-} from '../actions/interactions';
+} from '../actions/interactions'
import {
+ BLOCKS_FETCH_REQUEST,
BLOCKS_FETCH_SUCCESS,
+ BLOCKS_FETCH_FAIL,
+ BLOCKS_EXPAND_REQUEST,
BLOCKS_EXPAND_SUCCESS,
-} from '../actions/blocks';
+ BLOCKS_EXPAND_FAIL,
+} from '../actions/blocks'
import {
+ MUTES_FETCH_REQUEST,
MUTES_FETCH_SUCCESS,
+ MUTES_FETCH_FAIL,
+ MUTES_EXPAND_REQUEST,
MUTES_EXPAND_SUCCESS,
-} from '../actions/mutes';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+ MUTES_EXPAND_FAIL,
+} from '../actions/mutes'
import {
GROUP_MEMBERS_FETCH_SUCCESS,
GROUP_MEMBERS_EXPAND_SUCCESS,
GROUP_REMOVED_ACCOUNTS_FETCH_SUCCESS,
GROUP_REMOVED_ACCOUNTS_EXPAND_SUCCESS,
GROUP_REMOVED_ACCOUNTS_REMOVE_SUCCESS,
-} from '../actions/groups';
+} from '../actions/groups'
const initialState = ImmutableMap({
followers: ImmutableMap(),
@@ -44,12 +64,18 @@ const normalizeList = (state, type, id, accounts, next) => {
return state.setIn([type, id], ImmutableMap({
next,
items: ImmutableList(accounts.map(item => item.id)),
+ isLoading: false,
}));
};
const appendToList = (state, type, id, accounts, next) => {
return state.updateIn([type, id], map => {
- return map.set('next', next).update('items', list => list.concat(accounts.map(item => item.id)));
+ return map
+ .set('next', next)
+ .set('isLoading', false)
+ .update('items', (list) => {
+ list.concat(accounts.map(item => item.id))
+ })
});
};
@@ -59,16 +85,34 @@ export default function userLists(state = initialState, action) {
return normalizeList(state, 'followers', action.id, action.accounts, action.next);
case FOLLOWERS_EXPAND_SUCCESS:
return appendToList(state, 'followers', action.id, action.accounts, action.next);
+ case FOLLOWERS_FETCH_REQUEST:
+ case FOLLOWERS_EXPAND_REQUEST:
+ return state.setIn(['followers', action.id, 'isLoading'], true);
+ case FOLLOWERS_FETCH_FAIL:
+ case FOLLOWERS_EXPAND_FAIL:
+ return state.setIn(['followers', action.id, 'isLoading'], false);
case FOLLOWING_FETCH_SUCCESS:
return normalizeList(state, 'following', action.id, action.accounts, action.next);
case FOLLOWING_EXPAND_SUCCESS:
return appendToList(state, 'following', action.id, action.accounts, action.next);
+ case FOLLOWING_FETCH_REQUEST:
+ case FOLLOWING_EXPAND_REQUEST:
+ return state.setIn(['following', action.id, 'isLoading'], true);
+ case FOLLOWING_FETCH_FAIL:
+ case FOLLOWING_EXPAND_FAIL:
+ return state.setIn(['following', action.id, 'isLoading'], false);
case REPOSTS_FETCH_SUCCESS:
return state.setIn(['reblogged_by', action.id], ImmutableList(action.accounts.map(item => item.id)));
case FOLLOW_REQUESTS_FETCH_SUCCESS:
- return state.setIn(['follow_requests', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next);
+ return state.setIn(['follow_requests', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next).setIn(['follow_requests', 'isLoading'], false);
case FOLLOW_REQUESTS_EXPAND_SUCCESS:
- return state.updateIn(['follow_requests', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next);
+ return state.updateIn(['follow_requests', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next).setIn(['follow_requests', 'isLoading'], false);
+ case FOLLOW_REQUESTS_FETCH_REQUEST:
+ case FOLLOW_REQUESTS_EXPAND_REQUEST:
+ return state.setIn(['follow_requests', 'isLoading'], true);
+ case FOLLOW_REQUESTS_FETCH_FAIL:
+ case FOLLOW_REQUESTS_EXPAND_FAIL:
+ return state.setIn(['follow_requests', 'isLoading'], false);
case FOLLOW_REQUEST_AUTHORIZE_SUCCESS:
case FOLLOW_REQUEST_REJECT_SUCCESS:
return state.updateIn(['follow_requests', 'items'], list => list.filterNot(item => item === action.id));
@@ -76,10 +120,22 @@ export default function userLists(state = initialState, action) {
return state.setIn(['blocks', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['blocks', 'next'], action.next);
case BLOCKS_EXPAND_SUCCESS:
return state.updateIn(['blocks', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['blocks', 'next'], action.next);
+ case BLOCKS_FETCH_REQUEST:
+ case BLOCKS_EXPAND_REQUEST:
+ return state.setIn(['blocks', 'isLoading'], true);
+ case BLOCKS_FETCH_FAIL:
+ case BLOCKS_EXPAND_FAIL:
+ return state.setIn(['blocks', 'isLoading'], false);
case MUTES_FETCH_SUCCESS:
return state.setIn(['mutes', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['mutes', 'next'], action.next);
case MUTES_EXPAND_SUCCESS:
return state.updateIn(['mutes', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['mutes', 'next'], action.next);
+ case MUTES_FETCH_REQUEST:
+ case MUTES_EXPAND_REQUEST:
+ return state.setIn(['mutes', 'isLoading'], true);
+ case MUTES_FETCH_FAIL:
+ case MUTES_EXPAND_FAIL:
+ return state.setIn(['mutes', 'isLoading'], false);
case GROUP_MEMBERS_FETCH_SUCCESS:
return normalizeList(state, 'groups', action.id, action.accounts, action.next);
case GROUP_MEMBERS_EXPAND_SUCCESS:
diff --git a/app/javascript/gabsocial/utils/resize_image.js b/app/javascript/gabsocial/utils/resize_image.js
index 04e472a9..ef50f1e5 100644
--- a/app/javascript/gabsocial/utils/resize_image.js
+++ b/app/javascript/gabsocial/utils/resize_image.js
@@ -2,6 +2,45 @@ import EXIF from 'exif-js';
const MAX_IMAGE_PIXELS = 1638400; // 1280x1280px
+const _browser_quirks = {};
+
+// Some browsers will automatically draw images respecting their EXIF orientation
+// while others won't, and the safest way to detect that is to examine how it
+// is done on a known image.
+// See https://github.com/w3c/csswg-drafts/issues/4666
+// and https://github.com/blueimp/JavaScript-Load-Image/commit/1e4df707821a0afcc11ea0720ee403b8759f3881
+const dropOrientationIfNeeded = (orientation) => new Promise(resolve => {
+ switch (_browser_quirks['image-orientation-automatic']) {
+ case true:
+ resolve(1);
+ break;
+ case false:
+ resolve(orientation);
+ break;
+ default:
+ // black 2x1 JPEG, with the following meta information set:
+ // - EXIF Orientation: 6 (Rotated 90° CCW)
+ const testImageURL =
+ 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +
+ 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +
+ 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +
+ 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' +
+ 'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' +
+ 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==';
+ const img = new Image();
+ img.onload = () => {
+ const automatic = (img.width === 1 && img.height === 2);
+ _browser_quirks['image-orientation-automatic'] = automatic;
+ resolve(automatic ? 1 : orientation);
+ };
+ img.onerror = () => {
+ _browser_quirks['image-orientation-automatic'] = false;
+ resolve(orientation);
+ };
+ img.src = testImageURL;
+ }
+});
+
const getImageUrl = inputFile => new Promise((resolve, reject) => {
if (window.URL && URL.createObjectURL) {
try {
@@ -38,7 +77,11 @@ const getOrientation = (img, type = 'image/png') => new Promise(resolve => {
EXIF.getData(img, () => {
const orientation = EXIF.getTag(img, 'Orientation');
- resolve(orientation);
+ if (orientation !== 1) {
+ dropOrientationIfNeeded(orientation).then(resolve).catch(() => resolve(orientation));
+ } else {
+ resolve(orientation);
+ }
});
});
@@ -67,6 +110,14 @@ const processImage = (img, { width, height, orientation, type = 'image/png' }) =
context.drawImage(img, 0, 0, width, height);
+ // The Tor Browser and maybe other browsers may prevent reading from canvas
+ // and return an all-white image instead. Assume reading failed if the resized
+ // image is perfectly white.
+ const imageData = context.getImageData(0, 0, width, height);
+ if (imageData.data.every(value => value === 255)) {
+ throw 'Failed to read from canvas';
+ }
+
canvas.toBlob(resolve, type);
});
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index 50b89662..124b52d6 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -81,7 +81,6 @@ function main ( ) {
});
const reactComponents = document.querySelectorAll('[data-component]');
- console.log("reactComponents:", reactComponents)
if (reactComponents.length > 0) {
import(/* webpackChunkName: "containers/media_container" */ '../gabsocial/containers/media_container')
diff --git a/app/javascript/styles/global.css b/app/javascript/styles/global.css
index aea84086..77490326 100644
--- a/app/javascript/styles/global.css
+++ b/app/javascript/styles/global.css
@@ -18,7 +18,7 @@
--fs_m: 1.0714285714rem;
--fs_l: 1.1428571429rem;
--fs_xl: 1.3571428571rem;
- --fs_xxl: 1.7142857143;
+ --fs_xxl: 1.7142857143rem;
}
:root {
@@ -372,6 +372,7 @@ body {
.top0 { top: 0; }
.top80PX { top: 80px; }
.top60PC { top: 60%; }
+.top50PC { top: 50%; }
.bottom0 { bottom: 0; }
.bottomAuto { bottom: auto; }
@@ -425,6 +426,7 @@ body {
.height1PX { height: 1px; }
.maxWidth100PC { max-width: 100%; }
+.maxWidth640PX { max-width: 640px; }
.width100PC { width: 100%; }
.width50PC { width: 50%; }
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index e2e9b3c6..c01d02c8 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -104,7 +104,8 @@ class MediaAttachment < ApplicationRecord
validates :account, presence: true
validates :description, length: { maximum: 420 }, if: :local?
-
+ validates :file, presence: true, if: :local?
+
scope :attached, -> { where.not(status_id: nil).or(where.not(scheduled_status_id: nil)) }
scope :unattached, -> { where(status_id: nil, scheduled_status_id: nil) }
scope :local, -> { where(remote_url: '') }
diff --git a/app/models/status.rb b/app/models/status.rb
index ca2bdb94..0938b9f3 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -351,7 +351,7 @@ class Status < ApplicationRecord
apply_timeline_filters(query, account, local_only)
end
- def as_tag_timeline(tag, account = nil, local_only = false)
+ def as_tag_timeline(tag, account = nil, local_only = true)
query = timeline_scope(local_only).tagged_with(tag).without_replies
apply_timeline_filters(query, account, local_only)
diff --git a/app/services/hashtag_query_service.rb b/app/services/hashtag_query_service.rb
index 5773d78c..c2f3910e 100644
--- a/app/services/hashtag_query_service.rb
+++ b/app/services/hashtag_query_service.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class HashtagQueryService < BaseService
+ LIMIT_PER_MODE = 1
+
def call(tag, params, account = nil, local = false)
tags = tags_for(Array(tag.name) | Array(params[:any])).pluck(:id)
all = tags_for(params[:all])
@@ -14,7 +16,7 @@ class HashtagQueryService < BaseService
private
- def tags_for(tags)
- Tag.where(name: tags.map(&:downcase)) if tags.presence
+ def tags_for(names)
+ Tag.matching_name(Array(names).take(LIMIT_PER_MODE)) if names.present?
end
-end
+end
\ No newline at end of file
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index b50b2f00..73bb2f66 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -53,7 +53,7 @@ class PostStatusService < BaseService
def preprocess_attributes!
@text = @options.delete(:spoiler_text) if @text.blank? && @options[:spoiler_text].present?
@visibility = @options[:visibility] || @account.user&.setting_default_privacy
- @visibility = :unlisted if @visibility == :public && @account.silenced?
+ @visibility = :unlisted if @visibility&.to_sym == :public && @account.silenced?
@scheduled_at = @options[:scheduled_at]&.to_datetime
@scheduled_at = nil if scheduled_in_the_past?
rescue ArgumentError
diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb
index 81af9ef3..93697435 100644
--- a/app/services/vote_service.rb
+++ b/app/services/vote_service.rb
@@ -13,7 +13,7 @@ class VoteService < BaseService
ApplicationRecord.transaction do
@choices.each do |choice|
- @votes << @poll.votes.create!(account: @account, choice: choice)
+ @votes << @poll.votes.create!(account: @account, choice: Integer(choice))
end
end
diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb
index cd2b8839..3d2b89ac 100644
--- a/config/initializers/rack_attack.rb
+++ b/config/initializers/rack_attack.rb
@@ -44,6 +44,7 @@ class Rack::Attack
/auth/sign_in
/auth
/auth/password
+ /auth/confirmation
).freeze
PROTECTED_PATHS_REGEX = Regexp.union(PROTECTED_PATHS.map { |path| /\A#{Regexp.escape(path)}/ })
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index 25ce8426..6d578231 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -29,8 +29,8 @@ en:
setting_aggregate_reblogs: Do not show new reposts for gabs that have been recently reposted (only affects newly-received reposts)
setting_default_language: The language of your gabs can be detected automatically, but it's not always accurate
setting_display_media_default: Hide media marked as sensitive
- setting_display_media_hide_all: Always hide all media
- setting_display_media_show_all: Always show media marked as sensitive
+ setting_display_media_hide_all: Always hide media
+ setting_display_media_show_all: Always show media
setting_hide_network: Who you follow and who follows you will not be shown on your profile
setting_noindex: Affects your public profile and status pages
setting_show_application: The application you use to gab will be displayed in the detailed view of your gabs
diff --git a/config/locales/simple_form.en_GB.yml b/config/locales/simple_form.en_GB.yml
index 2a3f04fa..61d8b339 100644
--- a/config/locales/simple_form.en_GB.yml
+++ b/config/locales/simple_form.en_GB.yml
@@ -29,8 +29,8 @@ en_GB:
setting_aggregate_reblogs: Do not show new reposts for gabs that have been recently reposted (only affects newly-received reposts)
setting_default_language: The language of your gabs can be detected automatically, but it's not always accurate
setting_display_media_default: Hide media marked as sensitive
- setting_display_media_hide_all: Always hide all media
- setting_display_media_show_all: Always show media marked as sensitive
+ setting_display_media_hide_all: Always hide media
+ setting_display_media_show_all: Always show media
setting_hide_network: Who you follow and who follows you will not be shown on your profile
setting_noindex: Affects your public profile and status pages
setting_show_application: The application you use to gab will be displayed in the detailed view of your gabs
diff --git a/lib/gabsocial/migration_helpers.rb b/lib/gabsocial/migration_helpers.rb
index e09f59ad..5451ffca 100644
--- a/lib/gabsocial/migration_helpers.rb
+++ b/lib/gabsocial/migration_helpers.rb
@@ -886,16 +886,12 @@ module GabSocial
Your database user is not allowed to create, drop, or execute triggers on the
table #{table}.
-If you are using PostgreSQL you can solve this by logging in to the GitLab
+If you are using PostgreSQL you can solve this by logging in to the GabSocial
database (#{dbname}) using a super user and running:
ALTER USER #{user} WITH SUPERUSER
-For MySQL you instead need to run:
-
- GRANT ALL PRIVILEGES ON *.* TO #{user}@'%'
-
-Both queries will grant the user super user permissions, ensuring you don't run
+The query will grant the user super user permissions, ensuring you don't run
into similar problems in the future (e.g. when new tables are created).
EOF
end