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.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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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
} }

View File

@ -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}

View File

@ -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>
) )

View File

@ -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>

View File

@ -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'