1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00

Fix Android does not support menu sub

This commit is contained in:
xmflsct
2023-01-12 21:44:28 +01:00
parent fa066daa59
commit 58c96c4c08
2 changed files with 42 additions and 39 deletions

View File

@@ -68,28 +68,16 @@ const TimelineHeaderAndroid: React.FC = () => {
) )
case 'sub': case 'sub':
return ( return (
// @ts-ignore <Fragment key={item.key}>
<DropdownMenu.Sub key={item.key}> {item.items.map(sub => (
<DropdownMenu.SubTrigger <DropdownMenu.Item key={sub.key} {...sub.props}>
key={item.trigger.key} <DropdownMenu.ItemTitle children={sub.title} />
{...item.trigger.props} {sub.icon ? (
> <DropdownMenu.ItemIcon ios={{ name: sub.icon }} />
<DropdownMenu.ItemTitle children={item.trigger.title} /> ) : null}
{item.trigger.icon ? ( </DropdownMenu.Item>
<DropdownMenu.ItemIcon ios={{ name: item.trigger.icon }} /> ))}
) : null} </Fragment>
</DropdownMenu.SubTrigger>
<DropdownMenu.SubContent>
{item.items.map(sub => (
<DropdownMenu.Item key={sub.key} {...sub.props}>
<DropdownMenu.ItemTitle children={sub.title} />
{sub.icon ? (
<DropdownMenu.ItemIcon ios={{ name: sub.icon }} />
) : null}
</DropdownMenu.Item>
))}
</DropdownMenu.SubContent>
</DropdownMenu.Sub>
) )
} }
})} })}

View File

@@ -13,7 +13,7 @@ import { StyleConstants } from '@utils/styles/constants'
import { useTheme } from '@utils/styles/ThemeManager' import { useTheme } from '@utils/styles/ThemeManager'
import React, { Fragment, useEffect, useMemo, useState } from 'react' import React, { Fragment, useEffect, useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { Text, View } from 'react-native' import { Platform, Text, View } from 'react-native'
import { useSharedValue } from 'react-native-reanimated' import { useSharedValue } from 'react-native-reanimated'
import * as DropdownMenu from 'zeego/dropdown-menu' import * as DropdownMenu from 'zeego/dropdown-menu'
import AccountAttachments from './Attachments' import AccountAttachments from './Attachments'
@@ -110,19 +110,34 @@ const TabSharedAccount: React.FC<TabSharedStackScreenProps<'Tab-Shared-Account'>
</DropdownMenu.Item> </DropdownMenu.Item>
) )
case 'sub': case 'sub':
return ( if (Platform.OS === 'ios') {
// @ts-ignore return (
<DropdownMenu.Sub key={item.key}> // @ts-ignore
<DropdownMenu.SubTrigger <DropdownMenu.Sub key={item.key}>
key={item.trigger.key} <DropdownMenu.SubTrigger
{...item.trigger.props} key={item.trigger.key}
> {...item.trigger.props}
<DropdownMenu.ItemTitle children={item.trigger.title} /> >
{item.trigger.icon ? ( <DropdownMenu.ItemTitle children={item.trigger.title} />
<DropdownMenu.ItemIcon ios={{ name: item.trigger.icon }} /> {item.trigger.icon ? (
) : null} <DropdownMenu.ItemIcon ios={{ name: item.trigger.icon }} />
</DropdownMenu.SubTrigger> ) : null}
<DropdownMenu.SubContent> </DropdownMenu.SubTrigger>
<DropdownMenu.SubContent>
{item.items.map(sub => (
<DropdownMenu.Item key={sub.key} {...sub.props}>
<DropdownMenu.ItemTitle children={sub.title} />
{sub.icon ? (
<DropdownMenu.ItemIcon ios={{ name: sub.icon }} />
) : null}
</DropdownMenu.Item>
))}
</DropdownMenu.SubContent>
</DropdownMenu.Sub>
)
} else {
return (
<Fragment key={item.key}>
{item.items.map(sub => ( {item.items.map(sub => (
<DropdownMenu.Item key={sub.key} {...sub.props}> <DropdownMenu.Item key={sub.key} {...sub.props}>
<DropdownMenu.ItemTitle children={sub.title} /> <DropdownMenu.ItemTitle children={sub.title} />
@@ -131,9 +146,9 @@ const TabSharedAccount: React.FC<TabSharedStackScreenProps<'Tab-Shared-Account'>
) : null} ) : null}
</DropdownMenu.Item> </DropdownMenu.Item>
))} ))}
</DropdownMenu.SubContent> </Fragment>
</DropdownMenu.Sub> )
) }
} }
})} })}
</DropdownMenu.Group> </DropdownMenu.Group>