Skip to content

createMaterialBottomTabNavigator return type is anyΒ #4671

@Michota

Description

@Michota

Current behaviour

Using createMaterialBottomTabNavigator from "react-native-paper/react-navigation" returns fully functional Tab navigator, but with any type, making it impossible to work with using Typescript.

Expected behaviour

It should return something which will allow Intelisense to work as it should: e.g. it should instruct user to use <Tabs.Navigator> or to use component prop in <Tabs.Screen/>

How to reproduce?

import TabBarIcon from "@/src/components/TabBarIcon";
import { createMaterialBottomTabNavigator } from "react-native-paper/react-navigation";
import MessagesRoute from "./messages";
import Notifications from "./notifications";

const Tabs = createMaterialBottomTabNavigator();

export default function CommunicationLayout() {
  return (
    <Tabs.Navigator>
      <Tabs.Screen
        component={MessagesRoute}
        name="messages"
        options={{ title: "Messages", tabBarIcon: () => <TabBarIcon iconName="mail" /> }}
      />
      <Tabs.Screen
        component={Notifications}
        name="notifications"
        options={{ title: "Notifications", tabBarLabel: () => undefined }}
      />
    </Tabs.Navigator>
  );
}

Preview

Image

What have you tried so far?

There is no easy solution for that. I tried installing react-navigation and importing types, but it didn't help.

Your Environment

software version
ios x
android 13
react-native latest
react-native-paper latest
node 22.13.1
npm or yarn pnpm - latest
expo sdk 53

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions