tooot/src/screens/Tabs/Shared/Hashtag.tsx

68 lines
2.3 KiB
TypeScript
Raw Normal View History

2023-01-26 23:07:13 +01:00
import menuHashtag from '@components/contextMenu/hashtag'
2024-02-07 00:22:22 +01:00
import { HeaderRight } from '@components/Header'
2021-02-08 23:47:20 +01:00
import Timeline from '@components/Timeline'
import { featureCheck } from '@utils/helpers/featureCheck'
2021-08-29 15:25:38 +02:00
import { TabSharedStackScreenProps } from '@utils/navigation/navigators'
2021-02-27 16:33:54 +01:00
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
2023-01-26 23:07:13 +01:00
import React, { Fragment, useEffect } from 'react'
import * as DropdownMenu from 'zeego/dropdown-menu'
2020-10-26 00:27:53 +01:00
2022-11-20 16:14:08 +01:00
const TabSharedHashtag: React.FC<TabSharedStackScreenProps<'Tab-Shared-Hashtag'>> = ({
navigation,
2020-10-26 00:27:53 +01:00
route: {
2023-01-26 23:07:13 +01:00
params: { tag_name }
2020-10-26 00:27:53 +01:00
}
2020-10-31 21:04:46 +01:00
}) => {
2023-01-26 23:07:13 +01:00
const queryKey: QueryKeyTimeline = ['Timeline', { page: 'Hashtag', tag_name }]
const canFollowTags = featureCheck('follow_tags')
const canFilterTag = featureCheck('filter_server_side')
const mHashtag = menuHashtag({ tag_name, queryKey })
2023-01-04 22:39:29 +01:00
2022-12-03 16:50:54 +01:00
useEffect(() => {
2023-01-04 22:39:29 +01:00
navigation.setParams({ queryKey: queryKey })
2022-12-03 16:50:54 +01:00
}, [])
2022-11-20 16:14:08 +01:00
useEffect(() => {
2023-01-26 23:07:13 +01:00
if (!canFollowTags && !canFilterTag) return
2022-11-20 16:14:08 +01:00
navigation.setOptions({
headerRight: () => (
2023-01-26 23:07:13 +01:00
<DropdownMenu.Root>
<DropdownMenu.Trigger>
<HeaderRight content='more-horizontal' onPress={() => {}} />
</DropdownMenu.Trigger>
<DropdownMenu.Content>
{[mHashtag].map((menu, i) => (
<Fragment key={i}>
{menu.map((group, index) => (
<DropdownMenu.Group key={index}>
{group.map(item => {
switch (item.type) {
case 'item':
return (
<DropdownMenu.Item key={item.key} {...item.props}>
<DropdownMenu.ItemTitle children={item.title} />
{item.icon ? (
<DropdownMenu.ItemIcon ios={{ name: item.icon }} />
) : null}
</DropdownMenu.Item>
)
}
})}
</DropdownMenu.Group>
))}
</Fragment>
))}
</DropdownMenu.Content>
</DropdownMenu.Root>
2022-11-20 16:14:08 +01:00
)
})
2023-01-26 23:07:13 +01:00
}, [mHashtag])
2022-11-20 16:14:08 +01:00
return <Timeline queryKey={queryKey} />
2020-10-26 00:27:53 +01:00
}
2020-10-31 21:04:46 +01:00
2021-01-30 01:29:15 +01:00
export default TabSharedHashtag