1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00
This commit is contained in:
xmflsct
2022-12-24 01:59:18 +01:00
parent b6045e5121
commit e27bf7407b
10 changed files with 249 additions and 366 deletions

View File

@ -196,37 +196,19 @@ const TimelineDefault: React.FC<Props> = ({
</ContextMenu.Trigger>
<ContextMenu.Content>
{mShare.map((mGroup, index) => (
{[mShare, mStatus, mInstance].map(type => (
<>
{type.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.ItemIcon ios={{ name: menu.icon }} />
</ContextMenu.Item>
))}
</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.Root>

View File

@ -164,37 +164,19 @@ const TimelineNotifications: React.FC<Props> = ({ notification, queryKey }) => {
</ContextMenu.Trigger>
<ContextMenu.Content>
{mShare.map((mGroup, index) => (
{[mShare, mStatus, mInstance].map(type => (
<>
{type.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.ItemIcon ios={{ name: menu.icon }} />
</ContextMenu.Item>
))}
</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.Root>

View File

@ -53,34 +53,19 @@ const TimelineHeaderAndroid: React.FC = () => {
</DropdownMenu.Trigger>
<DropdownMenu.Content>
{mShare.map((mGroup, index) => (
{[mShare, mAccount, mStatus].map(type => (
<>
{type.map((mGroup, index) => (
<DropdownMenu.Group key={index}>
{mGroup.map(menu => (
<DropdownMenu.Item key={menu.key} {...menu.item}>
<DropdownMenu.ItemTitle children={menu.title} />
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
</DropdownMenu.Item>
))}
</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.Root>

View File

@ -83,37 +83,19 @@ const TimelineHeaderDefault: React.FC = () => {
</DropdownMenu.Trigger>
<DropdownMenu.Content>
{mShare.map((mGroup, index) => (
{[mShare, mAccount, mStatus].map(type => (
<>
{type.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.ItemIcon ios={{ name: menu.icon }} />
</DropdownMenu.Item>
))}
</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.Root>

View File

@ -90,48 +90,19 @@ const TimelineHeaderNotification: React.FC<Props> = ({ notification }) => {
</DropdownMenu.Trigger>
<DropdownMenu.Content>
{mShare.map((mGroup, index) => (
{[mShare, mStatus, mAccount, mInstance].map(type => (
<>
{type.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.ItemIcon ios={{ name: menu.icon }} />
</DropdownMenu.Item>
))}
</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.Root>

View File

@ -62,7 +62,6 @@ const menuStatus = ({
const canEditPost = useSelector(checkInstanceFeature('edit_post'))
if (ownAccount) {
menus.push([
{
key: 'status-edit',
@ -98,7 +97,7 @@ const menuStatus = ({
},
disabled: false,
destructive: false,
hidden: !canEditPost
hidden: !ownAccount || !canEditPost
},
title: t('componentContextMenu:status.edit.action'),
icon: 'square.and.pencil'
@ -146,7 +145,7 @@ const menuStatus = ({
),
disabled: false,
destructive: true,
hidden: false
hidden: !ownAccount
},
title: t('componentContextMenu:status.deleteEdit.action'),
icon: 'pencil.and.outline'
@ -180,7 +179,7 @@ const menuStatus = ({
),
disabled: false,
destructive: true,
hidden: false
hidden: !ownAccount
},
title: t('componentContextMenu:status.delete.action'),
icon: 'trash'
@ -199,14 +198,14 @@ const menuStatus = ({
id: status.id,
payload: {
property: 'muted',
currentValue: status.muted,
propertyCount: undefined,
countValue: undefined
currentValue: status.muted
}
}),
disabled: false,
destructive: false,
hidden: false
hidden:
!ownAccount &&
!status.mentions.filter(mention => mention.id === instanceAccount.id).length
},
title: t('componentContextMenu:status.mute.action', {
defaultValue: 'false',
@ -233,7 +232,7 @@ const menuStatus = ({
}),
disabled: false,
destructive: false,
hidden: status.visibility !== 'public' && status.visibility !== 'unlisted'
hidden: !ownAccount || (status.visibility !== 'public' && status.visibility !== 'unlisted')
},
title: t('componentContextMenu:status.pin.action', {
defaultValue: 'false',
@ -242,7 +241,6 @@ const menuStatus = ({
icon: status.pinned ? 'pin.slash' : 'pin'
}
])
}
return menus
}

View File

@ -96,7 +96,7 @@ const Root: React.FC<NativeStackScreenProps<TabLocalStackParamList, 'Tab-Local-R
disabled={page.page === 'Following'}
>
<DropdownMenu.ItemTitle children={t('tabs.local.name')} />
<DropdownMenu.ItemIcon iosIconName='house' />
<DropdownMenu.ItemIcon ios={{ name: 'house' }} />
</DropdownMenu.Item>
<DropdownMenu.CheckboxItem
key='showBoosts'
@ -157,7 +157,7 @@ const Root: React.FC<NativeStackScreenProps<TabLocalStackParamList, 'Tab-Local-R
].map(menu => (
<DropdownMenu.Item key={menu.key} {...menu.item}>
<DropdownMenu.ItemTitle children={menu.title} />
<DropdownMenu.ItemIcon iosIconName={menu.icon} />
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
</DropdownMenu.Item>
))
: undefined}

View File

@ -55,24 +55,14 @@ const TabMeList: React.FC<TabMeStackScreenProps<'Tab-Me-List'>> = ({
</DropdownMenu.Trigger>
<DropdownMenu.Content>
<DropdownMenu.Group>
<DropdownMenu.Item key={listAccounts.key} onSelect={listAccounts.onSelect}>
<DropdownMenu.ItemTitle children={listAccounts.title} />
<DropdownMenu.ItemIcon iosIconName={listAccounts.icon} />
</DropdownMenu.Item>
</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} />
{[listAccounts, listEdit, listDelete].map((menu, index) => (
<DropdownMenu.Group key={index}>
<DropdownMenu.Item key={menu.key} onSelect={menu.onSelect}>
<DropdownMenu.ItemTitle children={menu.title} />
<DropdownMenu.ItemIcon ios={{ name: menu.icon }} />
</DropdownMenu.Item>
</DropdownMenu.Group>
))}
</DropdownMenu.Content>
</DropdownMenu.Root>
)

View File

@ -55,26 +55,19 @@ const TabSharedAccount: React.FC<TabSharedStackScreenProps<'Tab-Shared-Account'>
</DropdownMenu.Trigger>
<DropdownMenu.Content>
{mShare.map((mGroup, index) => (
{[mShare, mAccount].map(type => (
<>
{type.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.ItemIcon ios={{ name: menu.icon }} />
</DropdownMenu.Item>
))}
</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.Root>

View File

@ -273,8 +273,8 @@ export type MutationVarsTimelineUpdateStatusProperty = {
| {
property: 'bookmarked' | 'muted' | 'pinned'
currentValue: boolean
propertyCount: undefined
countValue: undefined
propertyCount?: undefined
countValue?: undefined
}
| {
property: 'favourited'