Change public accounts pages to mount the web UI (#19319)
* Change public accounts pages to mount the web UI * Fix handling of remote usernames in routes - When logged in, serve web app - When logged out, redirect to permalink - Fix `app-body` class not being set sometimes due to name conflict * Fix missing `multiColumn` prop * Fix failing test * Use `discoverable` attribute to control indexing directives * Fix `<ColumnLoading />` not using `multiColumn` * Add `noindex` to accounts in REST API * Change noindex directive to not be rendered by default before a route is mounted * Add loading indicator for detailed status in web UI * Fix missing indicator appearing while account is loading in web UI
This commit is contained in:
parent
b0e3f0312c
commit
839f893168
101 changed files with 393 additions and 2468 deletions
|
@ -8,16 +8,14 @@ class PermalinkRedirector
|
|||
end
|
||||
|
||||
def redirect_path
|
||||
if path_segments[0] == 'web'
|
||||
if path_segments[1].present? && path_segments[1].start_with?('@') && path_segments[2] =~ /\d/
|
||||
find_status_url_by_id(path_segments[2])
|
||||
elsif path_segments[1].present? && path_segments[1].start_with?('@')
|
||||
find_account_url_by_name(path_segments[1])
|
||||
elsif path_segments[1] == 'statuses' && path_segments[2] =~ /\d/
|
||||
find_status_url_by_id(path_segments[2])
|
||||
elsif path_segments[1] == 'accounts' && path_segments[2] =~ /\d/
|
||||
find_account_url_by_id(path_segments[2])
|
||||
end
|
||||
if path_segments[0].present? && path_segments[0].start_with?('@') && path_segments[1] =~ /\d/
|
||||
find_status_url_by_id(path_segments[1])
|
||||
elsif path_segments[0].present? && path_segments[0].start_with?('@')
|
||||
find_account_url_by_name(path_segments[0])
|
||||
elsif path_segments[0] == 'statuses' && path_segments[1] =~ /\d/
|
||||
find_status_url_by_id(path_segments[1])
|
||||
elsif path_segments[0] == 'accounts' && path_segments[1] =~ /\d/
|
||||
find_account_url_by_id(path_segments[1])
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -29,18 +27,12 @@ class PermalinkRedirector
|
|||
|
||||
def find_status_url_by_id(id)
|
||||
status = Status.find_by(id: id)
|
||||
|
||||
return unless status&.distributable?
|
||||
|
||||
ActivityPub::TagManager.instance.url_for(status)
|
||||
ActivityPub::TagManager.instance.url_for(status) if status&.distributable? && !status.account.local?
|
||||
end
|
||||
|
||||
def find_account_url_by_id(id)
|
||||
account = Account.find_by(id: id)
|
||||
|
||||
return unless account
|
||||
|
||||
ActivityPub::TagManager.instance.url_for(account)
|
||||
ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local?
|
||||
end
|
||||
|
||||
def find_account_url_by_name(name)
|
||||
|
@ -48,12 +40,6 @@ class PermalinkRedirector
|
|||
domain = nil if TagManager.instance.local_domain?(domain)
|
||||
account = Account.find_remote(username, domain)
|
||||
|
||||
return unless account
|
||||
|
||||
ActivityPub::TagManager.instance.url_for(account)
|
||||
end
|
||||
|
||||
def find_tag_url_by_name(name)
|
||||
tag_path(CGI.unescape(name))
|
||||
ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local?
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue