diff options
-rw-r--r-- | app/javascript/mastodon/containers/media_container.js | 13 | ||||
-rw-r--r-- | app/javascript/styles/mastodon/widgets.scss | 10 | ||||
-rw-r--r-- | app/views/application/_sidebar.html.haml | 10 | ||||
-rw-r--r-- | config/locales/en.yml | 1 |
4 files changed, 29 insertions, 5 deletions
diff --git a/app/javascript/mastodon/containers/media_container.js b/app/javascript/mastodon/containers/media_container.js index 48492f43d..8fddb6f54 100644 --- a/app/javascript/mastodon/containers/media_container.js +++ b/app/javascript/mastodon/containers/media_container.js @@ -7,6 +7,7 @@ import MediaGallery from '../components/media_gallery'; import Video from '../features/video'; import Card from '../features/status/components/card'; import Poll from 'mastodon/components/poll'; +import Hashtag from 'mastodon/components/hashtag'; import ModalRoot from '../components/modal_root'; import { getScrollbarWidth } from '../features/ui/components/modal_root'; import MediaModal from '../features/ui/components/media_modal'; @@ -15,7 +16,7 @@ import { List as ImmutableList, fromJS } from 'immutable'; const { localeData, messages } = getLocale(); addLocaleData(localeData); -const MEDIA_COMPONENTS = { MediaGallery, Video, Card, Poll }; +const MEDIA_COMPONENTS = { MediaGallery, Video, Card, Poll, Hashtag }; export default class MediaContainer extends PureComponent { @@ -62,12 +63,13 @@ export default class MediaContainer extends PureComponent { {[].map.call(components, (component, i) => { const componentName = component.getAttribute('data-component'); const Component = MEDIA_COMPONENTS[componentName]; - const { media, card, poll, ...props } = JSON.parse(component.getAttribute('data-props')); + const { media, card, poll, hashtag, ...props } = JSON.parse(component.getAttribute('data-props')); Object.assign(props, { - ...(media ? { media: fromJS(media) } : {}), - ...(card ? { card: fromJS(card) } : {}), - ...(poll ? { poll: fromJS(poll) } : {}), + ...(media ? { media: fromJS(media) } : {}), + ...(card ? { card: fromJS(card) } : {}), + ...(poll ? { poll: fromJS(poll) } : {}), + ...(hashtag ? { hashtag: fromJS(hashtag) } : {}), ...(componentName === 'Video' ? { onOpenVideo: this.handleOpenVideo, @@ -81,6 +83,7 @@ export default class MediaContainer extends PureComponent { component, ); })} + <ModalRoot onClose={this.handleCloseMedia}> {this.state.media && ( <MediaModal diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index b0d2d1787..04beb869c 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -100,6 +100,16 @@ background-size: 44px 44px; } } + + .trends__item { + padding: 10px; + } +} + +.trends-widget { + h4 { + color: $darker-text-color; + } } .box-widget { diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml index b5ce5845e..90c8f9dd1 100644 --- a/app/views/application/_sidebar.html.haml +++ b/app/views/application/_sidebar.html.haml @@ -4,3 +4,13 @@ .hero-widget__text %p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) + +- if Setting.trends + - trends = TrendingTags.get(3) + + - unless trends.empty? + .endorsements-widget.trends-widget + %h4.emojify= t('footer.trending_now') + + - trends.each do |tag| + = react_component :hashtag, hashtag: ActiveModelSerializers::SerializableResource.new(tag, serializer: REST::TagSerializer).as_json diff --git a/config/locales/en.yml b/config/locales/en.yml index 7ef61e279..4696dc11b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -687,6 +687,7 @@ en: developers: Developers more: More… resources: Resources + trending_now: Trending now generic: all: All changes_saved_msg: Changes successfully saved! |