This commit is contained in:
xmflsct 2022-12-05 14:50:03 +01:00
parent 955478c605
commit c6e27d6d88
6 changed files with 28 additions and 18 deletions

View File

@ -120,7 +120,7 @@ const TimelineDefault: React.FC<Props> = ({
queryKey,
rootQueryKey,
status,
isReblog: !!item.reblog,
reblogStatus: item.reblog ? item : undefined,
ownAccount,
spoilerHidden,
copiableContent,

View File

@ -38,7 +38,7 @@ const TimelineNotifications: React.FC<Props> = ({
}) => {
const instanceAccount = useSelector(getInstanceAccount, () => true)
const status = notification.status
const status = notification.status?.reblog ? notification.status.reblog : notification.status
const account = notification.status ? notification.status.account : notification.account
const ownAccount = notification.account?.id === instanceAccount?.id
const [spoilerExpanded, setSpoilerExpanded] = useState(
@ -78,7 +78,11 @@ const TimelineNotifications: React.FC<Props> = ({
return (
<>
{notification.type !== 'mention' ? (
<TimelineActioned action={notification.type} isNotification account={account} />
<TimelineActioned
action={notification.type}
isNotification
account={notification.account}
/>
) : null}
<View
@ -132,7 +136,6 @@ const TimelineNotifications: React.FC<Props> = ({
value={{
queryKey,
status,
isReblog: !!status?.reblog,
ownAccount,
spoilerHidden,
copiableContent,

View File

@ -13,12 +13,12 @@ import StatusContext from './Context'
export interface Props {
action: Mastodon.Notification['type'] | 'reblog' | 'pinned'
isNotification?: boolean
account?: Mastodon.Account
account?: Mastodon.Account // For notification
}
const TimelineActioned: React.FC<Props> = ({ action, isNotification, ...rest }) => {
const { status } = useContext(StatusContext)
const account = isNotification ? rest.account : status?.account
const { status, reblogStatus } = useContext(StatusContext)
const account = rest.account || (reblogStatus ? reblogStatus.account : status?.account)
if (!status || !account) return null
const { t } = useTranslation('componentTimeline')

View File

@ -22,7 +22,7 @@ import { useSelector } from 'react-redux'
import StatusContext from './Context'
const TimelineActions: React.FC = () => {
const { queryKey, rootQueryKey, status, isReblog, ownAccount, highlighted, disableDetails } =
const { queryKey, rootQueryKey, status, reblogStatus, ownAccount, highlighted, disableDetails } =
useContext(StatusContext)
if (!queryKey || !status || disableDetails) return null
@ -109,7 +109,7 @@ const TimelineActions: React.FC = () => {
queryKey,
rootQueryKey,
id: status.id,
isReblog,
isReblog: !!reblogStatus,
payload: {
property: 'reblogged',
currentValue: status.reblogged,
@ -125,7 +125,7 @@ const TimelineActions: React.FC = () => {
queryKey,
rootQueryKey,
id: status.id,
isReblog,
isReblog: !!reblogStatus,
payload: {
property: 'reblogged',
currentValue: status.reblogged,
@ -144,7 +144,7 @@ const TimelineActions: React.FC = () => {
queryKey,
rootQueryKey,
id: status.id,
isReblog,
isReblog: !!reblogStatus,
payload: {
property: 'reblogged',
currentValue: status.reblogged,
@ -161,7 +161,7 @@ const TimelineActions: React.FC = () => {
queryKey,
rootQueryKey,
id: status.id,
isReblog,
isReblog: !!reblogStatus,
payload: {
property: 'favourited',
currentValue: status.favourited,
@ -176,7 +176,7 @@ const TimelineActions: React.FC = () => {
queryKey,
rootQueryKey,
id: status.id,
isReblog,
isReblog: !!reblogStatus,
payload: {
property: 'bookmarked',
currentValue: status.bookmarked,

View File

@ -7,7 +7,7 @@ type ContextType = {
status?: Mastodon.Status
isReblog?: boolean
reblogStatus?: Mastodon.Status // When it is a reblog, pass the root status
ownAccount?: boolean
spoilerHidden?: boolean
copiableContent?: React.MutableRefObject<{

View File

@ -20,8 +20,15 @@ import { useQueryClient } from 'react-query'
import StatusContext from './Context'
const TimelinePoll: React.FC = () => {
const { queryKey, rootQueryKey, status, isReblog, ownAccount, spoilerHidden, disableDetails } =
useContext(StatusContext)
const {
queryKey,
rootQueryKey,
status,
reblogStatus,
ownAccount,
spoilerHidden,
disableDetails
} = useContext(StatusContext)
if (!queryKey || !status || !status.poll) return null
const poll = status.poll
@ -78,7 +85,7 @@ const TimelinePoll: React.FC = () => {
queryKey,
rootQueryKey,
id: status.id,
isReblog,
isReblog: !!reblogStatus,
payload: {
property: 'poll',
id: poll.id,
@ -104,7 +111,7 @@ const TimelinePoll: React.FC = () => {
queryKey,
rootQueryKey,
id: status.id,
isReblog,
isReblog: !!reblogStatus,
payload: {
property: 'poll',
id: poll.id,