import Icon from '@components/Icon' import { displayMessage } from '@components/Message' import Timeline from '@components/Timeline' import { NativeStackScreenProps } from '@react-navigation/native-stack' import { useQueryClient } from '@tanstack/react-query' import { TabMeStackParamList } from '@utils/navigation/navigators' import { QueryKeyLists, useListsMutation } from '@utils/queryHooks/lists' import { QueryKeyTimeline } from '@utils/queryHooks/timeline' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { useEffect } from 'react' import { useTranslation } from 'react-i18next' import * as DropdownMenu from 'zeego/dropdown-menu' import { menuListAccounts, menuListDelete, menuListEdit } from './menus' const TabMeList: React.FC> = ({ navigation, route: { key, params: { list } } }) => { const { colors } = useTheme() const { t } = useTranslation(['common', 'screenTabs']) const queryKey: QueryKeyTimeline = ['Timeline', { page: 'List', list: list.id }] const queryKeyLists: QueryKeyLists = ['Lists'] const queryClient = useQueryClient() const mutation = useListsMutation({ onSuccess: () => { queryClient.refetchQueries(queryKeyLists) navigation.pop(1) }, onError: () => { displayMessage({ type: 'danger', message: t('common:message.error.message', { function: t('screenTabs:me.listDelete.heading') }) }) } }) useEffect(() => { const listAccounts = menuListAccounts({ list }) const listEdit = menuListEdit({ list, key }) const listDelete = menuListDelete({ list, mutation }) navigation.setOptions({ headerRight: () => ( {[listAccounts, listEdit, listDelete].map((menu, index) => ( ))} ) }) navigation.setParams({ queryKey }) }, [list]) return } export default TabMeList