mirror of
https://github.com/tooot-app/app
synced 2025-06-05 22:19:13 +02:00
Fix #616
This commit is contained in:
@ -196,37 +196,19 @@ const TimelineDefault: React.FC<Props> = ({
|
|||||||
</ContextMenu.Trigger>
|
</ContextMenu.Trigger>
|
||||||
|
|
||||||
<ContextMenu.Content>
|
<ContextMenu.Content>
|
||||||
{mShare.map((mGroup, index) => (
|
{[mShare, mStatus, mInstance].map(type => (
|
||||||
|
<>
|
||||||
|
{type.map((mGroup, index) => (
|
||||||
<ContextMenu.Group key={index}>
|
<ContextMenu.Group key={index}>
|
||||||
{mGroup.map(menu => (
|
{mGroup.map(menu => (
|
||||||
<ContextMenu.Item key={menu.key} {...menu.item}>
|
<ContextMenu.Item key={menu.key} {...menu.item}>
|
||||||
<ContextMenu.ItemTitle children={menu.title} />
|
<ContextMenu.ItemTitle children={menu.title} />
|
||||||
<ContextMenu.ItemIcon iosIconName={menu.icon} />
|
<ContextMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</ContextMenu.Item>
|
</ContextMenu.Item>
|
||||||
))}
|
))}
|
||||||
</ContextMenu.Group>
|
</ContextMenu.Group>
|
||||||
))}
|
))}
|
||||||
|
</>
|
||||||
{mStatus.map((mGroup, index) => (
|
|
||||||
<ContextMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<ContextMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<ContextMenu.ItemTitle children={menu.title} />
|
|
||||||
<ContextMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</ContextMenu.Item>
|
|
||||||
))}
|
|
||||||
</ContextMenu.Group>
|
|
||||||
))}
|
|
||||||
|
|
||||||
{mInstance.map((mGroup, index) => (
|
|
||||||
<ContextMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<ContextMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<ContextMenu.ItemTitle children={menu.title} />
|
|
||||||
<ContextMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</ContextMenu.Item>
|
|
||||||
))}
|
|
||||||
</ContextMenu.Group>
|
|
||||||
))}
|
))}
|
||||||
</ContextMenu.Content>
|
</ContextMenu.Content>
|
||||||
</ContextMenu.Root>
|
</ContextMenu.Root>
|
||||||
|
@ -164,37 +164,19 @@ const TimelineNotifications: React.FC<Props> = ({ notification, queryKey }) => {
|
|||||||
</ContextMenu.Trigger>
|
</ContextMenu.Trigger>
|
||||||
|
|
||||||
<ContextMenu.Content>
|
<ContextMenu.Content>
|
||||||
{mShare.map((mGroup, index) => (
|
{[mShare, mStatus, mInstance].map(type => (
|
||||||
|
<>
|
||||||
|
{type.map((mGroup, index) => (
|
||||||
<ContextMenu.Group key={index}>
|
<ContextMenu.Group key={index}>
|
||||||
{mGroup.map(menu => (
|
{mGroup.map(menu => (
|
||||||
<ContextMenu.Item key={menu.key} {...menu.item}>
|
<ContextMenu.Item key={menu.key} {...menu.item}>
|
||||||
<ContextMenu.ItemTitle children={menu.title} />
|
<ContextMenu.ItemTitle children={menu.title} />
|
||||||
<ContextMenu.ItemIcon iosIconName={menu.icon} />
|
<ContextMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</ContextMenu.Item>
|
</ContextMenu.Item>
|
||||||
))}
|
))}
|
||||||
</ContextMenu.Group>
|
</ContextMenu.Group>
|
||||||
))}
|
))}
|
||||||
|
</>
|
||||||
{mStatus.map((mGroup, index) => (
|
|
||||||
<ContextMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<ContextMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<ContextMenu.ItemTitle children={menu.title} />
|
|
||||||
<ContextMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</ContextMenu.Item>
|
|
||||||
))}
|
|
||||||
</ContextMenu.Group>
|
|
||||||
))}
|
|
||||||
|
|
||||||
{mInstance.map((mGroup, index) => (
|
|
||||||
<ContextMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<ContextMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<ContextMenu.ItemTitle children={menu.title} />
|
|
||||||
<ContextMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</ContextMenu.Item>
|
|
||||||
))}
|
|
||||||
</ContextMenu.Group>
|
|
||||||
))}
|
))}
|
||||||
</ContextMenu.Content>
|
</ContextMenu.Content>
|
||||||
</ContextMenu.Root>
|
</ContextMenu.Root>
|
||||||
|
@ -53,34 +53,19 @@ const TimelineHeaderAndroid: React.FC = () => {
|
|||||||
</DropdownMenu.Trigger>
|
</DropdownMenu.Trigger>
|
||||||
|
|
||||||
<DropdownMenu.Content>
|
<DropdownMenu.Content>
|
||||||
{mShare.map((mGroup, index) => (
|
{[mShare, mAccount, mStatus].map(type => (
|
||||||
|
<>
|
||||||
|
{type.map((mGroup, index) => (
|
||||||
<DropdownMenu.Group key={index}>
|
<DropdownMenu.Group key={index}>
|
||||||
{mGroup.map(menu => (
|
{mGroup.map(menu => (
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
<DropdownMenu.ItemTitle children={menu.title} />
|
||||||
|
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Group>
|
</DropdownMenu.Group>
|
||||||
))}
|
))}
|
||||||
|
</>
|
||||||
{mAccount.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
|
||||||
|
|
||||||
{mStatus.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Content>
|
</DropdownMenu.Content>
|
||||||
</DropdownMenu.Root>
|
</DropdownMenu.Root>
|
||||||
|
@ -83,37 +83,19 @@ const TimelineHeaderDefault: React.FC = () => {
|
|||||||
</DropdownMenu.Trigger>
|
</DropdownMenu.Trigger>
|
||||||
|
|
||||||
<DropdownMenu.Content>
|
<DropdownMenu.Content>
|
||||||
{mShare.map((mGroup, index) => (
|
{[mShare, mAccount, mStatus].map(type => (
|
||||||
|
<>
|
||||||
|
{type.map((mGroup, index) => (
|
||||||
<DropdownMenu.Group key={index}>
|
<DropdownMenu.Group key={index}>
|
||||||
{mGroup.map(menu => (
|
{mGroup.map(menu => (
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
<DropdownMenu.ItemTitle children={menu.title} />
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Group>
|
</DropdownMenu.Group>
|
||||||
))}
|
))}
|
||||||
|
</>
|
||||||
{mAccount.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
|
||||||
|
|
||||||
{mStatus.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Content>
|
</DropdownMenu.Content>
|
||||||
</DropdownMenu.Root>
|
</DropdownMenu.Root>
|
||||||
|
@ -90,48 +90,19 @@ const TimelineHeaderNotification: React.FC<Props> = ({ notification }) => {
|
|||||||
</DropdownMenu.Trigger>
|
</DropdownMenu.Trigger>
|
||||||
|
|
||||||
<DropdownMenu.Content>
|
<DropdownMenu.Content>
|
||||||
{mShare.map((mGroup, index) => (
|
{[mShare, mStatus, mAccount, mInstance].map(type => (
|
||||||
|
<>
|
||||||
|
{type.map((mGroup, index) => (
|
||||||
<DropdownMenu.Group key={index}>
|
<DropdownMenu.Group key={index}>
|
||||||
{mGroup.map(menu => (
|
{mGroup.map(menu => (
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
<DropdownMenu.ItemTitle children={menu.title} />
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Group>
|
</DropdownMenu.Group>
|
||||||
))}
|
))}
|
||||||
|
</>
|
||||||
{mAccount.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
|
||||||
|
|
||||||
{mStatus.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
|
||||||
|
|
||||||
{mInstance.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Content>
|
</DropdownMenu.Content>
|
||||||
</DropdownMenu.Root>
|
</DropdownMenu.Root>
|
||||||
|
@ -62,7 +62,6 @@ const menuStatus = ({
|
|||||||
|
|
||||||
const canEditPost = useSelector(checkInstanceFeature('edit_post'))
|
const canEditPost = useSelector(checkInstanceFeature('edit_post'))
|
||||||
|
|
||||||
if (ownAccount) {
|
|
||||||
menus.push([
|
menus.push([
|
||||||
{
|
{
|
||||||
key: 'status-edit',
|
key: 'status-edit',
|
||||||
@ -98,7 +97,7 @@ const menuStatus = ({
|
|||||||
},
|
},
|
||||||
disabled: false,
|
disabled: false,
|
||||||
destructive: false,
|
destructive: false,
|
||||||
hidden: !canEditPost
|
hidden: !ownAccount || !canEditPost
|
||||||
},
|
},
|
||||||
title: t('componentContextMenu:status.edit.action'),
|
title: t('componentContextMenu:status.edit.action'),
|
||||||
icon: 'square.and.pencil'
|
icon: 'square.and.pencil'
|
||||||
@ -146,7 +145,7 @@ const menuStatus = ({
|
|||||||
),
|
),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
destructive: true,
|
destructive: true,
|
||||||
hidden: false
|
hidden: !ownAccount
|
||||||
},
|
},
|
||||||
title: t('componentContextMenu:status.deleteEdit.action'),
|
title: t('componentContextMenu:status.deleteEdit.action'),
|
||||||
icon: 'pencil.and.outline'
|
icon: 'pencil.and.outline'
|
||||||
@ -180,7 +179,7 @@ const menuStatus = ({
|
|||||||
),
|
),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
destructive: true,
|
destructive: true,
|
||||||
hidden: false
|
hidden: !ownAccount
|
||||||
},
|
},
|
||||||
title: t('componentContextMenu:status.delete.action'),
|
title: t('componentContextMenu:status.delete.action'),
|
||||||
icon: 'trash'
|
icon: 'trash'
|
||||||
@ -199,14 +198,14 @@ const menuStatus = ({
|
|||||||
id: status.id,
|
id: status.id,
|
||||||
payload: {
|
payload: {
|
||||||
property: 'muted',
|
property: 'muted',
|
||||||
currentValue: status.muted,
|
currentValue: status.muted
|
||||||
propertyCount: undefined,
|
|
||||||
countValue: undefined
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
destructive: false,
|
destructive: false,
|
||||||
hidden: false
|
hidden:
|
||||||
|
!ownAccount &&
|
||||||
|
!status.mentions.filter(mention => mention.id === instanceAccount.id).length
|
||||||
},
|
},
|
||||||
title: t('componentContextMenu:status.mute.action', {
|
title: t('componentContextMenu:status.mute.action', {
|
||||||
defaultValue: 'false',
|
defaultValue: 'false',
|
||||||
@ -233,7 +232,7 @@ const menuStatus = ({
|
|||||||
}),
|
}),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
destructive: false,
|
destructive: false,
|
||||||
hidden: status.visibility !== 'public' && status.visibility !== 'unlisted'
|
hidden: !ownAccount || (status.visibility !== 'public' && status.visibility !== 'unlisted')
|
||||||
},
|
},
|
||||||
title: t('componentContextMenu:status.pin.action', {
|
title: t('componentContextMenu:status.pin.action', {
|
||||||
defaultValue: 'false',
|
defaultValue: 'false',
|
||||||
@ -242,7 +241,6 @@ const menuStatus = ({
|
|||||||
icon: status.pinned ? 'pin.slash' : 'pin'
|
icon: status.pinned ? 'pin.slash' : 'pin'
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
}
|
|
||||||
|
|
||||||
return menus
|
return menus
|
||||||
}
|
}
|
||||||
|
@ -96,7 +96,7 @@ const Root: React.FC<NativeStackScreenProps<TabLocalStackParamList, 'Tab-Local-R
|
|||||||
disabled={page.page === 'Following'}
|
disabled={page.page === 'Following'}
|
||||||
>
|
>
|
||||||
<DropdownMenu.ItemTitle children={t('tabs.local.name')} />
|
<DropdownMenu.ItemTitle children={t('tabs.local.name')} />
|
||||||
<DropdownMenu.ItemIcon iosIconName='house' />
|
<DropdownMenu.ItemIcon ios={{ name: 'house' }} />
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
<DropdownMenu.CheckboxItem
|
<DropdownMenu.CheckboxItem
|
||||||
key='showBoosts'
|
key='showBoosts'
|
||||||
@ -157,7 +157,7 @@ const Root: React.FC<NativeStackScreenProps<TabLocalStackParamList, 'Tab-Local-R
|
|||||||
].map(menu => (
|
].map(menu => (
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
<DropdownMenu.ItemTitle children={menu.title} />
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
))
|
))
|
||||||
: undefined}
|
: undefined}
|
||||||
|
@ -55,24 +55,14 @@ const TabMeList: React.FC<TabMeStackScreenProps<'Tab-Me-List'>> = ({
|
|||||||
</DropdownMenu.Trigger>
|
</DropdownMenu.Trigger>
|
||||||
|
|
||||||
<DropdownMenu.Content>
|
<DropdownMenu.Content>
|
||||||
<DropdownMenu.Group>
|
{[listAccounts, listEdit, listDelete].map((menu, index) => (
|
||||||
<DropdownMenu.Item key={listAccounts.key} onSelect={listAccounts.onSelect}>
|
<DropdownMenu.Group key={index}>
|
||||||
<DropdownMenu.ItemTitle children={listAccounts.title} />
|
<DropdownMenu.Item key={menu.key} onSelect={menu.onSelect}>
|
||||||
<DropdownMenu.ItemIcon iosIconName={listAccounts.icon} />
|
<DropdownMenu.ItemTitle children={menu.title} />
|
||||||
</DropdownMenu.Item>
|
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</DropdownMenu.Group>
|
|
||||||
|
|
||||||
<DropdownMenu.Group>
|
|
||||||
<DropdownMenu.Item key={listEdit.key} onSelect={listEdit.onSelect}>
|
|
||||||
<DropdownMenu.ItemTitle children={listEdit.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={listEdit.icon} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
|
|
||||||
<DropdownMenu.Item key={listDelete.key} destructive onSelect={listDelete.onSelect}>
|
|
||||||
<DropdownMenu.ItemTitle children={listDelete.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={listDelete.icon} />
|
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
</DropdownMenu.Group>
|
</DropdownMenu.Group>
|
||||||
|
))}
|
||||||
</DropdownMenu.Content>
|
</DropdownMenu.Content>
|
||||||
</DropdownMenu.Root>
|
</DropdownMenu.Root>
|
||||||
)
|
)
|
||||||
|
@ -55,26 +55,19 @@ const TabSharedAccount: React.FC<TabSharedStackScreenProps<'Tab-Shared-Account'>
|
|||||||
</DropdownMenu.Trigger>
|
</DropdownMenu.Trigger>
|
||||||
|
|
||||||
<DropdownMenu.Content>
|
<DropdownMenu.Content>
|
||||||
{mShare.map((mGroup, index) => (
|
{[mShare, mAccount].map(type => (
|
||||||
|
<>
|
||||||
|
{type.map((mGroup, index) => (
|
||||||
<DropdownMenu.Group key={index}>
|
<DropdownMenu.Group key={index}>
|
||||||
{mGroup.map(menu => (
|
{mGroup.map(menu => (
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
<DropdownMenu.ItemTitle children={menu.title} />
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Group>
|
</DropdownMenu.Group>
|
||||||
))}
|
))}
|
||||||
|
</>
|
||||||
{mAccount.map((mGroup, index) => (
|
|
||||||
<DropdownMenu.Group key={index}>
|
|
||||||
{mGroup.map(menu => (
|
|
||||||
<DropdownMenu.Item key={menu.key} {...menu.item}>
|
|
||||||
<DropdownMenu.ItemTitle children={menu.title} />
|
|
||||||
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
))}
|
|
||||||
</DropdownMenu.Group>
|
|
||||||
))}
|
))}
|
||||||
</DropdownMenu.Content>
|
</DropdownMenu.Content>
|
||||||
</DropdownMenu.Root>
|
</DropdownMenu.Root>
|
||||||
|
@ -273,8 +273,8 @@ export type MutationVarsTimelineUpdateStatusProperty = {
|
|||||||
| {
|
| {
|
||||||
property: 'bookmarked' | 'muted' | 'pinned'
|
property: 'bookmarked' | 'muted' | 'pinned'
|
||||||
currentValue: boolean
|
currentValue: boolean
|
||||||
propertyCount: undefined
|
propertyCount?: undefined
|
||||||
countValue: undefined
|
countValue?: undefined
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
property: 'favourited'
|
property: 'favourited'
|
||||||
|
Reference in New Issue
Block a user