Move from toot to post
This commit is contained in:
parent
a7eaec3391
commit
1d48a247c5
|
@ -8,15 +8,15 @@ This will walk you through the basic usage of Semaphore and its major difference
|
||||||
|
|
||||||
## Home page
|
## Home page
|
||||||
|
|
||||||
The home page is both where you write toots and where you read your home timeline:
|
The home page is both where you write posts and where you read your home timeline:
|
||||||
|
|
||||||
![Screenshot of home page](https://github.com/NickColley/semaphore/blob/main/docs/Screenshot1.png)
|
![Screenshot of home page](https://github.com/NickColley/semaphore/blob/main/docs/Screenshot1.png)
|
||||||
|
|
||||||
When you scroll down, the "toot" button transforms into a "compose" button:
|
When you scroll down, the "post" button transforms into a "compose" button:
|
||||||
|
|
||||||
![Screenshot showing home page scrolled down](https://github.com/NickColley/semaphore/blob/main/docs/Screenshot2.png)
|
![Screenshot showing home page scrolled down](https://github.com/NickColley/semaphore/blob/main/docs/Screenshot2.png)
|
||||||
|
|
||||||
If you press this compose button, you can toot anywhere in your home timeline.
|
If you press this compose button, you can post anywhere in your home timeline.
|
||||||
|
|
||||||
![Screenshot showing compose box in a modal dialog](https://github.com/NickColley/semaphore/blob/main/docs/Screenshot3.png)
|
![Screenshot showing compose box in a modal dialog](https://github.com/NickColley/semaphore/blob/main/docs/Screenshot3.png)
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ export default {
|
||||||
pinPage: 'Hefte {label} an',
|
pinPage: 'Hefte {label} an',
|
||||||
// Status composition
|
// Status composition
|
||||||
composeStatus: 'Tröt erstellen',
|
composeStatus: 'Tröt erstellen',
|
||||||
postStatus: 'Tröt!',
|
postStatus: 'Post',
|
||||||
contentWarning: 'Inhaltswarnung',
|
contentWarning: 'Inhaltswarnung',
|
||||||
dropToUpload: 'Fallenlassen zum Hochladen',
|
dropToUpload: 'Fallenlassen zum Hochladen',
|
||||||
invalidFileType: 'Ungültiger Dateityp',
|
invalidFileType: 'Ungültiger Dateityp',
|
||||||
|
|
|
@ -27,7 +27,7 @@ export default {
|
||||||
`,
|
`,
|
||||||
// Manifest
|
// Manifest
|
||||||
longAppName: 'Semaphore for Mastodon',
|
longAppName: 'Semaphore for Mastodon',
|
||||||
newStatus: 'New toot',
|
newStatus: 'New post',
|
||||||
// Generic UI
|
// Generic UI
|
||||||
loading: 'Loading',
|
loading: 'Loading',
|
||||||
okay: 'OK',
|
okay: 'OK',
|
||||||
|
@ -66,7 +66,7 @@ export default {
|
||||||
local: 'Local',
|
local: 'Local',
|
||||||
notifications: 'Notifications',
|
notifications: 'Notifications',
|
||||||
mutedUsers: 'Muted users',
|
mutedUsers: 'Muted users',
|
||||||
pinnedStatuses: 'Pinned toots',
|
pinnedStatuses: 'Pinned posts',
|
||||||
followRequests: 'Follow requests',
|
followRequests: 'Follow requests',
|
||||||
followRequestsLabel: `Follow requests {hasFollowRequests, select,
|
followRequestsLabel: `Follow requests {hasFollowRequests, select,
|
||||||
true {({count})}
|
true {({count})}
|
||||||
|
@ -102,7 +102,7 @@ export default {
|
||||||
listNotLoggedIn: 'A list will appear here when logged in.',
|
listNotLoggedIn: 'A list will appear here when logged in.',
|
||||||
notificationsNotLoggedIn: 'Your notifications will appear here when logged in.',
|
notificationsNotLoggedIn: 'Your notifications will appear here when logged in.',
|
||||||
notificationMentionsNotLoggedIn: 'Your notification mentions will appear here when logged in.',
|
notificationMentionsNotLoggedIn: 'Your notification mentions will appear here when logged in.',
|
||||||
statusNotLoggedIn: 'A toot thread will appear here when logged in.',
|
statusNotLoggedIn: 'A post thread will appear here when logged in.',
|
||||||
tagNotLoggedIn: 'A hashtag timeline will appear here when logged in.',
|
tagNotLoggedIn: 'A hashtag timeline will appear here when logged in.',
|
||||||
// Notification subpages
|
// Notification subpages
|
||||||
filters: 'Filters',
|
filters: 'Filters',
|
||||||
|
@ -132,7 +132,7 @@ export default {
|
||||||
}
|
}
|
||||||
to switch columns
|
to switch columns
|
||||||
</li>
|
</li>
|
||||||
<li><kbd>7</kbd> or <kbd>c</kbd> to compose a new toot</li>
|
<li><kbd>7</kbd> or <kbd>c</kbd> to compose a new post</li>
|
||||||
<li><kbd>s</kbd> or <kbd>/</kbd> to search</li>
|
<li><kbd>s</kbd> or <kbd>/</kbd> to search</li>
|
||||||
<li><kbd>g</kbd> + <kbd>h</kbd> to go home</li>
|
<li><kbd>g</kbd> + <kbd>h</kbd> to go home</li>
|
||||||
<li><kbd>g</kbd> + <kbd>n</kbd> to go to notifications</li>
|
<li><kbd>g</kbd> + <kbd>n</kbd> to go to notifications</li>
|
||||||
|
@ -144,8 +144,8 @@ export default {
|
||||||
<li><kbd>Backspace</kbd> to go back, close dialogs</li>
|
<li><kbd>Backspace</kbd> to go back, close dialogs</li>
|
||||||
`,
|
`,
|
||||||
timelineHotkeys: `
|
timelineHotkeys: `
|
||||||
<li><kbd>j</kbd> or <kbd>↓</kbd> to activate the next toot</li>
|
<li><kbd>j</kbd> or <kbd>↓</kbd> to activate the next post</li>
|
||||||
<li><kbd>k</kbd> or <kbd>↑</kbd> to activate the previous toot</li>
|
<li><kbd>k</kbd> or <kbd>↑</kbd> to activate the previous post</li>
|
||||||
<li><kbd>.</kbd> to show more and scroll to top</li>
|
<li><kbd>.</kbd> to show more and scroll to top</li>
|
||||||
<li><kbd>o</kbd> to open</li>
|
<li><kbd>o</kbd> to open</li>
|
||||||
<li><kbd>f</kbd> to favorite</li>
|
<li><kbd>f</kbd> to favorite</li>
|
||||||
|
@ -192,8 +192,8 @@ export default {
|
||||||
}`,
|
}`,
|
||||||
pinPage: 'Pin {label}',
|
pinPage: 'Pin {label}',
|
||||||
// Status composition
|
// Status composition
|
||||||
composeStatus: 'Compose toot',
|
composeStatus: 'Compose post',
|
||||||
postStatus: 'Toot!',
|
postStatus: 'Post',
|
||||||
contentWarning: 'Content warning',
|
contentWarning: 'Content warning',
|
||||||
dropToUpload: 'Drop to upload',
|
dropToUpload: 'Drop to upload',
|
||||||
invalidFileType: 'Invalid file type',
|
invalidFileType: 'Invalid file type',
|
||||||
|
@ -275,25 +275,25 @@ export default {
|
||||||
additionalComments: 'Additional comments',
|
additionalComments: 'Additional comments',
|
||||||
forwardDescription: 'Forward to the moderators of {instance} as well?',
|
forwardDescription: 'Forward to the moderators of {instance} as well?',
|
||||||
forwardLabel: 'Forward to {instance}',
|
forwardLabel: 'Forward to {instance}',
|
||||||
unableToLoadStatuses: 'Unable to load recent toots: {error}',
|
unableToLoadStatuses: 'Unable to load recent posts: {error}',
|
||||||
report: 'Report',
|
report: 'Report',
|
||||||
noContent: '(No content)',
|
noContent: '(No content)',
|
||||||
noStatuses: 'No toots to report',
|
noStatuses: 'No posts to report',
|
||||||
// Status options
|
// Status options
|
||||||
unpinFromProfile: 'Unpin from profile',
|
unpinFromProfile: 'Unpin from profile',
|
||||||
pinToProfile: 'Pin to profile',
|
pinToProfile: 'Pin to profile',
|
||||||
muteConversation: 'Mute conversation',
|
muteConversation: 'Mute conversation',
|
||||||
unmuteConversation: 'Unmute conversation',
|
unmuteConversation: 'Unmute conversation',
|
||||||
bookmarkStatus: 'Bookmark toot',
|
bookmarkStatus: 'Bookmark post',
|
||||||
unbookmarkStatus: 'Unbookmark toot',
|
unbookmarkStatus: 'Unbookmark post',
|
||||||
deleteAndRedraft: 'Delete and redraft',
|
deleteAndRedraft: 'Delete and redraft',
|
||||||
reportStatus: 'Report toot',
|
reportStatus: 'Report post',
|
||||||
shareStatus: 'Share toot',
|
shareStatus: 'Share post',
|
||||||
copyLinkToStatus: 'Copy link to toot',
|
copyLinkToStatus: 'Copy link to post',
|
||||||
// Account profile
|
// Account profile
|
||||||
profileForAccount: 'Profile for {account}',
|
profileForAccount: 'Profile for {account}',
|
||||||
statisticsAndMoreOptions: 'Stats and more options',
|
statisticsAndMoreOptions: 'Stats and more options',
|
||||||
statuses: 'Toots',
|
statuses: 'posts',
|
||||||
follows: 'Follows',
|
follows: 'Follows',
|
||||||
followers: 'Followers',
|
followers: 'Followers',
|
||||||
moreOptions: 'More options',
|
moreOptions: 'More options',
|
||||||
|
@ -373,10 +373,10 @@ export default {
|
||||||
largeMedia: 'Show large inline images and videos',
|
largeMedia: 'Show large inline images and videos',
|
||||||
autoplayGifs: 'Autoplay animated GIFs',
|
autoplayGifs: 'Autoplay animated GIFs',
|
||||||
hideCards: 'Hide link preview cards',
|
hideCards: 'Hide link preview cards',
|
||||||
underlineLinks: 'Underline links in toots and profiles',
|
underlineLinks: 'Underline links in posts and profiles',
|
||||||
accessibility: 'Accessibility',
|
accessibility: 'Accessibility',
|
||||||
reduceMotion: 'Reduce motion in UI animations',
|
reduceMotion: 'Reduce motion in UI animations',
|
||||||
disableTappable: 'Disable tappable area on entire toot',
|
disableTappable: 'Disable tappable area on entire post',
|
||||||
removeEmoji: 'Remove emoji from user display names',
|
removeEmoji: 'Remove emoji from user display names',
|
||||||
shortAria: 'Use short article ARIA labels',
|
shortAria: 'Use short article ARIA labels',
|
||||||
theme: 'Theme',
|
theme: 'Theme',
|
||||||
|
@ -416,7 +416,7 @@ export default {
|
||||||
// to see a description. It's hard to properly internationalize, so we just break up the strings.
|
// to see a description. It's hard to properly internationalize, so we just break up the strings.
|
||||||
disableInfiniteScrollPre: 'Disable',
|
disableInfiniteScrollPre: 'Disable',
|
||||||
disableInfiniteScrollText: 'infinite scroll',
|
disableInfiniteScrollText: 'infinite scroll',
|
||||||
disableInfiniteScrollDescription: `When infinite scroll is disabled, new toots will not automatically appear at
|
disableInfiniteScrollDescription: `When infinite scroll is disabled, new posts will not automatically appear at
|
||||||
the bottom or top of the timeline. Instead, buttons will allow you to
|
the bottom or top of the timeline. Instead, buttons will allow you to
|
||||||
load more content on demand.`,
|
load more content on demand.`,
|
||||||
disableInfiniteScrollPost: '',
|
disableInfiniteScrollPost: '',
|
||||||
|
@ -475,7 +475,7 @@ export default {
|
||||||
newFollowers: 'New followers',
|
newFollowers: 'New followers',
|
||||||
reblogs: 'Boosts',
|
reblogs: 'Boosts',
|
||||||
pollResults: 'Poll results',
|
pollResults: 'Poll results',
|
||||||
subscriptions: 'Subscribed toots',
|
subscriptions: 'Subscribed posts',
|
||||||
needToReauthenticate: 'You need to reauthenticate in order to enable push notification. Log out of {instance}?',
|
needToReauthenticate: 'You need to reauthenticate in order to enable push notification. Log out of {instance}?',
|
||||||
failedToUpdatePush: 'Failed to update push notification settings: {error}',
|
failedToUpdatePush: 'Failed to update push notification settings: {error}',
|
||||||
// Themes
|
// Themes
|
||||||
|
@ -509,11 +509,11 @@ export default {
|
||||||
one {1 time}
|
one {1 time}
|
||||||
other {{count} times}
|
other {{count} times}
|
||||||
}`,
|
}`,
|
||||||
pinnedStatus: 'Pinned toot',
|
pinnedStatus: 'Pinned post',
|
||||||
rebloggedYou: 'boosted your toot',
|
rebloggedYou: 'boosted your post',
|
||||||
favoritedYou: 'favorited your toot',
|
favoritedYou: 'favorited your post',
|
||||||
followedYou: 'followed you',
|
followedYou: 'followed you',
|
||||||
edited: 'edited their toot',
|
edited: 'edited their post',
|
||||||
requestedFollow: 'requested to follow you',
|
requestedFollow: 'requested to follow you',
|
||||||
reported: 'filed a report',
|
reported: 'filed a report',
|
||||||
signedUp: 'signed up',
|
signedUp: 'signed up',
|
||||||
|
@ -529,14 +529,14 @@ export default {
|
||||||
clickToShowSensitive: 'Sensitive content. Click to show.',
|
clickToShowSensitive: 'Sensitive content. Click to show.',
|
||||||
longPost: 'Long post',
|
longPost: 'Long post',
|
||||||
// Accessible status labels
|
// Accessible status labels
|
||||||
accountRebloggedYou: '{account} boosted your toot',
|
accountRebloggedYou: '{account} boosted your post',
|
||||||
accountFavoritedYou: '{account} favorited your toot',
|
accountFavoritedYou: '{account} favorited your post',
|
||||||
accountEdited: '{account} edited their toot',
|
accountEdited: '{account} edited their post',
|
||||||
rebloggedByAccount: 'Boosted by {account}',
|
rebloggedByAccount: 'Boosted by {account}',
|
||||||
contentWarningContent: 'Content warning: {spoiler}',
|
contentWarningContent: 'Content warning: {spoiler}',
|
||||||
hasMedia: 'has media',
|
hasMedia: 'has media',
|
||||||
hasPoll: 'has poll',
|
hasPoll: 'has poll',
|
||||||
shortStatusLabel: '{privacy} toot by {account}',
|
shortStatusLabel: '{privacy} post by {account}',
|
||||||
// Privacy types
|
// Privacy types
|
||||||
public: 'Public',
|
public: 'Public',
|
||||||
unlisted: 'Unlisted',
|
unlisted: 'Unlisted',
|
||||||
|
@ -590,21 +590,21 @@ export default {
|
||||||
showCountMore: 'Show {count} more',
|
showCountMore: 'Show {count} more',
|
||||||
nothingToShow: 'Nothing to show.',
|
nothingToShow: 'Nothing to show.',
|
||||||
// status thread page
|
// status thread page
|
||||||
statusThreadPage: 'Toot thread page',
|
statusThreadPage: 'post thread page',
|
||||||
status: 'Toot',
|
status: 'post',
|
||||||
// toast messages
|
// toast messages
|
||||||
blockedAccount: 'Blocked account',
|
blockedAccount: 'Blocked account',
|
||||||
unblockedAccount: 'Unblocked account',
|
unblockedAccount: 'Unblocked account',
|
||||||
unableToBlock: 'Unable to block account: {error}',
|
unableToBlock: 'Unable to block account: {error}',
|
||||||
unableToUnblock: 'Unable to unblock account: {error}',
|
unableToUnblock: 'Unable to unblock account: {error}',
|
||||||
bookmarkedStatus: 'Bookmarked toot',
|
bookmarkedStatus: 'Bookmarked post',
|
||||||
unbookmarkedStatus: 'Unbookmarked toot',
|
unbookmarkedStatus: 'Unbookmarked post',
|
||||||
unableToBookmark: 'Unable to bookmark: {error}',
|
unableToBookmark: 'Unable to bookmark: {error}',
|
||||||
unableToUnbookmark: 'Unable to unbookmark: {error}',
|
unableToUnbookmark: 'Unable to unbookmark: {error}',
|
||||||
cannotPostOffline: 'You cannot post while offline',
|
cannotPostOffline: 'You cannot post while offline',
|
||||||
unableToPost: 'Unable to post toot: {error}',
|
unableToPost: 'Unable to post post: {error}',
|
||||||
statusDeleted: 'Toot deleted',
|
statusDeleted: 'post deleted',
|
||||||
unableToDelete: 'Unable to delete toot: {error}',
|
unableToDelete: 'Unable to delete post: {error}',
|
||||||
cannotFavoriteOffline: 'You cannot favorite while offline',
|
cannotFavoriteOffline: 'You cannot favorite while offline',
|
||||||
cannotUnfavoriteOffline: 'You cannot unfavorite while offline',
|
cannotUnfavoriteOffline: 'You cannot unfavorite while offline',
|
||||||
unableToFavorite: 'Unable to favorite: {error}',
|
unableToFavorite: 'Unable to favorite: {error}',
|
||||||
|
@ -624,9 +624,9 @@ export default {
|
||||||
unmutedConversation: 'Unmuted conversation',
|
unmutedConversation: 'Unmuted conversation',
|
||||||
unableToMuteConversation: 'Unable to mute conversation: {error}',
|
unableToMuteConversation: 'Unable to mute conversation: {error}',
|
||||||
unableToUnmuteConversation: 'Unable to unmute conversation: {error}',
|
unableToUnmuteConversation: 'Unable to unmute conversation: {error}',
|
||||||
unpinnedStatus: 'Unpinned toot',
|
unpinnedStatus: 'Unpinned post',
|
||||||
unableToPinStatus: 'Unable to pin toot: {error}',
|
unableToPinStatus: 'Unable to pin post: {error}',
|
||||||
unableToUnpinStatus: 'Unable to unpin toot: {error}',
|
unableToUnpinStatus: 'Unable to unpin post: {error}',
|
||||||
unableToRefreshPoll: 'Unable to refresh poll: {error}',
|
unableToRefreshPoll: 'Unable to refresh poll: {error}',
|
||||||
unableToVoteInPoll: 'Unable to vote in poll: {error}',
|
unableToVoteInPoll: 'Unable to vote in poll: {error}',
|
||||||
cannotReblogOffline: 'You cannot boost while offline.',
|
cannotReblogOffline: 'You cannot boost while offline.',
|
||||||
|
@ -652,7 +652,7 @@ export default {
|
||||||
unableToSubscribe: 'Unable to subscribe: {error}',
|
unableToSubscribe: 'Unable to subscribe: {error}',
|
||||||
unableToUnsubscribe: 'Unable to unsubscribe: {error}',
|
unableToUnsubscribe: 'Unable to unsubscribe: {error}',
|
||||||
showingOfflineContent: 'Internet request failed. Showing offline content.',
|
showingOfflineContent: 'Internet request failed. Showing offline content.',
|
||||||
youAreOffline: 'You seem to be offline. You can still read toots while offline.',
|
youAreOffline: 'You seem to be offline. You can still read posts while offline.',
|
||||||
// Snackbar UI
|
// Snackbar UI
|
||||||
updateAvailable: 'App update available.',
|
updateAvailable: 'App update available.',
|
||||||
// Word/phrase filters
|
// Word/phrase filters
|
||||||
|
|
|
@ -193,7 +193,7 @@ export default {
|
||||||
pinPage: 'Закрепить {label}',
|
pinPage: 'Закрепить {label}',
|
||||||
// Status composition
|
// Status composition
|
||||||
composeStatus: 'Создать запись',
|
composeStatus: 'Создать запись',
|
||||||
postStatus: 'Опубликовать!',
|
postStatus2: 'Опубликовать!',
|
||||||
contentWarning: 'Предупреждение о содержимом',
|
contentWarning: 'Предупреждение о содержимом',
|
||||||
dropToUpload: 'Перетащите для загрузки',
|
dropToUpload: 'Перетащите для загрузки',
|
||||||
invalidFileType: 'Неверный тип файла',
|
invalidFileType: 'Неверный тип файла',
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { tryToFocusElement } from '../_utils/tryToFocusElement.js'
|
||||||
|
|
||||||
export function showMoreAndScrollToTop () {
|
export function showMoreAndScrollToTop () {
|
||||||
// Similar to Twitter, pressing "." will click the "show more" button and select
|
// Similar to Twitter, pressing "." will click the "show more" button and select
|
||||||
// the first toot.
|
// the first post.
|
||||||
showMoreItemsForCurrentTimeline()
|
showMoreItemsForCurrentTimeline()
|
||||||
const {
|
const {
|
||||||
currentInstance,
|
currentInstance,
|
||||||
|
|
|
@ -200,7 +200,7 @@
|
||||||
}
|
}
|
||||||
// The reason we add a scheduleIdleTask delay here is because we also use scheduleIdleTask
|
// The reason we add a scheduleIdleTask delay here is because we also use scheduleIdleTask
|
||||||
// in ComposeInput.html to debounce the input events. If the user is very fast at typing
|
// in ComposeInput.html to debounce the input events. If the user is very fast at typing
|
||||||
// at their keyboard and quickly presses Ctrl+Enter or the "Toot" button then there could
|
// at their keyboard and quickly presses Ctrl+Enter or the "Post" button then there could
|
||||||
// be a race condition where not all of their status is posted.
|
// be a race condition where not all of their status is posted.
|
||||||
this.set({ aboutToPostStatus: true })
|
this.set({ aboutToPostStatus: true })
|
||||||
scheduleIdleTask(() => {
|
scheduleIdleTask(() => {
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
textarea.selectionStart = textarea.selectionEnd = newSelectionStart
|
textarea.selectionStart = textarea.selectionEnd = newSelectionStart
|
||||||
}
|
}
|
||||||
// this next autosize is required to resize after
|
// this next autosize is required to resize after
|
||||||
// the user clicks the "toot" button
|
// the user clicks the "post" button
|
||||||
mark('autosize.update()')
|
mark('autosize.update()')
|
||||||
autosize.update(textarea)
|
autosize.update(textarea)
|
||||||
stop('autosize.update()')
|
stop('autosize.update()')
|
||||||
|
@ -173,7 +173,7 @@
|
||||||
},
|
},
|
||||||
onKeydown (e) {
|
onKeydown (e) {
|
||||||
const { keyCode } = e
|
const { keyCode } = e
|
||||||
// ctrl or cmd (on macs) was pressed; ctrl-enter means post a toot
|
// ctrl or cmd (on macs) was pressed; ctrl-enter means create a post
|
||||||
const ctrlPressed = e.getModifierState('Control') || e.getModifierState('Meta')
|
const ctrlPressed = e.getModifierState('Control') || e.getModifierState('Meta')
|
||||||
switch (keyCode) {
|
switch (keyCode) {
|
||||||
case 9: { // tab
|
case 9: { // tab
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
// so we should launch a new compose dialog
|
// so we should launch a new compose dialog
|
||||||
this.showDialog()
|
this.showDialog()
|
||||||
} else {
|
} else {
|
||||||
// else we're actually posting a new toot, let our parent know
|
// else we're actually posting a new post, let our parent know
|
||||||
this.fire('postAction')
|
this.fire('postAction')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -18,12 +18,12 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
name: '',
|
name: '',
|
||||||
label: 'Toots',
|
label: 'Posts',
|
||||||
href: `/accounts/${account.id}`
|
href: `/accounts/${account.id}`
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'with_replies',
|
name: 'with_replies',
|
||||||
label: 'Toots and replies',
|
label: 'Posts and replies',
|
||||||
href: `/accounts/${account.id}/with_replies`
|
href: `/accounts/${account.id}/with_replies`
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -119,8 +119,8 @@
|
||||||
if (!activeElement) {
|
if (!activeElement) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
// The user might be focused on an element inside a toot. We want to
|
// The user might be focused on an element inside a post. We want to
|
||||||
// move relative to that toot.
|
// move relative to that post.
|
||||||
const activeArticle = activeElement.closest('article')
|
const activeArticle = activeElement.closest('article')
|
||||||
if (!activeArticle) {
|
if (!activeArticle) {
|
||||||
return null
|
return null
|
||||||
|
|
|
@ -220,7 +220,7 @@
|
||||||
sensitivesShown[uuid] = !sensitivesShown[uuid]
|
sensitivesShown[uuid] = !sensitivesShown[uuid]
|
||||||
this.store.set({ sensitivesShown })
|
this.store.set({ sensitivesShown })
|
||||||
this.fire('recalculateHeight')
|
this.fire('recalculateHeight')
|
||||||
// Only change focus for clicks, not for hotkeys. It's weird if, when the entire toot
|
// Only change focus for clicks, not for hotkeys. It's weird if, when the entire post
|
||||||
// is focused and you press "y", that the focus changes to the sensitive media button.
|
// is focused and you press "y", that the focus changes to the sensitive media button.
|
||||||
if (changeFocus) {
|
if (changeFocus) {
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<DynamicPageBanner title="{intl.pinnedStatuses}" icon="#fa-thumb-tack" />
|
<DynamicPageBanner title="{intl.pinnedStatuses}" icon="#fa-thumb-tack" />
|
||||||
{#if $isUserLoggedIn }
|
{#if $isUserLoggedIn }
|
||||||
<div class="pinned-toots-page">
|
<div class="pinned-posts-page">
|
||||||
{#if loading}
|
{#if loading}
|
||||||
<LoadingPage />
|
<LoadingPage />
|
||||||
{:elseif statuses && statuses.length}
|
{:elseif statuses && statuses.length}
|
||||||
<ul class="pinned-toots-results">
|
<ul class="pinned-posts-results">
|
||||||
{#each statuses as status, index}
|
{#each statuses as status, index}
|
||||||
<StatusSearchResult {status} {index} length={statuses.length} />
|
<StatusSearchResult {status} {index} length={statuses.length} />
|
||||||
{/each}
|
{/each}
|
||||||
|
@ -13,18 +13,18 @@
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
<style>
|
<style>
|
||||||
.pinned-toots-page {
|
.pinned-posts-page {
|
||||||
padding: 20px 20px;
|
padding: 20px 20px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.pinned-toots-results {
|
.pinned-posts-results {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border: 1px solid var(--main-border);
|
border: 1px solid var(--main-border);
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
@media (max-width: 767px) {
|
@media (max-width: 767px) {
|
||||||
.pinned-toots-page {
|
.pinned-posts-page {
|
||||||
padding: 20px 10px;
|
padding: 20px 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue