Remove MastoFE-related backend code and frontend pieces

This commit is contained in:
Sean King 2021-04-15 22:56:21 -06:00
parent 152cb3074e
commit 4f55d5123b
No known key found for this signature in database
GPG key ID: 510C52BACD6E7257
611 changed files with 1 additions and 7958 deletions

View file

@ -1,65 +0,0 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastoFEController do
use Pleroma.Web, :controller
alias Pleroma.User
alias Pleroma.Web.MastodonAPI.AuthController
alias Pleroma.Web.OAuth.Token
alias Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlug
alias Pleroma.Web.Plugs.OAuthScopesPlug
plug(OAuthScopesPlug, %{scopes: ["write:accounts"]} when action == :put_settings)
# Note: :index action handles attempt of unauthenticated access to private instance with redirect
plug(:skip_plug, EnsurePublicOrAuthenticatedPlug when action == :index)
plug(
OAuthScopesPlug,
%{scopes: ["read"], fallback: :proceed_unauthenticated}
when action == :index
)
plug(
:skip_plug,
[OAuthScopesPlug, EnsurePublicOrAuthenticatedPlug] when action == :manifest
)
@doc "GET /web/*path"
def index(conn, _params) do
with %{assigns: %{user: %User{} = user, token: %Token{app_id: token_app_id} = token}} <- conn,
{:ok, %{id: ^token_app_id}} <- AuthController.local_mastofe_app() do
conn
|> put_layout(false)
|> render("index.html",
token: token.token,
user: user,
custom_emojis: Pleroma.Emoji.get_all()
)
else
_ ->
conn
|> put_session(:return_to, conn.request_path)
|> redirect(to: "/web/login")
end
end
@doc "GET /web/manifest.json"
def manifest(conn, _params) do
render(conn, "manifest.json")
end
@doc "PUT /api/web/settings: Backend-obscure settings blob for MastoFE, don't parse/reuse elsewhere"
def put_settings(%{assigns: %{user: user}} = conn, %{"data" => settings} = _params) do
with {:ok, _} <- User.mastodon_settings_update(user, settings) do
json(conn, %{})
else
e ->
conn
|> put_status(:internal_server_error)
|> json(%{error: inspect(e)})
end
end
end

View file

@ -27,8 +27,6 @@ defmodule Pleroma.Web.MastodonAPI.AppController do
plug(Pleroma.Web.ApiSpec.CastAndValidate)
@local_mastodon_name "Mastodon-Local"
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.AppOperation
@doc "POST /api/v1/apps"
@ -41,7 +39,6 @@ def create(%{body_params: params} = conn, _params) do
|> Map.put(:scopes, scopes)
with cs <- App.register_changeset(%App{}, app_attrs),
false <- cs.changes[:client_name] == @local_mastodon_name,
{:ok, app} <- Repo.insert(cs) do
render(conn, "show.json", app: app)
end

View file

@ -1,108 +0,0 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastodonAPI.AuthController do
use Pleroma.Web, :controller
import Pleroma.Web.ControllerHelper, only: [json_response: 3]
alias Pleroma.Helpers.AuthHelper
alias Pleroma.Helpers.UriHelper
alias Pleroma.User
alias Pleroma.Web.OAuth.App
alias Pleroma.Web.OAuth.Authorization
alias Pleroma.Web.OAuth.Token
alias Pleroma.Web.OAuth.Token.Strategy.Revoke, as: RevokeToken
alias Pleroma.Web.TwitterAPI.TwitterAPI
action_fallback(Pleroma.Web.MastodonAPI.FallbackController)
plug(Pleroma.Web.Plugs.RateLimiter, [name: :password_reset] when action == :password_reset)
@local_mastodon_name "Mastodon-Local"
@doc "GET /web/login"
# Local Mastodon FE login callback action
def login(conn, %{"code" => auth_token} = params) do
with {:ok, app} <- local_mastofe_app(),
{:ok, auth} <- Authorization.get_by_token(app, auth_token),
{:ok, oauth_token} <- Token.exchange_token(app, auth) do
redirect_to =
conn
|> local_mastodon_post_login_path()
|> UriHelper.modify_uri_params(%{"access_token" => oauth_token.token})
conn
|> AuthHelper.put_session_token(oauth_token.token)
|> redirect(to: redirect_to)
else
_ -> redirect_to_oauth_form(conn, params)
end
end
def login(conn, params) do
with %{assigns: %{user: %User{}, token: %Token{app_id: app_id}}} <- conn,
{:ok, %{id: ^app_id}} <- local_mastofe_app() do
redirect(conn, to: local_mastodon_post_login_path(conn))
else
_ -> redirect_to_oauth_form(conn, params)
end
end
defp redirect_to_oauth_form(conn, _params) do
with {:ok, app} <- local_mastofe_app() do
path =
o_auth_path(conn, :authorize,
response_type: "code",
client_id: app.client_id,
redirect_uri: ".",
scope: Enum.join(app.scopes, " ")
)
redirect(conn, to: path)
end
end
@doc "DELETE /auth/sign_out"
def logout(conn, _) do
conn =
with %{assigns: %{token: %Token{} = oauth_token}} <- conn,
session_token = AuthHelper.get_session_token(conn),
{:ok, %Token{token: ^session_token}} <- RevokeToken.revoke(oauth_token) do
AuthHelper.delete_session_token(conn)
else
_ -> conn
end
redirect(conn, to: "/")
end
@doc "POST /auth/password"
def password_reset(conn, params) do
nickname_or_email = params["email"] || params["nickname"]
TwitterAPI.password_reset(nickname_or_email)
json_response(conn, :no_content, "")
end
defp local_mastodon_post_login_path(conn) do
case get_session(conn, :return_to) do
nil ->
masto_fe_path(conn, :index, ["getting-started"])
return_to ->
delete_session(conn, :return_to)
return_to
end
end
@spec local_mastofe_app() :: {:ok, App.t()} | {:error, Ecto.Changeset.t()}
def local_mastofe_app do
App.get_or_make(
%{client_name: @local_mastodon_name, redirect_uris: "."},
["read", "write", "follow", "push", "admin"]
)
end
end

View file

@ -600,9 +600,6 @@ def login(%User{} = user, %App{} = app, requested_scopes) when is_list(requested
end
end
# Special case: Local MastodonFE
defp redirect_uri(%Plug.Conn{} = conn, "."), do: auth_url(conn, :login)
defp redirect_uri(%Plug.Conn{}, redirect_uri), do: redirect_uri
defp get_session_registration_id(%Plug.Conn{} = conn), do: get_session(conn, :registration_id)

View file

@ -100,12 +100,6 @@ defmodule Pleroma.Web.Router do
plug(Pleroma.Web.Plugs.IdempotencyPlug)
end
pipeline :mastodon_html do
plug(:browser)
plug(:authenticate)
plug(:after_auth)
end
pipeline :pleroma_html do
plug(:browser)
plug(:authenticate)
@ -538,13 +532,6 @@ defmodule Pleroma.Web.Router do
get("/timelines/list/:list_id", TimelineController, :list)
end
scope "/api/web", Pleroma.Web do
pipe_through(:authenticated_api)
# Backend-obscure settings blob for MastoFE, don't parse/reuse elsewhere
put("/settings", MastoFEController, :put_settings)
end
scope "/api/v1", Pleroma.Web.MastodonAPI do
pipe_through(:app_api)
@ -745,25 +732,6 @@ defmodule Pleroma.Web.Router do
get("/:version", Nodeinfo.NodeinfoController, :nodeinfo)
end
scope "/", Pleroma.Web do
pipe_through(:api)
get("/web/manifest.json", MastoFEController, :manifest)
end
scope "/", Pleroma.Web do
pipe_through(:mastodon_html)
get("/web/login", MastodonAPI.AuthController, :login)
delete("/auth/sign_out", MastodonAPI.AuthController, :logout)
post("/auth/password", MastodonAPI.AuthController, :password_reset)
get("/web/*path", MastoFEController, :index)
get("/embed/:id", EmbedController, :show)
end
scope "/proxy/", Pleroma.Web.MediaProxy do
get("/preview/:sig/:url", MediaProxyController, :preview)
get("/preview/:sig/:url/:filename", MediaProxyController, :preview)

View file

@ -1,35 +0,0 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<meta content='width=device-width, initial-scale=1' name='viewport'>
<title>
<%= Config.get([:instance, :name]) %>
</title>
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="manifest" type="applicaton/manifest+json" href="<%= masto_fe_path(Pleroma.Web.Endpoint, :manifest) %>" />
<meta name="theme-color" content="<%= Config.get([:manifest, :theme_color]) %>" />
<script crossorigin='anonymous' src="/packs/locales.js"></script>
<script crossorigin='anonymous' src="/packs/locales/glitch/en.js"></script>
<link rel='preload' as='script' crossorigin='anonymous' href='/packs/features/getting_started.js'>
<link rel='preload' as='script' crossorigin='anonymous' href='/packs/features/compose.js'>
<link rel='preload' as='script' crossorigin='anonymous' href='/packs/features/home_timeline.js'>
<link rel='preload' as='script' crossorigin='anonymous' href='/packs/features/notifications.js'>
<script id='initial-state' type='application/json'><%= initial_state(@token, @user, @custom_emojis) %></script>
<script src="/packs/core/common.js"></script>
<link rel="stylesheet" media="all" href="/packs/core/common.css" />
<script src="/packs/flavours/glitch/common.js"></script>
<link rel="stylesheet" media="all" href="/packs/flavours/glitch/common.css" />
<script src="/packs/flavours/glitch/home.js"></script>
</head>
<body class='app-body no-reduce-motion system-font'>
<div class='app-holder' data-props='{&quot;locale&quot;:&quot;en&quot;}' id='mastodon'>
</div>
</body>
</html>

View file

@ -1,91 +0,0 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastoFEView do
use Pleroma.Web, :view
alias Pleroma.Config
alias Pleroma.User
alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.MastodonAPI.CustomEmojiView
def initial_state(token, user, custom_emojis) do
limit = Config.get([:instance, :limit])
%{
meta: %{
streaming_api_base_url: Pleroma.Web.Endpoint.websocket_url(),
access_token: token,
locale: "en",
domain: Pleroma.Web.Endpoint.host(),
admin: "1",
me: "#{user.id}",
unfollow_modal: false,
boost_modal: false,
delete_modal: true,
auto_play_gif: false,
display_sensitive_media: false,
reduce_motion: false,
max_toot_chars: limit,
mascot: User.get_mascot(user)["url"]
},
poll_limits: Config.get([:instance, :poll_limits]),
rights: %{
delete_others_notice: present?(user.is_moderator),
admin: present?(user.is_admin)
},
compose: %{
me: "#{user.id}",
default_privacy: user.default_scope,
default_sensitive: false,
allow_content_types: Config.get([:instance, :allowed_post_formats])
},
media_attachments: %{
accept_content_types: [
".jpg",
".jpeg",
".png",
".gif",
".webm",
".mp4",
".m4v",
"image\/jpeg",
"image\/png",
"image\/gif",
"video\/webm",
"video\/mp4"
]
},
settings: user.mastofe_settings || %{},
push_subscription: nil,
accounts: %{user.id => render(AccountView, "show.json", user: user, for: user)},
custom_emojis: render(CustomEmojiView, "index.json", custom_emojis: custom_emojis),
char_limit: limit
}
|> Jason.encode!()
|> Phoenix.HTML.raw()
end
defp present?(nil), do: false
defp present?(false), do: false
defp present?(_), do: true
def render("manifest.json", _params) do
%{
name: Config.get([:instance, :name]),
description: Config.get([:instance, :description]),
icons: Config.get([:manifest, :icons]),
theme_color: Config.get([:manifest, :theme_color]),
background_color: Config.get([:manifest, :background_color]),
display: "standalone",
scope: Pleroma.Web.base_url(),
start_url: masto_fe_path(Pleroma.Web.Endpoint, :index, ["getting-started"]),
categories: [
"social"
],
serviceworker: %{
src: "/sw.js"
}
}
end
end

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{738:function(e,t,n){"use strict";n.r(t),n.d(t,"register",(function(){return s})),n.d(t,"setFocusTrapTest",(function(){return d})),n.d(t,"unregister",(function(){return l}));var r="a[href], area[href], input, select, textarea, button, iframe, object, embed, [contenteditable], [tabindex], video[controls], audio[controls], summary",o=["text","search","url","password","tel"],i=["checkbox","radio"],a=void 0;function c(e){for(var t=[],n=(function(e){if(!a)return;var t=e.parentElement;for(;t;){if(a(t))return t;t=t.parentElement}}(e)||document).querySelectorAll(r),o=n.length,i=0;i<o;i++){var c=n[i];c!==e&&(c.disabled||/^-/.test(c.getAttribute("tabindex")||"")||c.hasAttribute("inert")||!(c.offsetWidth>0||c.offsetHeight>0))||t.push(c)}return t}function u(e,t){var n=document.activeElement;if(!function(e,t){var n,r,i,a=e.tagName,c="TEXTAREA"===a,u="INPUT"===a&&-1!==o.indexOf(e.getAttribute("type").toLowerCase()),f=e.hasAttribute("contenteditable");if(!c&&!u&&!f)return!1;if(f){var s=getSelection();n=s.anchorOffset,r=s.focusOffset,i=e.textContent.length}else n=e.selectionStart,r=e.selectionEnd,i=e.value.length;return("ArrowLeft"!==t||n!==r||0!==n)&&("ArrowRight"!==t||n!==r||n!==i)}(n,t)){var r=c(n);if(r.length){var i=r.indexOf(n);("ArrowLeft"===t?r[i-1]||r[0]:r[i+1]||r[r.length-1]).focus(),e.preventDefault()}}}function f(e){if(!(e.altKey||e.metaKey||e.ctrlKey)){var t=e.key;switch(t){case"ArrowLeft":case"ArrowRight":u(e,t);break;case"Enter":!function(e){var t=document.activeElement;"INPUT"===t.tagName&&-1!==i.indexOf(t.getAttribute("type").toLowerCase())&&(t.click(),e.preventDefault())}(e)}}}function s(){addEventListener("keydown",f)}function l(){removeEventListener("keydown",f)}function d(e){a=e}}}]);
//# sourceMappingURL=arrow-key-navigation.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,5 +0,0 @@
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
/*! https://mths.be/punycode v1.4.1 by @mathias */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,149 +0,0 @@
/*!
Copyright (c) 2017 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
* Copyright(c) 2015 Andreas Lubbe
* Copyright(c) 2015 Tiancheng "Timothy" Gu
* MIT Licensed
*/
/*!
* wavesurfer.js 3.3.1 (2020-01-14)
* https://github.com/katspaugh/wavesurfer.js
* @license BSD-3-Clause
*/
/*! ./ajax */
/*! ./drawer */
/*! ./drawer.canvasentry */
/*! ./drawer.multicanvas */
/*! ./extend */
/*! ./fetch */
/*! ./frame */
/*! ./get-id */
/*! ./max */
/*! ./mediaelement */
/*! ./mediaelement-webaudio */
/*! ./min */
/*! ./observer */
/*! ./peakcache */
/*! ./prevent-click */
/*! ./request-animation-frame */
/*! ./style */
/*! ./util */
/*! ./util/get-id */
/*! ./util/style */
/*! ./webaudio */
/*! debounce */
/*! no static exports found */
/*!***********************!*\
!*** ./src/drawer.js ***!
\***********************/
/*!*************************!*\
!*** ./src/util/max.js ***!
\*************************/
/*!*************************!*\
!*** ./src/util/min.js ***!
\*************************/
/*!*************************!*\
!*** ./src/webaudio.js ***!
\*************************/
/*!**************************!*\
!*** ./src/peakcache.js ***!
\**************************/
/*!**************************!*\
!*** ./src/util/ajax.js ***!
\**************************/
/*!***************************!*\
!*** ./src/util/fetch.js ***!
\***************************/
/*!***************************!*\
!*** ./src/util/frame.js ***!
\***************************/
/*!***************************!*\
!*** ./src/util/index.js ***!
\***************************/
/*!***************************!*\
!*** ./src/util/style.js ***!
\***************************/
/*!***************************!*\
!*** ./src/wavesurfer.js ***!
\***************************/
/*!****************************!*\
!*** ./src/util/extend.js ***!
\****************************/
/*!****************************!*\
!*** ./src/util/get-id.js ***!
\****************************/
/*!*****************************!*\
!*** ./src/mediaelement.js ***!
\*****************************/
/*!******************************!*\
!*** ./src/util/observer.js ***!
\******************************/
/*!***********************************!*\
!*** ./src/drawer.canvasentry.js ***!
\***********************************/
/*!***********************************!*\
!*** ./src/drawer.multicanvas.js ***!
\***********************************/
/*!***********************************!*\
!*** ./src/util/prevent-click.js ***!
\***********************************/
/*!**************************************!*\
!*** ./src/mediaelement-webaudio.js ***!
\**************************************/
/*!****************************************!*\
!*** ./node_modules/debounce/index.js ***!
\****************************************/
/*!*********************************************!*\
!*** ./src/util/request-animation-frame.js ***!
\*********************************************/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,7 +0,0 @@
/*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
* Copyright(c) 2015 Andreas Lubbe
* Copyright(c) 2015 Tiancheng "Timothy" Gu
* MIT Licensed
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{944:function(e,t){window.addEventListener("message",(function(e){var t=e.data||{};function n(){window.parent.postMessage({type:"setHeight",id:t.id,height:document.getElementsByTagName("html")[0].scrollHeight},"*")}window.parent&&"setHeight"===t.type&&(["interactive","complete"].includes(document.readyState)?n():document.addEventListener("DOMContentLoaded",n))}))}},[[944,0]]]);
//# sourceMappingURL=embed.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/core/embed.js"],"names":["window","addEventListener","e","data","setEmbedHeight","parent","postMessage","type","id","height","document","getElementsByTagName","scrollHeight","includes","readyState"],"mappings":"2EAEAA,OAAOC,iBAAiB,WAAW,SAAAC,GACjC,IAAMC,EAAOD,EAAEC,MAAQ,GAMvB,SAASC,IACPJ,OAAOK,OAAOC,YAAY,CACxBC,KAAM,YACNC,GAAIL,EAAKK,GACTC,OAAQC,SAASC,qBAAqB,QAAQ,GAAGC,cAChD,KATAZ,OAAOK,QAAwB,cAAdF,EAAKI,OAYvB,CAAC,cAAe,YAAYM,SAASH,SAASI,YAChDV,IAEAM,SAAST,iBAAiB,mBAAoBG,S","file":"core/embed.js","sourcesContent":["// This file will be loaded on embed pages, regardless of theme.\n\nwindow.addEventListener('message', e => {\n const data = e.data || {};\n\n if (!window.parent || data.type !== 'setHeight') {\n return;\n }\n\n function setEmbedHeight () {\n window.parent.postMessage({\n type: 'setHeight',\n id: data.id,\n height: document.getElementsByTagName('html')[0].scrollHeight,\n }, '*');\n };\n\n if (['interactive', 'complete'].includes(document.readyState)) {\n setEmbedHeight();\n } else {\n document.addEventListener('DOMContentLoaded', setEmbedHeight);\n }\n});\n"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{945:function(n,o,w){"use strict";w.r(o);w(946)},946:function(n,o,w){}},[[945,0]]]);
//# sourceMappingURL=mailer.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/core/mailer.js"],"names":[],"mappings":"0FAAA,e","file":"core/mailer.js","sourcesContent":["import 'styles/mailer.scss';\n"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,7 +0,0 @@
/*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
* Copyright(c) 2015 Andreas Lubbe
* Copyright(c) 2015 Tiancheng "Timothy" Gu
* MIT Licensed
*/

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{812:function(n,r,i){"use strict";i.r(r);var o=i(1082);i.d(r,"Picker",(function(){return o.a}));var c=i(1058);i.d(r,"Emoji",(function(){return c.a}))}}]);
//# sourceMappingURL=emoji_picker.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/emoji/emoji_picker.js"],"names":[],"mappings":"2FAAA","file":"emoji_picker.js","sourcesContent":["import Picker from 'emoji-mart/dist-es/components/picker/picker';\nimport Emoji from 'emoji-mart/dist-es/components/emoji/emoji';\n\nexport {\n Picker,\n Emoji,\n};\n"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
/*! npm.im/object-fit-images 3.2.4 */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{819:function(t,a,e){"use strict";e.r(a),e.d(a,"default",(function(){return _}));var s,o,i,c=e(0),n=e(2),p=(e(9),e(6),e(8)),r=e(1),u=(e(3),e(15)),d=e(16),l=e.n(d),h=e(5),b=e.n(h),m=e(26),j=e(36),I=e(1065),O=e(306),f=e(757),w=e(1084),v=e(764),g=e(4),R=e(21),y=e(7),M=e(291),L=e(1057);var S=Object(g.List)(),_=Object(u.connect)((function(t,a){var e=a.params.accountId,s=a.withReplies,o=void 0!==s&&s,i=o?e+":with_replies":e;return{isAccount:!!t.getIn(["accounts",e]),statusIds:t.getIn(["timelines","account:"+i,"items"],S),featuredStatusIds:o?Object(g.List)():t.getIn(["timelines","account:"+e+":pinned","items"],S),isLoading:t.getIn(["timelines","account:"+i,"isLoading"]),hasMore:t.getIn(["timelines","account:"+i,"hasMore"]),blockedBy:t.getIn(["relationships",e,"blocked_by"],!1)}}))((i=o=function(t){Object(p.a)(e,t);var a;a=e;function e(){for(var a,e=arguments.length,s=new Array(e),o=0;o<e;o++)s[o]=arguments[o];return a=t.call.apply(t,[this].concat(s))||this,Object(r.a)(Object(n.a)(a),"handleLoadMore",(function(t){a.props.dispatch(Object(j.q)(a.props.params.accountId,{maxId:t,withReplies:a.props.withReplies}))})),a}var s=e.prototype;return s.componentWillMount=function(){var t=this.props,a=t.params.accountId,e=t.withReplies;this.props.dispatch(Object(m.A)(a)),this.props.dispatch(Object(M.d)(a)),e||this.props.dispatch(Object(j.o)(a)),this.props.dispatch(Object(j.q)(a,{withReplies:e}))},s.componentWillReceiveProps=function(t){(t.params.accountId!==this.props.params.accountId&&t.params.accountId||t.withReplies!==this.props.withReplies)&&(this.props.dispatch(Object(m.A)(t.params.accountId)),this.props.dispatch(Object(M.d)(t.params.accountId)),t.withReplies||this.props.dispatch(Object(j.o)(t.params.accountId)),this.props.dispatch(Object(j.q)(t.params.accountId,{withReplies:t.params.withReplies})))},s.render=function(){var t=this.props,a=t.shouldUpdateScroll,e=t.statusIds,s=t.featuredStatusIds,o=t.isLoading,i=t.hasMore,n=t.blockedBy,p=t.isAccount,r=t.multiColumn;if(!p)return Object(c.a)(f.a,{},void 0,Object(c.a)(v.a,{multiColumn:r}),Object(c.a)(L.a,{}));if(!e&&o)return Object(c.a)(f.a,{},void 0,Object(c.a)(O.a,{}));var u=n?Object(c.a)(y.b,{id:"empty_column.account_unavailable",defaultMessage:"Profile unavailable"}):Object(c.a)(y.b,{id:"empty_column.account_timeline",defaultMessage:"No toots here!"});return(Object(c.a)(f.a,{},void 0,Object(c.a)(v.a,{multiColumn:r}),Object(c.a)(I.a,{prepend:Object(c.a)(w.a,{accountId:this.props.params.accountId}),alwaysPrepend:!0,scrollKey:"account_timeline",statusIds:n?S:e,featuredStatusIds:s,isLoading:o,hasMore:i,onLoadMore:this.handleLoadMore,shouldUpdateScroll:a,emptyMessage:u,bindToDocument:!r,timelineId:"account"})))},e}(R.a),Object(r.a)(o,"propTypes",{params:b.a.object.isRequired,dispatch:b.a.func.isRequired,shouldUpdateScroll:b.a.func,statusIds:l.a.list,featuredStatusIds:l.a.list,isLoading:b.a.bool,hasMore:b.a.bool,withReplies:b.a.bool,blockedBy:b.a.bool,isAccount:b.a.bool,multiColumn:b.a.bool}),s=i))||s}}]);
//# sourceMappingURL=account_timeline.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{827:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return q}));var o,n,c,s=a(0),r=a(2),i=(a(9),a(6),a(8)),u=a(1),l=a(65),d=a.n(l),b=(a(3),a(15)),p=a(7),h=a(21),f=a(16),j=a.n(f),O=a(5),m=a.n(O),g=a(306),M=a(757),v=a(763),k=a(1053),y=a(230),w=a(1049);var I=Object(p.f)({heading:{id:"column.blocks",defaultMessage:"Blocked users"}}),q=Object(b.connect)((function(e){return{accountIds:e.getIn(["user_lists","blocks","items"]),hasMore:!!e.getIn(["user_lists","blocks","next"])}}))(o=Object(p.g)((c=n=function(e){Object(i.a)(a,e);var t;t=a;function a(){for(var t,a=arguments.length,o=new Array(a),n=0;n<a;n++)o[n]=arguments[n];return t=e.call.apply(e,[this].concat(o))||this,Object(u.a)(Object(r.a)(t),"handleLoadMore",d()((function(){t.props.dispatch(Object(y.d)())}),300,{leading:!0})),t}var o=a.prototype;return o.componentWillMount=function(){this.props.dispatch(Object(y.e)())},o.render=function(){var e=this.props,t=e.intl,a=e.accountIds,o=e.shouldUpdateScroll,n=e.hasMore,c=e.multiColumn;if(!a)return Object(s.a)(M.a,{},void 0,Object(s.a)(g.a,{}));var r=Object(s.a)(p.b,{id:"empty_column.blocks",defaultMessage:"You haven't blocked any users yet."});return(Object(s.a)(M.a,{bindToDocument:!c,icon:"ban",heading:t.formatMessage(I.heading)},void 0,Object(s.a)(v.a,{}),Object(s.a)(w.a,{scrollKey:"blocks",onLoadMore:this.handleLoadMore,hasMore:n,shouldUpdateScroll:o,emptyMessage:r,bindToDocument:!c},void 0,a.map((function(e){return Object(s.a)(k.a,{id:e},e)})))))},a}(h.a),Object(u.a)(n,"propTypes",{params:m.a.object.isRequired,dispatch:m.a.func.isRequired,shouldUpdateScroll:m.a.func,accountIds:j.a.list,hasMore:m.a.bool,intl:m.a.object.isRequired,multiColumn:m.a.bool}),o=c))||o)||o}}]);
//# sourceMappingURL=blocks.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/blocks/index.js"],"names":["messages","defineMessages","heading","Blocks","connect","state","accountIds","getIn","hasMore","injectIntl","props","dispatch","expandBlocks","leading","componentWillMount","this","fetchBlocks","render","intl","shouldUpdateScroll","multiColumn","emptyMessage","id","defaultMessage","bindToDocument","icon","formatMessage","scrollKey","onLoadMore","handleLoadMore","map","ImmutablePureComponent","params","PropTypes","object","isRequired","func","ImmutablePropTypes","list","bool"],"mappings":"oUAcA,IAAMA,EAAWC,YAAe,CAC9BC,QAAQ,CAAD,qDAUHC,EAFUC,mBALQ,SAAAC,GAAK,MAAK,CAChCC,WAAYD,EAAME,MAAM,CAAC,aAAc,SAAU,UACjDC,UAAWH,EAAME,MAAM,CAAC,aAAc,SAAU,Y,GAIjDE,a,8NAiBkB,KAAS,WACxB,EAAKC,MAAMC,SAASC,iBACnB,IAAK,CAAEC,SAAS,K,6BANnBC,mBAAA,WACEC,KAAKL,MAAMC,SAASK,gB,EAOtBC,OAAA,WAAW,IAAD,EAC+DF,KAAKL,MAApEQ,EADA,EACAA,KAAMZ,EADN,EACMA,WAAYa,EADlB,EACkBA,mBAAoBX,EADtC,EACsCA,QAASY,EAD/C,EAC+CA,YAEvD,IAAKd,EACH,OACE,YAAC,IAAD,UACE,YAAC,IAAD,KAKN,IAAMe,EAAe,YAAC,IAAD,CAAkBC,GAAG,sBAAsBC,eAAe,uCAE/E,OACE,YAAC,IAAD,CAAQC,gBAAiBJ,EAAaK,KAAK,MAAMvB,QAASgB,EAAKQ,cAAc1B,EAASE,eAAtF,EACE,YAAC,IAAD,IACA,YAAC,IAAD,CACEyB,UAAU,SACVC,WAAYb,KAAKc,eACjBrB,QAASA,EACTW,mBAAoBA,EACpBE,aAAcA,EACdG,gBAAiBJ,QANnB,EAQGd,EAAWwB,KAAI,SAAAR,GAAE,OAChB,YAAC,IAAD,CAA2BA,GAAIA,GAARA,U,GA7CdS,K,0BAEA,CACjBC,OAAQC,IAAUC,OAAOC,WACzBxB,SAAUsB,IAAUG,KAAKD,WACzBhB,mBAAoBc,IAAUG,KAC9B9B,WAAY+B,IAAmBC,KAC/B9B,QAASyB,IAAUM,KACnBrB,KAAMe,IAAUC,OAAOC,WACvBf,YAAaa,IAAUM,O","file":"features/blocks.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { debounce } from 'lodash';\nimport PropTypes from 'prop-types';\nimport LoadingIndicator from '../../components/loading_indicator';\nimport Column from '../ui/components/column';\nimport ColumnBackButtonSlim from '../../components/column_back_button_slim';\nimport AccountContainer from '../../containers/account_container';\nimport { fetchBlocks, expandBlocks } from '../../actions/blocks';\nimport ScrollableList from '../../components/scrollable_list';\n\nconst messages = defineMessages({\n heading: { id: 'column.blocks', defaultMessage: 'Blocked users' },\n});\n\nconst mapStateToProps = state => ({\n accountIds: state.getIn(['user_lists', 'blocks', 'items']),\n hasMore: !!state.getIn(['user_lists', 'blocks', 'next']),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Blocks extends ImmutablePureComponent {\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n accountIds: ImmutablePropTypes.list,\n hasMore: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n multiColumn: PropTypes.bool,\n };\n\n componentWillMount () {\n this.props.dispatch(fetchBlocks());\n }\n\n handleLoadMore = debounce(() => {\n this.props.dispatch(expandBlocks());\n }, 300, { leading: true });\n\n render () {\n const { intl, accountIds, shouldUpdateScroll, hasMore, multiColumn } = this.props;\n\n if (!accountIds) {\n return (\n <Column>\n <LoadingIndicator />\n </Column>\n );\n }\n\n const emptyMessage = <FormattedMessage id='empty_column.blocks' defaultMessage=\"You haven't blocked any users yet.\" />;\n\n return (\n <Column bindToDocument={!multiColumn} icon='ban' heading={intl.formatMessage(messages.heading)}>\n <ColumnBackButtonSlim />\n <ScrollableList\n scrollKey='blocks'\n onLoadMore={this.handleLoadMore}\n hasMore={hasMore}\n shouldUpdateScroll={shouldUpdateScroll}\n emptyMessage={emptyMessage}\n bindToDocument={!multiColumn}\n >\n {accountIds.map(id =>\n <AccountContainer key={id} id={id} />,\n )}\n </ScrollableList>\n </Column>\n );\n }\n\n}\n"],"sourceRoot":""}

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{826:function(t,e,o){"use strict";o.r(e),o.d(e,"default",(function(){return C}));var a,n,s,i=o(0),c=o(2),r=(o(9),o(6),o(8)),l=o(1),d=o(65),u=o.n(d),b=o(3),h=o.n(b),p=o(15),m=o(5),k=o.n(m),O=o(16),f=o.n(O),j=o(209),g=o(757),M=o(759),v=o(253),I=o(1065),w=o(7),y=o(21);var L=Object(w.f)({heading:{id:"column.bookmarks",defaultMessage:"Bookmarks"}}),C=Object(p.connect)((function(t){return{statusIds:t.getIn(["status_lists","bookmarks","items"]),isLoading:t.getIn(["status_lists","bookmarks","isLoading"],!0),hasMore:!!t.getIn(["status_lists","bookmarks","next"])}}))(a=Object(w.g)((s=n=function(t){Object(r.a)(o,t);var e;e=o;function o(){for(var e,o=arguments.length,a=new Array(o),n=0;n<o;n++)a[n]=arguments[n];return e=t.call.apply(t,[this].concat(a))||this,Object(l.a)(Object(c.a)(e),"handlePin",(function(){var t=e.props,o=t.columnId,a=t.dispatch;a(o?Object(v.h)(o):Object(v.e)("BOOKMARKS",{}))})),Object(l.a)(Object(c.a)(e),"handleMove",(function(t){var o=e.props,a=o.columnId;(0,o.dispatch)(Object(v.g)(a,t))})),Object(l.a)(Object(c.a)(e),"handleHeaderClick",(function(){e.column.scrollTop()})),Object(l.a)(Object(c.a)(e),"setRef",(function(t){e.column=t})),Object(l.a)(Object(c.a)(e),"handleLoadMore",u()((function(){e.props.dispatch(Object(j.g)())}),300,{leading:!0})),e}var a=o.prototype;return a.componentWillMount=function(){this.props.dispatch(Object(j.h)())},a.render=function(){var t=this.props,e=t.intl,o=t.shouldUpdateScroll,a=t.statusIds,n=t.columnId,s=t.multiColumn,c=t.hasMore,r=t.isLoading,l=!!n,d=Object(i.a)(w.b,{id:"empty_column.bookmarked_statuses",defaultMessage:"You don't have any bookmarked toots yet. When you bookmark one, it will show up here."});return h.a.createElement(g.a,{bindToDocument:!s,ref:this.setRef,label:e.formatMessage(L.heading)},Object(i.a)(M.a,{icon:"bookmark",title:e.formatMessage(L.heading),onPin:this.handlePin,onMove:this.handleMove,onClick:this.handleHeaderClick,pinned:l,multiColumn:s,showBackButton:!0}),Object(i.a)(I.a,{trackScroll:!l,statusIds:a,scrollKey:"bookmarked_statuses-"+n,hasMore:c,isLoading:r,onLoadMore:this.handleLoadMore,shouldUpdateScroll:o,emptyMessage:d,bindToDocument:!s}))},o}(y.a),Object(l.a)(n,"propTypes",{dispatch:k.a.func.isRequired,shouldUpdateScroll:k.a.func,statusIds:f.a.list.isRequired,intl:k.a.object.isRequired,columnId:k.a.string,multiColumn:k.a.bool,hasMore:k.a.bool,isLoading:k.a.bool}),a=s))||a)||a}}]);
//# sourceMappingURL=bookmarked_statuses.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{861:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return U}));var o,i,c,a=n(0),l=n(2),d=(n(9),n(6),n(8)),r=n(1),s=n(3),u=n.n(s),m=n(15),p=n(7),h=n(5),b=n.n(h),f=n(1063),y=n(762),j=n(759),O=n(36),M=n(253),g=n(1172),v=n(74),I=Object(m.connect)((function(e,t){var n=t.columnId,o=e.getIn(["settings","columns"]),i=o.findIndex((function(e){return e.get("uuid")===n}));return{settings:n&&i>=0?o.get(i).get("params"):e.getIn(["settings","community"])}}),(function(e,t){var n=t.columnId;return{onChange:function(t,o){e(n?Object(M.f)(n,t,o):Object(v.c)(["community"].concat(t),o))}}}))(g.a),C=n(766);var w=Object(p.f)({title:{id:"column.community",defaultMessage:"Local timeline"}}),U=Object(m.connect)((function(e,t){var n=t.columnId,o=n,i=e.getIn(["settings","columns"]),c=i.findIndex((function(e){return e.get("uuid")===o})),a=n&&c>=0?i.get(c).getIn(["params","other","onlyMedia"]):e.getIn(["settings","community","other","onlyMedia"]),l=e.getIn(["timelines","community"+(a?":media":"")]);return{hasUnread:!!l&&l.get("unread")>0,onlyMedia:a}}))(o=Object(p.g)((c=i=function(e){Object(d.a)(n,e);var t;t=n;function n(){for(var t,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return t=e.call.apply(e,[this].concat(o))||this,Object(r.a)(Object(l.a)(t),"handlePin",(function(){var e=t.props,n=e.columnId,o=e.dispatch,i=e.onlyMedia;o(n?Object(M.h)(n):Object(M.e)("COMMUNITY",{other:{onlyMedia:i}}))})),Object(r.a)(Object(l.a)(t),"handleMove",(function(e){var n=t.props,o=n.columnId;(0,n.dispatch)(Object(M.g)(o,e))})),Object(r.a)(Object(l.a)(t),"handleHeaderClick",(function(){t.column.scrollTop()})),Object(r.a)(Object(l.a)(t),"setRef",(function(e){t.column=e})),Object(r.a)(Object(l.a)(t),"handleLoadMore",(function(e){var n=t.props,o=n.dispatch,i=n.onlyMedia;o(Object(O.r)({maxId:e,onlyMedia:i}))})),t}var o=n.prototype;return o.componentDidMount=function(){var e=this.props,t=e.dispatch,n=e.onlyMedia;t(Object(O.r)({onlyMedia:n})),this.disconnect=t(Object(C.a)({onlyMedia:n}))},o.componentDidUpdate=function(e){if(e.onlyMedia!==this.props.onlyMedia){var t=this.props,n=t.dispatch,o=t.onlyMedia;this.disconnect(),n(Object(O.r)({onlyMedia:o})),this.disconnect=n(Object(C.a)({onlyMedia:o}))}},o.componentWillUnmount=function(){this.disconnect&&(this.disconnect(),this.disconnect=null)},o.render=function(){var e=this.props,t=e.intl,n=e.shouldUpdateScroll,o=e.hasUnread,i=e.columnId,c=e.multiColumn,l=e.onlyMedia,d=!!i;return u.a.createElement(y.a,{bindToDocument:!c,ref:this.setRef,label:t.formatMessage(w.title)},Object(a.a)(j.a,{icon:"users",active:o,title:t.formatMessage(w.title),onPin:this.handlePin,onMove:this.handleMove,onClick:this.handleHeaderClick,pinned:d,multiColumn:c},void 0,Object(a.a)(I,{columnId:i})),Object(a.a)(f.a,{trackScroll:!d,scrollKey:"community_timeline-"+i,timelineId:"community"+(l?":media":""),onLoadMore:this.handleLoadMore,emptyMessage:Object(a.a)(p.b,{id:"empty_column.community",defaultMessage:"The local timeline is empty. Write something publicly to get the ball rolling!"}),shouldUpdateScroll:n,bindToDocument:!c}))},n}(u.a.PureComponent),Object(r.a)(i,"contextTypes",{router:b.a.object}),Object(r.a)(i,"defaultProps",{onlyMedia:!1}),o=c))||o)||o}}]);
//# sourceMappingURL=community_timeline.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{852:function(n,o,a){"use strict";a.r(o),a.d(o,"default",(function(){return S}));var e,t,i,c=a(0),r=a(2),s=(a(9),a(6),a(8)),d=a(1),l=a(65),u=a.n(l),m=(a(3),a(15)),b=a(7),f=a(21),p=a(5),j=a.n(p),O=a(16),h=a.n(O),k=a(306),g=a(757),v=a(763),M=a(84),y=a(53);var _,D,w,U=Object(b.f)({unblockDomain:{id:"account.unblock_domain",defaultMessage:"Unblock domain {domain}"}}),C=Object(b.g)((i=t=function(n){Object(s.a)(a,n);var o;o=a;function a(){for(var o,a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];return o=n.call.apply(n,[this].concat(e))||this,Object(d.a)(Object(r.a)(o),"handleDomainUnblock",(function(){o.props.onUnblockDomain(o.props.domain)})),o}return a.prototype.render=function(){var n=this.props,o=n.domain,a=n.intl;return(Object(c.a)("div",{className:"domain"},void 0,Object(c.a)("div",{className:"domain__wrapper"},void 0,Object(c.a)("span",{className:"domain__domain-name"},void 0,Object(c.a)("strong",{},void 0,o)),Object(c.a)("div",{className:"domain__buttons"},void 0,Object(c.a)(y.a,{active:!0,icon:"unlock",title:a.formatMessage(U.unblockDomain,{domain:o}),onClick:this.handleDomainUnblock})))))},a}(f.a),Object(d.a)(t,"propTypes",{domain:j.a.string,onUnblockDomain:j.a.func.isRequired,intl:j.a.object.isRequired}),e=i))||e,R=a(48),q=Object(b.f)({blockDomainConfirm:{id:"confirmations.domain_block.confirm",defaultMessage:"Block entire domain"}}),N=Object(b.g)(Object(m.connect)((function(){return function(){return{}}}),(function(n,o){var a=o.intl;return{onBlockDomain:function(o){n(Object(R.d)("CONFIRM",{message:Object(c.a)(b.b,{id:"confirmations.domain_block.message",defaultMessage:"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.",values:{domain:Object(c.a)("strong",{},void 0,o)}}),confirm:a.formatMessage(q.blockDomainConfirm),onConfirm:function(){return n(Object(M.e)(o))}}))},onUnblockDomain:function(o){n(Object(M.h)(o))}}}))(C)),T=a(1049);var I=Object(b.f)({heading:{id:"column.domain_blocks",defaultMessage:"Blocked domains"},unblockDomain:{id:"account.unblock_domain",defaultMessage:"Unblock domain {domain}"}}),S=Object(m.connect)((function(n){return{domains:n.getIn(["domain_lists","blocks","items"]),hasMore:!!n.getIn(["domain_lists","blocks","next"])}}))(_=Object(b.g)((w=D=function(n){Object(s.a)(a,n);var o;o=a;function a(){for(var o,a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];return o=n.call.apply(n,[this].concat(e))||this,Object(d.a)(Object(r.a)(o),"handleLoadMore",u()((function(){o.props.dispatch(Object(M.f)())}),300,{leading:!0})),o}var e=a.prototype;return e.componentWillMount=function(){this.props.dispatch(Object(M.g)())},e.render=function(){var n=this.props,o=n.intl,a=n.domains,e=n.shouldUpdateScroll,t=n.hasMore,i=n.multiColumn;if(!a)return Object(c.a)(g.a,{},void 0,Object(c.a)(k.a,{}));var r=Object(c.a)(b.b,{id:"empty_column.domain_blocks",defaultMessage:"There are no blocked domains yet."});return(Object(c.a)(g.a,{bindToDocument:!i,icon:"minus-circle",heading:o.formatMessage(I.heading)},void 0,Object(c.a)(v.a,{}),Object(c.a)(T.a,{scrollKey:"domain_blocks",onLoadMore:this.handleLoadMore,hasMore:t,shouldUpdateScroll:e,emptyMessage:r,bindToDocument:!i},void 0,a.map((function(n){return Object(c.a)(N,{domain:n},n)})))))},a}(f.a),Object(d.a)(D,"propTypes",{params:j.a.object.isRequired,dispatch:j.a.func.isRequired,shouldUpdateScroll:j.a.func,hasMore:j.a.bool,domains:h.a.orderedSet,intl:j.a.object.isRequired,multiColumn:j.a.bool}),_=w))||_)||_}}]);
//# sourceMappingURL=domain_blocks.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{825:function(t,e,a){"use strict";a.r(e),a.d(e,"default",(function(){return C}));var o,n,s,i=a(0),c=a(2),u=(a(9),a(6),a(8)),r=a(1),l=a(65),d=a.n(l),h=a(3),p=a.n(h),b=a(15),f=a(5),j=a.n(f),O=a(16),m=a.n(O),g=a(208),v=a(757),M=a(759),I=a(253),w=a(1065),y=a(7),L=a(21);var k=Object(y.f)({heading:{id:"column.favourites",defaultMessage:"Favourites"}}),C=Object(b.connect)((function(t){return{statusIds:t.getIn(["status_lists","favourites","items"]),isLoading:t.getIn(["status_lists","favourites","isLoading"],!0),hasMore:!!t.getIn(["status_lists","favourites","next"])}}))(o=Object(y.g)((s=n=function(t){Object(u.a)(a,t);var e;e=a;function a(){for(var e,a=arguments.length,o=new Array(a),n=0;n<a;n++)o[n]=arguments[n];return e=t.call.apply(t,[this].concat(o))||this,Object(r.a)(Object(c.a)(e),"handlePin",(function(){var t=e.props,a=t.columnId,o=t.dispatch;o(a?Object(I.h)(a):Object(I.e)("FAVOURITES",{}))})),Object(r.a)(Object(c.a)(e),"handleMove",(function(t){var a=e.props,o=a.columnId;(0,a.dispatch)(Object(I.g)(o,t))})),Object(r.a)(Object(c.a)(e),"handleHeaderClick",(function(){e.column.scrollTop()})),Object(r.a)(Object(c.a)(e),"setRef",(function(t){e.column=t})),Object(r.a)(Object(c.a)(e),"handleLoadMore",d()((function(){e.props.dispatch(Object(g.g)())}),300,{leading:!0})),e}var o=a.prototype;return o.componentWillMount=function(){this.props.dispatch(Object(g.h)())},o.render=function(){var t=this.props,e=t.intl,a=t.shouldUpdateScroll,o=t.statusIds,n=t.columnId,s=t.multiColumn,c=t.hasMore,u=t.isLoading,r=!!n,l=Object(i.a)(y.b,{id:"empty_column.favourited_statuses",defaultMessage:"You don't have any favourite toots yet. When you favourite one, it will show up here."});return p.a.createElement(v.a,{bindToDocument:!s,ref:this.setRef,label:e.formatMessage(k.heading)},Object(i.a)(M.a,{icon:"star",title:e.formatMessage(k.heading),onPin:this.handlePin,onMove:this.handleMove,onClick:this.handleHeaderClick,pinned:r,multiColumn:s,showBackButton:!0}),Object(i.a)(w.a,{trackScroll:!r,statusIds:o,scrollKey:"favourited_statuses-"+n,hasMore:c,isLoading:u,onLoadMore:this.handleLoadMore,shouldUpdateScroll:a,emptyMessage:l,bindToDocument:!s}))},a}(L.a),Object(r.a)(n,"propTypes",{dispatch:j.a.func.isRequired,shouldUpdateScroll:j.a.func,statusIds:m.a.list.isRequired,intl:j.a.object.isRequired,columnId:j.a.string,multiColumn:j.a.bool,hasMore:j.a.bool,isLoading:j.a.bool}),o=s))||o)||o}}]);
//# sourceMappingURL=favourited_statuses.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{823:function(t,e,a){"use strict";a.r(e),a.d(e,"default",(function(){return q}));var s,o,r,n=a(0),c=a(2),i=(a(9),a(6),a(8)),u=a(1),p=(a(3),a(15)),d=a(21),l=a(5),h=a.n(l),f=a(16),b=a.n(f),m=a(306),j=a(46),O=a(7),v=a(1053),I=a(757),w=a(1049),y=a(27),g=a(759);var R=Object(O.f)({refresh:{id:"refresh",defaultMessage:"Refresh"}}),q=Object(p.connect)((function(t,e){return{accountIds:t.getIn(["user_lists","favourited_by",e.params.statusId])}}))(s=Object(O.g)((r=o=function(t){Object(i.a)(a,t);var e;e=a;function a(){for(var e,a=arguments.length,s=new Array(a),o=0;o<a;o++)s[o]=arguments[o];return e=t.call.apply(t,[this].concat(s))||this,Object(u.a)(Object(c.a)(e),"handleRefresh",(function(){e.props.dispatch(Object(j.q)(e.props.params.statusId))})),e}var s=a.prototype;return s.componentWillMount=function(){this.props.accountIds||this.props.dispatch(Object(j.q)(this.props.params.statusId))},s.componentWillReceiveProps=function(t){t.params.statusId!==this.props.params.statusId&&t.params.statusId&&this.props.dispatch(Object(j.q)(t.params.statusId))},s.render=function(){var t=this.props,e=t.intl,a=t.shouldUpdateScroll,s=t.accountIds,o=t.multiColumn;if(!s)return Object(n.a)(I.a,{},void 0,Object(n.a)(m.a,{}));var r=Object(n.a)(O.b,{id:"empty_column.favourites",defaultMessage:"No one has favourited this toot yet. When someone does, they will show up here."});return(Object(n.a)(I.a,{bindToDocument:!o},void 0,Object(n.a)(g.a,{showBackButton:!0,multiColumn:o,extraButton:Object(n.a)("button",{className:"column-header__button",title:e.formatMessage(R.refresh),"aria-label":e.formatMessage(R.refresh),onClick:this.handleRefresh},void 0,Object(n.a)(y.a,{id:"refresh"}))}),Object(n.a)(w.a,{scrollKey:"favourites",shouldUpdateScroll:a,emptyMessage:r,bindToDocument:!o},void 0,s.map((function(t){return Object(n.a)(v.a,{id:t,withNote:!1},t)})))))},a}(d.a),Object(u.a)(o,"propTypes",{params:h.a.object.isRequired,dispatch:h.a.func.isRequired,shouldUpdateScroll:h.a.func,accountIds:b.a.list,multiColumn:h.a.bool,intl:h.a.object.isRequired}),s=r))||s)||s}}]);
//# sourceMappingURL=favourites.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{851:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return U}));var o,n,c,i=a(0),s=a(2),u=(a(9),a(6),a(8)),r=a(1),l=a(65),d=a.n(l),b=(a(3),a(15)),p=a(7),f=a(21),h=a(5),j=a.n(h),m=a(16),v=a.n(m),O=a(306),_=a(757),g=a(763),w=a(210),q=a(300),y=a(115),M=a(122),k=a(53);var z,R,I,N=Object(p.f)({authorize:{id:"follow_request.authorize",defaultMessage:"Authorize"},reject:{id:"follow_request.reject",defaultMessage:"Reject"}}),A=Object(p.g)((c=n=function(e){Object(u.a)(a,e);var t;t=a;function a(){return e.apply(this,arguments)||this}return a.prototype.render=function(){var e=this.props,t=e.intl,a=e.account,o=e.onAuthorize,n=e.onReject,c={__html:a.get("note_emojified")};return Object(i.a)("div",{className:"account-authorize__wrapper"},void 0,Object(i.a)("div",{className:"account-authorize"},void 0,Object(i.a)(q.a,{href:a.get("url"),to:"/accounts/"+a.get("id"),className:"detailed-status__display-name"},void 0,Object(i.a)("div",{className:"account-authorize__avatar"},void 0,Object(i.a)(y.a,{account:a,size:48})),Object(i.a)(M.a,{account:a})),Object(i.a)("div",{className:"account__header__content",dangerouslySetInnerHTML:c})),Object(i.a)("div",{className:"account--panel"},void 0,Object(i.a)("div",{className:"account--panel__button"},void 0,Object(i.a)(k.a,{title:t.formatMessage(N.authorize),icon:"check",onClick:o})),Object(i.a)("div",{className:"account--panel__button"},void 0,Object(i.a)(k.a,{title:t.formatMessage(N.reject),icon:"times",onClick:n}))))},a}(f.a),Object(r.a)(n,"propTypes",{account:v.a.map.isRequired,onAuthorize:j.a.func.isRequired,onReject:j.a.func.isRequired,intl:j.a.object.isRequired}),o=c))||o,T=a(26),x=Object(b.connect)((function(){var e=Object(w.d)();return function(t,a){return{account:e(t,a.id)}}}),(function(e,t){var a=t.id;return{onAuthorize:function(){e(Object(T.v)(a))},onReject:function(){e(Object(T.I)(a))}}}))(A),C=a(1049),L=a(22);var S=Object(p.f)({heading:{id:"column.follow_requests",defaultMessage:"Follow requests"}}),U=Object(b.connect)((function(e){return{accountIds:e.getIn(["user_lists","follow_requests","items"]),hasMore:!!e.getIn(["user_lists","follow_requests","next"]),locked:!!e.getIn(["accounts",L.n,"locked"]),domain:e.getIn(["meta","domain"])}}))(z=Object(p.g)((I=R=function(e){Object(u.a)(a,e);var t;t=a;function a(){for(var t,a=arguments.length,o=new Array(a),n=0;n<a;n++)o[n]=arguments[n];return t=e.call.apply(e,[this].concat(o))||this,Object(r.a)(Object(s.a)(t),"handleLoadMore",d()((function(){t.props.dispatch(Object(T.x)())}),300,{leading:!0})),t}var o=a.prototype;return o.componentWillMount=function(){this.props.dispatch(Object(T.B)())},o.render=function(){var e=this.props,t=e.intl,a=e.shouldUpdateScroll,o=e.accountIds,n=e.hasMore,c=e.multiColumn,s=e.locked,u=e.domain;if(!o)return Object(i.a)(_.a,{},void 0,Object(i.a)(O.a,{}));var r=Object(i.a)(p.b,{id:"empty_column.follow_requests",defaultMessage:"You don't have any follow requests yet. When you receive one, it will show up here."}),l=s?null:Object(i.a)("div",{className:"follow_requests-unlocked_explanation"},void 0,Object(i.a)(p.b,{id:"follow_requests.unlocked_explanation",defaultMessage:"Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",values:{domain:u}}));return Object(i.a)(_.a,{bindToDocument:!c,icon:"user-plus",heading:t.formatMessage(S.heading)},void 0,Object(i.a)(g.a,{}),Object(i.a)(C.a,{scrollKey:"follow_requests",onLoadMore:this.handleLoadMore,hasMore:n,shouldUpdateScroll:a,emptyMessage:r,bindToDocument:!c,prepend:l},void 0,o.map((function(e){return Object(i.a)(x,{id:e},e)}))))},a}(f.a),Object(r.a)(R,"propTypes",{params:j.a.object.isRequired,dispatch:j.a.func.isRequired,shouldUpdateScroll:j.a.func,hasMore:j.a.bool,accountIds:v.a.list,locked:j.a.bool,domain:j.a.string,intl:j.a.object.isRequired,multiColumn:j.a.bool}),z=I))||z)||z}}]);
//# sourceMappingURL=follow_requests.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{820:function(a,t,o){"use strict";o.r(t),o.d(t,"default",(function(){return C}));var c,e,s,n=o(0),r=o(2),p=(o(9),o(6),o(8)),i=o(1),u=o(65),d=o.n(u),l=(o(3),o(15)),b=o(21),h=o(5),m=o.n(h),f=o(16),j=o.n(f),I=o(306),O=o(26),y=o(7),v=o(1053),w=o(757),M=o(1084),g=o(764),k=o(1049),A=o(1057);var C=Object(l.connect)((function(a,t){return{isAccount:!!a.getIn(["accounts",t.params.accountId]),accountIds:a.getIn(["user_lists","followers",t.params.accountId,"items"]),hasMore:!!a.getIn(["user_lists","followers",t.params.accountId,"next"]),blockedBy:a.getIn(["relationships",t.params.accountId,"blocked_by"],!1)}}))((s=e=function(a){Object(p.a)(o,a);var t;t=o;function o(){for(var t,o=arguments.length,c=new Array(o),e=0;e<o;e++)c[e]=arguments[e];return t=a.call.apply(a,[this].concat(c))||this,Object(i.a)(Object(r.a)(t),"handleLoadMore",d()((function(){t.props.dispatch(Object(O.y)(t.props.params.accountId))}),300,{leading:!0})),t}var c=o.prototype;return c.componentWillMount=function(){this.props.accountIds||(this.props.dispatch(Object(O.A)(this.props.params.accountId)),this.props.dispatch(Object(O.C)(this.props.params.accountId)))},c.componentWillReceiveProps=function(a){a.params.accountId!==this.props.params.accountId&&a.params.accountId&&(this.props.dispatch(Object(O.A)(a.params.accountId)),this.props.dispatch(Object(O.C)(a.params.accountId)))},c.render=function(){var a=this.props,t=a.shouldUpdateScroll,o=a.accountIds,c=a.hasMore,e=a.blockedBy,s=a.isAccount,r=a.multiColumn;if(!s)return Object(n.a)(w.a,{},void 0,Object(n.a)(A.a,{}));if(!o)return Object(n.a)(w.a,{},void 0,Object(n.a)(I.a,{}));var p=e?Object(n.a)(y.b,{id:"empty_column.account_unavailable",defaultMessage:"Profile unavailable"}):Object(n.a)(y.b,{id:"account.followers.empty",defaultMessage:"No one follows this user yet."});return(Object(n.a)(w.a,{},void 0,Object(n.a)(g.a,{multiColumn:r}),Object(n.a)(k.a,{scrollKey:"followers",hasMore:c,onLoadMore:this.handleLoadMore,shouldUpdateScroll:t,prepend:Object(n.a)(M.a,{accountId:this.props.params.accountId,hideTabs:!0}),alwaysPrepend:!0,emptyMessage:p,bindToDocument:!r},void 0,e?[]:o.map((function(a){return Object(n.a)(v.a,{id:a,withNote:!1},a)})))))},o}(b.a),Object(i.a)(e,"propTypes",{params:m.a.object.isRequired,dispatch:m.a.func.isRequired,shouldUpdateScroll:m.a.func,accountIds:j.a.list,hasMore:m.a.bool,blockedBy:m.a.bool,isAccount:m.a.bool,multiColumn:m.a.bool}),c=s))||c}}]);
//# sourceMappingURL=followers.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{821:function(a,t,o){"use strict";o.r(t),o.d(t,"default",(function(){return _}));var c,e,n,s=o(0),r=o(2),i=(o(9),o(6),o(8)),p=o(1),u=o(65),d=o.n(u),l=(o(3),o(15)),b=o(21),h=o(5),m=o.n(h),f=o(16),j=o.n(f),I=o(306),O=o(26),y=o(7),v=o(1053),w=o(757),g=o(1084),M=o(764),k=o(1049),A=o(1057);var _=Object(l.connect)((function(a,t){return{isAccount:!!a.getIn(["accounts",t.params.accountId]),accountIds:a.getIn(["user_lists","following",t.params.accountId,"items"]),hasMore:!!a.getIn(["user_lists","following",t.params.accountId,"next"]),blockedBy:a.getIn(["relationships",t.params.accountId,"blocked_by"],!1)}}))((n=e=function(a){Object(i.a)(o,a);var t;t=o;function o(){for(var t,o=arguments.length,c=new Array(o),e=0;e<o;e++)c[e]=arguments[e];return t=a.call.apply(a,[this].concat(c))||this,Object(p.a)(Object(r.a)(t),"handleLoadMore",d()((function(){t.props.dispatch(Object(O.z)(t.props.params.accountId))}),300,{leading:!0})),t}var c=o.prototype;return c.componentWillMount=function(){this.props.accountIds||(this.props.dispatch(Object(O.A)(this.props.params.accountId)),this.props.dispatch(Object(O.D)(this.props.params.accountId)))},c.componentWillReceiveProps=function(a){a.params.accountId!==this.props.params.accountId&&a.params.accountId&&(this.props.dispatch(Object(O.A)(a.params.accountId)),this.props.dispatch(Object(O.D)(a.params.accountId)))},c.render=function(){var a=this.props,t=a.shouldUpdateScroll,o=a.accountIds,c=a.hasMore,e=a.blockedBy,n=a.isAccount,r=a.multiColumn;if(!n)return Object(s.a)(w.a,{},void 0,Object(s.a)(A.a,{}));if(!o)return Object(s.a)(w.a,{},void 0,Object(s.a)(I.a,{}));var i=e?Object(s.a)(y.b,{id:"empty_column.account_unavailable",defaultMessage:"Profile unavailable"}):Object(s.a)(y.b,{id:"account.follows.empty",defaultMessage:"This user doesn't follow anyone yet."});return(Object(s.a)(w.a,{},void 0,Object(s.a)(M.a,{multiColumn:r}),Object(s.a)(k.a,{scrollKey:"following",hasMore:c,onLoadMore:this.handleLoadMore,shouldUpdateScroll:t,prepend:Object(s.a)(g.a,{accountId:this.props.params.accountId,hideTabs:!0}),alwaysPrepend:!0,emptyMessage:i,bindToDocument:!r},void 0,e?[]:o.map((function(a){return Object(s.a)(v.a,{id:a,withNote:!1},a)})))))},o}(b.a),Object(p.a)(e,"propTypes",{params:m.a.object.isRequired,dispatch:m.a.func.isRequired,shouldUpdateScroll:m.a.func,accountIds:j.a.list,hasMore:m.a.bool,blockedBy:m.a.bool,isAccount:m.a.bool,multiColumn:m.a.bool}),c=n))||c}}]);
//# sourceMappingURL=following.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{824:function(a,n,e){"use strict";e.r(n);var t=e(0),c=(e(3),e(757)),o=e(1057);n.default=function(){return Object(t.a)(c.a,{},void 0,Object(t.a)(o.a,{fullPage:!0}))}}}]);
//# sourceMappingURL=generic_not_found.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/generic_not_found/index.js"],"names":["GenericNotFound","fullPage"],"mappings":"uIAUeA,UANS,kBACtB,YAAC,IAAD,UACE,YAAC,IAAD,CAAkBC,UAAQ","file":"features/generic_not_found.js","sourcesContent":["import React from 'react';\nimport Column from '../ui/components/column';\nimport MissingIndicator from '../../components/missing_indicator';\n\nconst GenericNotFound = () => (\n <Column>\n <MissingIndicator fullPage />\n </Column>\n);\n\nexport default GenericNotFound;\n"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{848:function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return T}));var i,a,c,o=n(0),r=(n(9),n(6),n(8)),s=n(1),d=(n(3),n(5)),u=n.n(d),l=n(16),p=n.n(l),v=n(15),b=n(21),f=n(7),j=n(30),O=n(57),m=n(41),_=n(25);var R,g,I,h=Object(f.f)({remove:{id:"lists.account.remove",defaultMessage:"Remove from list"},add:{id:"lists.account.add",defaultMessage:"Add to list"}}),N=Object(v.connect)((function(t,e){var n=e.listId,i=e.added;return{list:t.get("lists").get(n),added:void 0===i?t.getIn(["listAdder","lists","items"]).includes(n):i}}),(function(t,e){var n=e.listId;return{onRemove:function(){return t(Object(j.J)(n))},onAdd:function(){return t(Object(j.A)(n))}}}))(i=Object(f.g)((c=a=function(t){Object(r.a)(n,t);var e;e=n;function n(){return t.apply(this,arguments)||this}return n.prototype.render=function(){var t,e=this.props,n=e.list,i=e.intl,a=e.onRemove,c=e.onAdd;return t=e.added?Object(o.a)(m.a,{icon:"times",title:i.formatMessage(h.remove),onClick:a}):Object(o.a)(m.a,{icon:"plus",title:i.formatMessage(h.add),onClick:c}),Object(o.a)("div",{className:"list"},void 0,Object(o.a)("div",{className:"list__wrapper"},void 0,Object(o.a)("div",{className:"list__display-name"},void 0,Object(o.a)(_.a,{id:"list-ul",className:"column-link__icon",fixedWidth:!0}),n.get("title")),Object(o.a)("div",{className:"account__relationship"},void 0,t)))},n}(b.a),Object(s.a)(a,"propTypes",{list:p.a.map.isRequired,intl:u.a.object.isRequired,onRemove:u.a.func.isRequired,onAdd:u.a.func.isRequired,added:u.a.bool}),Object(s.a)(a,"defaultProps",{added:!1}),i=c))||i)||i,q=n(108),y=n(96),w=n(98);var A,k,M,z=Object(v.connect)((function(){var t=Object(q.d)();return function(e,n){var i=n.accountId;return{account:t(e,i)}}}))(R=Object(f.g)((I=g=function(t){Object(r.a)(n,t);var e;e=n;function n(){return t.apply(this,arguments)||this}return n.prototype.render=function(){var t=this.props.account;return(Object(o.a)("div",{className:"account"},void 0,Object(o.a)("div",{className:"account__wrapper"},void 0,Object(o.a)("div",{className:"account__display-name"},void 0,Object(o.a)("div",{className:"account__avatar-wrapper"},void 0,Object(o.a)(y.a,{account:t,size:36})),Object(o.a)(w.a,{account:t})))))},n}(b.a),Object(s.a)(g,"propTypes",{account:p.a.map.isRequired}),R=I))||R)||R,C=n(1150);var J=Object(O.a)([function(t){return t.get("lists")}],(function(t){return t?t.toList().filter((function(t){return!!t})).sort((function(t,e){return t.get("title").localeCompare(e.get("title"))})):t})),T=Object(v.connect)((function(t){return{listIds:J(t).map((function(t){return t.get("id")}))}}),(function(t){return{onInitialize:function(e){return t(Object(j.N)(e))},onReset:function(){return t(Object(j.L)())}}}))(A=Object(f.g)((M=k=function(t){Object(r.a)(n,t);var e;e=n;function n(){return t.apply(this,arguments)||this}var i=n.prototype;return i.componentDidMount=function(){var t=this.props;(0,t.onInitialize)(t.accountId)},i.componentWillUnmount=function(){(0,this.props.onReset)()},i.render=function(){var t=this.props,e=t.accountId,n=t.listIds;return(Object(o.a)("div",{className:"modal-root__modal list-adder"},void 0,Object(o.a)("div",{className:"list-adder__account"},void 0,Object(o.a)(z,{accountId:e})),Object(o.a)(C.a,{}),Object(o.a)("div",{className:"list-adder__lists"},void 0,n.map((function(t){return Object(o.a)(N,{listId:t},t)})))))},n}(b.a),Object(s.a)(k,"propTypes",{accountId:u.a.string.isRequired,onClose:u.a.func.isRequired,intl:u.a.object.isRequired,onInitialize:u.a.func.isRequired,onReset:u.a.func.isRequired,listIds:p.a.list.isRequired}),A=M))||A)||A}}]);
//# sourceMappingURL=list_adder.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{810:function(a,e,c){"use strict";c.r(e);var r=c(0),d=(c(3),c(773)),i=c(1177);e.default=function(){return Object(r.a)("div",{className:"column search-page"},void 0,Object(r.a)(d.a,{}),Object(r.a)("div",{className:"drawer__pager"},void 0,Object(r.a)("div",{className:"drawer__inner darker"},void 0,Object(r.a)(i.a,{}))))}}}]);
//# sourceMappingURL=search.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/search/index.js"],"names":["Search","className"],"mappings":"uIAgBeA,UAZA,kBACb,mBAAKC,UAAU,2BAAf,EACE,YAAC,IAAD,IAEA,mBAAKA,UAAU,sBAAf,EACE,mBAAKA,UAAU,6BAAf,EACE,YAAC,IAAD","file":"features/glitch/async/search.js","sourcesContent":["import React from 'react';\nimport SearchContainer from 'flavours/glitch/features/compose/containers/search_container';\nimport SearchResultsContainer from 'flavours/glitch/features/compose/containers/search_results_container';\n\nconst Search = () => (\n <div className='column search-page'>\n <SearchContainer />\n\n <div className='drawer__pager'>\n <div className='drawer__inner darker'>\n <SearchResultsContainer />\n </div>\n </div>\n </div>\n);\n\nexport default Search;\n"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{854:function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return T}));var i,a,c,o=n(0),r=(n(9),n(6),n(8)),s=n(1),d=(n(3),n(5)),u=n.n(d),l=n(16),p=n.n(l),v=n(15),b=n(21),f=n(7),j=n(31),O=n(57),m=n(53),_=n(27);var R,g,I,h=Object(f.f)({remove:{id:"lists.account.remove",defaultMessage:"Remove from list"},add:{id:"lists.account.add",defaultMessage:"Add to list"}}),N=Object(v.connect)((function(t,e){var n=e.listId,i=e.added;return{list:t.get("lists").get(n),added:void 0===i?t.getIn(["listAdder","lists","items"]).includes(n):i}}),(function(t,e){var n=e.listId;return{onRemove:function(){return t(Object(j.J)(n))},onAdd:function(){return t(Object(j.A)(n))}}}))(i=Object(f.g)((c=a=function(t){Object(r.a)(n,t);var e;e=n;function n(){return t.apply(this,arguments)||this}return n.prototype.render=function(){var t,e=this.props,n=e.list,i=e.intl,a=e.onRemove,c=e.onAdd;return t=e.added?Object(o.a)(m.a,{icon:"times",title:i.formatMessage(h.remove),onClick:a}):Object(o.a)(m.a,{icon:"plus",title:i.formatMessage(h.add),onClick:c}),Object(o.a)("div",{className:"list"},void 0,Object(o.a)("div",{className:"list__wrapper"},void 0,Object(o.a)("div",{className:"list__display-name"},void 0,Object(o.a)(_.a,{id:"list-ul",className:"column-link__icon",fixedWidth:!0}),n.get("title")),Object(o.a)("div",{className:"account__relationship"},void 0,t)))},n}(b.a),Object(s.a)(a,"propTypes",{list:p.a.map.isRequired,intl:u.a.object.isRequired,onRemove:u.a.func.isRequired,onAdd:u.a.func.isRequired,added:u.a.bool}),Object(s.a)(a,"defaultProps",{added:!1}),i=c))||i)||i,q=n(210),y=n(115),w=n(122);var A,k,M,z=Object(v.connect)((function(){var t=Object(q.d)();return function(e,n){var i=n.accountId;return{account:t(e,i)}}}))(R=Object(f.g)((I=g=function(t){Object(r.a)(n,t);var e;e=n;function n(){return t.apply(this,arguments)||this}return n.prototype.render=function(){var t=this.props.account;return(Object(o.a)("div",{className:"account"},void 0,Object(o.a)("div",{className:"account__wrapper"},void 0,Object(o.a)("div",{className:"account__display-name"},void 0,Object(o.a)("div",{className:"account__avatar-wrapper"},void 0,Object(o.a)(y.a,{account:t,size:36})),Object(o.a)(w.a,{account:t})))))},n}(b.a),Object(s.a)(g,"propTypes",{account:p.a.map.isRequired}),R=I))||R)||R,C=n(1175);var J=Object(O.a)([function(t){return t.get("lists")}],(function(t){return t?t.toList().filter((function(t){return!!t})).sort((function(t,e){return t.get("title").localeCompare(e.get("title"))})):t})),T=Object(v.connect)((function(t){return{listIds:J(t).map((function(t){return t.get("id")}))}}),(function(t){return{onInitialize:function(e){return t(Object(j.N)(e))},onReset:function(){return t(Object(j.L)())}}}))(A=Object(f.g)((M=k=function(t){Object(r.a)(n,t);var e;e=n;function n(){return t.apply(this,arguments)||this}var i=n.prototype;return i.componentDidMount=function(){var t=this.props;(0,t.onInitialize)(t.accountId)},i.componentWillUnmount=function(){(0,this.props.onReset)()},i.render=function(){var t=this.props,e=t.accountId,n=t.listIds;return(Object(o.a)("div",{className:"modal-root__modal list-adder"},void 0,Object(o.a)("div",{className:"list-adder__account"},void 0,Object(o.a)(z,{accountId:e})),Object(o.a)(C.a,{}),Object(o.a)("div",{className:"list-adder__lists"},void 0,n.map((function(t){return Object(o.a)(N,{listId:t},t)})))))},n}(b.a),Object(s.a)(k,"propTypes",{accountId:u.a.string.isRequired,onClose:u.a.func.isRequired,intl:u.a.object.isRequired,onInitialize:u.a.func.isRequired,onReset:u.a.func.isRequired,listIds:p.a.list.isRequired}),A=M))||A)||A}}]);
//# sourceMappingURL=list_adder.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{814:function(e,t,i){"use strict";i.r(t),i.d(t,"default",(function(){return D}));var n,a,s,c=i(0),o=i(2),l=(i(9),i(6),i(8)),d=i(1),r=i(3),p=i.n(r),u=i(15),b=i(5),h=i.n(b),m=i(1063),O=i(762),j=i(764),f=i(759),v=i(253),g=i(7),M=i(766),C=i(36),I=i(31),y=i(48),k=i(1057),_=i(306),w=i(27);var x=Object(g.f)({deleteMessage:{id:"confirmations.delete_list.message",defaultMessage:"Are you sure you want to permanently delete this list?"},deleteConfirm:{id:"confirmations.delete_list.confirm",defaultMessage:"Delete"}}),D=Object(u.connect)((function(e,t){return{list:e.getIn(["lists",t.params.id]),hasUnread:e.getIn(["timelines","list:"+t.params.id,"unread"])>0}}))(n=Object(g.g)((s=a=function(e){Object(l.a)(i,e);var t;t=i;function i(){for(var t,i=arguments.length,n=new Array(i),a=0;a<i;a++)n[a]=arguments[a];return t=e.call.apply(e,[this].concat(n))||this,Object(d.a)(Object(o.a)(t),"handlePin",(function(){var e=t.props,i=e.columnId,n=e.dispatch;i?n(Object(v.h)(i)):(n(Object(v.e)("LIST",{id:t.props.params.id})),t.context.router.history.push("/"))})),Object(d.a)(Object(o.a)(t),"handleMove",(function(e){var i=t.props,n=i.columnId;(0,i.dispatch)(Object(v.g)(n,e))})),Object(d.a)(Object(o.a)(t),"handleHeaderClick",(function(){t.column.scrollTop()})),Object(d.a)(Object(o.a)(t),"setRef",(function(e){t.column=e})),Object(d.a)(Object(o.a)(t),"handleLoadMore",(function(e){var i=t.props.params.id;t.props.dispatch(Object(C.u)(i,{maxId:e}))})),Object(d.a)(Object(o.a)(t),"handleEditClick",(function(){t.props.dispatch(Object(y.d)("LIST_EDITOR",{listId:t.props.params.id}))})),Object(d.a)(Object(o.a)(t),"handleDeleteClick",(function(){var e=t.props,i=e.dispatch,n=e.columnId,a=e.intl,s=t.props.params.id;i(Object(y.d)("CONFIRM",{message:a.formatMessage(x.deleteMessage),confirm:a.formatMessage(x.deleteConfirm),onConfirm:function(){i(Object(I.F)(s)),n?i(Object(v.h)(n)):t.context.router.history.push("/lists")}}))})),t}var n=i.prototype;return n.componentDidMount=function(){var e=this.props.dispatch,t=this.props.params.id;e(Object(I.G)(t)),e(Object(C.u)(t)),this.disconnect=e(Object(M.d)(t))},n.componentWillReceiveProps=function(e){var t=this.props.dispatch,i=e.params.id;i!==this.props.params.id&&(this.disconnect&&(this.disconnect(),this.disconnect=null),t(Object(I.G)(i)),t(Object(C.u)(i)),this.disconnect=t(Object(M.d)(i)))},n.componentWillUnmount=function(){this.disconnect&&(this.disconnect(),this.disconnect=null)},n.render=function(){var e=this.props,t=e.shouldUpdateScroll,i=e.hasUnread,n=e.columnId,a=e.multiColumn,s=e.list,o=this.props.params.id,l=!!n,d=s?s.get("title"):o;return void 0===s?Object(c.a)(O.a,{},void 0,Object(c.a)("div",{className:"scrollable"},void 0,Object(c.a)(_.a,{}))):!1===s?Object(c.a)(O.a,{},void 0,Object(c.a)(j.a,{multiColumn:a}),Object(c.a)(k.a,{})):p.a.createElement(O.a,{bindToDocument:!a,ref:this.setRef,label:d},Object(c.a)(f.a,{icon:"list-ul",active:i,title:d,onPin:this.handlePin,onMove:this.handleMove,onClick:this.handleHeaderClick,pinned:l,multiColumn:a},void 0,Object(c.a)("div",{className:"column-header__links"},void 0,Object(c.a)("button",{className:"text-btn column-header__setting-btn",tabIndex:"0",onClick:this.handleEditClick},void 0,Object(c.a)(w.a,{id:"pencil"})," ",Object(c.a)(g.b,{id:"lists.edit",defaultMessage:"Edit list"})),Object(c.a)("button",{className:"text-btn column-header__setting-btn",tabIndex:"0",onClick:this.handleDeleteClick},void 0,Object(c.a)(w.a,{id:"trash"})," ",Object(c.a)(g.b,{id:"lists.delete",defaultMessage:"Delete list"})))),Object(c.a)(m.a,{trackScroll:!l,scrollKey:"list_timeline-"+n,timelineId:"list:"+o,onLoadMore:this.handleLoadMore,emptyMessage:Object(c.a)(g.b,{id:"empty_column.list",defaultMessage:"There is nothing in this list yet. When members of this list post new statuses, they will appear here."}),shouldUpdateScroll:t,bindToDocument:!a}))},i}(p.a.PureComponent),Object(d.a)(a,"contextTypes",{router:h.a.object}),n=s))||n)||n}}]);
//# sourceMappingURL=list_timeline.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{815:function(t,e,i){"use strict";i.r(e),i.d(e,"default",(function(){return T}));var n,s,a,o=i(0),u=(i(9),i(6),i(8)),r=i(1),c=(i(3),i(15)),l=i(5),d=i.n(l),p=i(16),b=i.n(p),f=i(306),g=i(757),h=i(763),j=i(31),m=i(7),O=i(21),v=i(1173),y=i(1174),w=i(1175),M=i(57),q=i(1049);var C=Object(m.f)({heading:{id:"column.lists",defaultMessage:"Lists"},subheading:{id:"lists.subheading",defaultMessage:"Your lists"}}),R=Object(M.a)([function(t){return t.get("lists")}],(function(t){return t?t.toList().filter((function(t){return!!t})).sort((function(t,e){return t.get("title").localeCompare(e.get("title"))})):t})),T=Object(c.connect)((function(t){return{lists:R(t)}}))(n=Object(m.g)((a=s=function(t){Object(u.a)(i,t);var e;e=i;function i(){return t.apply(this,arguments)||this}var n=i.prototype;return n.componentWillMount=function(){this.props.dispatch(Object(j.I)())},n.render=function(){var t=this.props,e=t.intl,i=t.shouldUpdateScroll,n=t.lists,s=t.multiColumn;if(!n)return Object(o.a)(g.a,{},void 0,Object(o.a)(f.a,{}));var a=Object(o.a)(m.b,{id:"empty_column.lists",defaultMessage:"You don't have any lists yet. When you create one, it will show up here."});return(Object(o.a)(g.a,{bindToDocument:!s,icon:"list-ul",heading:e.formatMessage(C.heading)},void 0,Object(o.a)(h.a,{}),Object(o.a)(w.a,{}),Object(o.a)(q.a,{scrollKey:"lists",shouldUpdateScroll:i,emptyMessage:a,prepend:Object(o.a)(y.a,{text:e.formatMessage(C.subheading)}),bindToDocument:!s},void 0,n.map((function(t){return Object(o.a)(v.a,{to:"/timelines/list/"+t.get("id"),icon:"list-ul",text:t.get("title")},t.get("id"))})))))},i}(O.a),Object(r.a)(s,"propTypes",{params:d.a.object.isRequired,dispatch:d.a.func.isRequired,lists:b.a.list,intl:d.a.object.isRequired,multiColumn:d.a.bool}),n=a))||n)||n}}]);
//# sourceMappingURL=lists.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/lists/index.js"],"names":["messages","defineMessages","heading","subheading","getOrderedLists","createSelector","state","get","lists","toList","filter","item","sort","a","b","localeCompare","Lists","connect","injectIntl","componentWillMount","this","props","dispatch","fetchLists","render","intl","shouldUpdateScroll","multiColumn","emptyMessage","id","defaultMessage","bindToDocument","icon","formatMessage","scrollKey","prepend","text","map","list","to","ImmutablePureComponent","params","PropTypes","object","isRequired","func","ImmutablePropTypes","bool"],"mappings":"uUAgBA,IAAMA,EAAWC,YAAe,CAC9BC,QAAQ,CAAD,0CACPC,WAAW,CAAD,qDAGNC,EAAkBC,YAAe,CAAC,SAAAC,GAAK,OAAIA,EAAMC,IAAI,YAAW,SAAAC,GACpE,OAAKA,EAIEA,EAAMC,SAASC,QAAO,SAAAC,GAAI,QAAMA,KAAMC,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEN,IAAI,SAASQ,cAAcD,EAAEP,IAAI,aAHtFC,KAYLQ,EAFUC,mBAJQ,SAAAX,GAAK,MAAK,CAChCE,MAAOJ,EAAgBE,M,GAIxBY,a,wHAWCC,mBAAA,WACEC,KAAKC,MAAMC,SAASC,gB,EAGtBC,OAAA,WAAW,IAAD,EACiDJ,KAAKC,MAAtDI,EADA,EACAA,KAAMC,EADN,EACMA,mBAAoBlB,EAD1B,EAC0BA,MAAOmB,EADjC,EACiCA,YAEzC,IAAKnB,EACH,OACE,YAAC,IAAD,UACE,YAAC,IAAD,KAKN,IAAMoB,EAAe,YAAC,IAAD,CAAkBC,GAAG,qBAAqBC,eAAe,6EAE9E,OACE,YAAC,IAAD,CAAQC,gBAAiBJ,EAAaK,KAAK,UAAU9B,QAASuB,EAAKQ,cAAcjC,EAASE,eAA1F,EACE,YAAC,IAAD,IAEA,YAAC,IAAD,IAEA,YAAC,IAAD,CACEgC,UAAU,QACVR,mBAAoBA,EACpBE,aAAcA,EACdO,QAAS,YAAC,IAAD,CAAkBC,KAAMX,EAAKQ,cAAcjC,EAASG,cAC7D4B,gBAAiBJ,QALnB,EAOGnB,EAAM6B,KAAI,SAAAC,GAAI,OACb,YAAC,IAAD,CAAiCC,GAAE,mBAAqBD,EAAK/B,IAAI,MAASyB,KAAK,UAAUI,KAAME,EAAK/B,IAAI,UAAvF+B,EAAK/B,IAAI,c,GAzClBiC,K,0BAEC,CACjBC,OAAQC,IAAUC,OAAOC,WACzBtB,SAAUoB,IAAUG,KAAKD,WACzBpC,MAAOsC,IAAmBR,KAC1Bb,KAAMiB,IAAUC,OAAOC,WACvBjB,YAAae,IAAUK,O","file":"features/lists.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport LoadingIndicator from '../../components/loading_indicator';\nimport Column from '../ui/components/column';\nimport ColumnBackButtonSlim from '../../components/column_back_button_slim';\nimport { fetchLists } from '../../actions/lists';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport ColumnLink from '../ui/components/column_link';\nimport ColumnSubheading from '../ui/components/column_subheading';\nimport NewListForm from './components/new_list_form';\nimport { createSelector } from 'reselect';\nimport ScrollableList from '../../components/scrollable_list';\n\nconst messages = defineMessages({\n heading: { id: 'column.lists', defaultMessage: 'Lists' },\n subheading: { id: 'lists.subheading', defaultMessage: 'Your lists' },\n});\n\nconst getOrderedLists = createSelector([state => state.get('lists')], lists => {\n if (!lists) {\n return lists;\n }\n\n return lists.toList().filter(item => !!item).sort((a, b) => a.get('title').localeCompare(b.get('title')));\n});\n\nconst mapStateToProps = state => ({\n lists: getOrderedLists(state),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Lists extends ImmutablePureComponent {\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n lists: ImmutablePropTypes.list,\n intl: PropTypes.object.isRequired,\n multiColumn: PropTypes.bool,\n };\n\n componentWillMount () {\n this.props.dispatch(fetchLists());\n }\n\n render () {\n const { intl, shouldUpdateScroll, lists, multiColumn } = this.props;\n\n if (!lists) {\n return (\n <Column>\n <LoadingIndicator />\n </Column>\n );\n }\n\n const emptyMessage = <FormattedMessage id='empty_column.lists' defaultMessage=\"You don't have any lists yet. When you create one, it will show up here.\" />;\n\n return (\n <Column bindToDocument={!multiColumn} icon='list-ul' heading={intl.formatMessage(messages.heading)}>\n <ColumnBackButtonSlim />\n\n <NewListForm />\n\n <ScrollableList\n scrollKey='lists'\n shouldUpdateScroll={shouldUpdateScroll}\n emptyMessage={emptyMessage}\n prepend={<ColumnSubheading text={intl.formatMessage(messages.subheading)} />}\n bindToDocument={!multiColumn}\n >\n {lists.map(list =>\n <ColumnLink key={list.get('id')} to={`/timelines/list/${list.get('id')}`} icon='list-ul' text={list.get('title')} />,\n )}\n </ScrollableList>\n </Column>\n );\n }\n\n}\n"],"sourceRoot":""}

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{828:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return L}));var n,o,s,c=a(0),u=a(2),r=(a(9),a(6),a(8)),i=a(1),d=a(65),l=a.n(d),p=(a(3),a(15)),b=a(7),h=a(21),m=a(5),f=a.n(m),j=a(16),O=a.n(j),M=a(306),g=a(757),v=a(763),y=a(1053),w=a(212),I=a(1049);var q=Object(b.f)({heading:{id:"column.mutes",defaultMessage:"Muted users"}}),L=Object(p.connect)((function(e){return{accountIds:e.getIn(["user_lists","mutes","items"]),hasMore:!!e.getIn(["user_lists","mutes","next"])}}))(n=Object(b.g)((s=o=function(e){Object(r.a)(a,e);var t;t=a;function a(){for(var t,a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return t=e.call.apply(e,[this].concat(n))||this,Object(i.a)(Object(u.a)(t),"handleLoadMore",l()((function(){t.props.dispatch(Object(w.e)())}),300,{leading:!0})),t}var n=a.prototype;return n.componentWillMount=function(){this.props.dispatch(Object(w.f)())},n.render=function(){var e=this.props,t=e.intl,a=e.shouldUpdateScroll,n=e.hasMore,o=e.accountIds,s=e.multiColumn;if(!o)return Object(c.a)(g.a,{},void 0,Object(c.a)(M.a,{}));var u=Object(c.a)(b.b,{id:"empty_column.mutes",defaultMessage:"You haven't muted any users yet."});return(Object(c.a)(g.a,{bindToDocument:!s,icon:"volume-off",heading:t.formatMessage(q.heading)},void 0,Object(c.a)(v.a,{}),Object(c.a)(I.a,{scrollKey:"mutes",onLoadMore:this.handleLoadMore,hasMore:n,shouldUpdateScroll:a,emptyMessage:u,bindToDocument:!s},void 0,o.map((function(e){return Object(c.a)(y.a,{id:e},e)})))))},a}(h.a),Object(i.a)(o,"propTypes",{params:f.a.object.isRequired,dispatch:f.a.func.isRequired,shouldUpdateScroll:f.a.func,hasMore:f.a.bool,accountIds:O.a.list,intl:f.a.object.isRequired,multiColumn:f.a.bool}),n=s))||n)||n}}]);
//# sourceMappingURL=mutes.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/mutes/index.js"],"names":["messages","defineMessages","heading","Mutes","connect","state","accountIds","getIn","hasMore","injectIntl","props","dispatch","expandMutes","leading","componentWillMount","this","fetchMutes","render","intl","shouldUpdateScroll","multiColumn","emptyMessage","id","defaultMessage","bindToDocument","icon","formatMessage","scrollKey","onLoadMore","handleLoadMore","map","ImmutablePureComponent","params","PropTypes","object","isRequired","func","bool","ImmutablePropTypes","list"],"mappings":"oUAcA,IAAMA,EAAWC,YAAe,CAC9BC,QAAQ,CAAD,kDAUHC,EAFUC,mBALQ,SAAAC,GAAK,MAAK,CAChCC,WAAYD,EAAME,MAAM,CAAC,aAAc,QAAS,UAChDC,UAAWH,EAAME,MAAM,CAAC,aAAc,QAAS,Y,GAIhDE,a,8NAiBkB,KAAS,WACxB,EAAKC,MAAMC,SAASC,iBACnB,IAAK,CAAEC,SAAS,K,6BANnBC,mBAAA,WACEC,KAAKL,MAAMC,SAASK,gB,EAOtBC,OAAA,WAAW,IAAD,EAC+DF,KAAKL,MAApEQ,EADA,EACAA,KAAMC,EADN,EACMA,mBAAoBX,EAD1B,EAC0BA,QAASF,EADnC,EACmCA,WAAYc,EAD/C,EAC+CA,YAEvD,IAAKd,EACH,OACE,YAAC,IAAD,UACE,YAAC,IAAD,KAKN,IAAMe,EAAe,YAAC,IAAD,CAAkBC,GAAG,qBAAqBC,eAAe,qCAE9E,OACE,YAAC,IAAD,CAAQC,gBAAiBJ,EAAaK,KAAK,aAAavB,QAASgB,EAAKQ,cAAc1B,EAASE,eAA7F,EACE,YAAC,IAAD,IACA,YAAC,IAAD,CACEyB,UAAU,QACVC,WAAYb,KAAKc,eACjBrB,QAASA,EACTW,mBAAoBA,EACpBE,aAAcA,EACdG,gBAAiBJ,QANnB,EAQGd,EAAWwB,KAAI,SAAAR,GAAE,OAChB,YAAC,IAAD,CAA2BA,GAAIA,GAARA,U,GA7CfS,K,0BAEC,CACjBC,OAAQC,IAAUC,OAAOC,WACzBxB,SAAUsB,IAAUG,KAAKD,WACzBhB,mBAAoBc,IAAUG,KAC9B5B,QAASyB,IAAUI,KACnB/B,WAAYgC,IAAmBC,KAC/BrB,KAAMe,IAAUC,OAAOC,WACvBf,YAAaa,IAAUI,O","file":"features/mutes.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { debounce } from 'lodash';\nimport LoadingIndicator from '../../components/loading_indicator';\nimport Column from '../ui/components/column';\nimport ColumnBackButtonSlim from '../../components/column_back_button_slim';\nimport AccountContainer from '../../containers/account_container';\nimport { fetchMutes, expandMutes } from '../../actions/mutes';\nimport ScrollableList from '../../components/scrollable_list';\n\nconst messages = defineMessages({\n heading: { id: 'column.mutes', defaultMessage: 'Muted users' },\n});\n\nconst mapStateToProps = state => ({\n accountIds: state.getIn(['user_lists', 'mutes', 'items']),\n hasMore: !!state.getIn(['user_lists', 'mutes', 'next']),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Mutes extends ImmutablePureComponent {\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n hasMore: PropTypes.bool,\n accountIds: ImmutablePropTypes.list,\n intl: PropTypes.object.isRequired,\n multiColumn: PropTypes.bool,\n };\n\n componentWillMount () {\n this.props.dispatch(fetchMutes());\n }\n\n handleLoadMore = debounce(() => {\n this.props.dispatch(expandMutes());\n }, 300, { leading: true });\n\n render () {\n const { intl, shouldUpdateScroll, hasMore, accountIds, multiColumn } = this.props;\n\n if (!accountIds) {\n return (\n <Column>\n <LoadingIndicator />\n </Column>\n );\n }\n\n const emptyMessage = <FormattedMessage id='empty_column.mutes' defaultMessage=\"You haven't muted any users yet.\" />;\n\n return (\n <Column bindToDocument={!multiColumn} icon='volume-off' heading={intl.formatMessage(messages.heading)}>\n <ColumnBackButtonSlim />\n <ScrollableList\n scrollKey='mutes'\n onLoadMore={this.handleLoadMore}\n hasMore={hasMore}\n shouldUpdateScroll={shouldUpdateScroll}\n emptyMessage={emptyMessage}\n bindToDocument={!multiColumn}\n >\n {accountIds.map(id =>\n <AccountContainer key={id} id={id} />,\n )}\n </ScrollableList>\n </Column>\n );\n }\n\n}\n"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more