Socket
Book a DemoInstallSign in
Socket

@rbxtsx/react-router

Package Overview
Dependencies
Maintainers
0
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rbxtsx/react-router

React Router implementation for Roblox TypeScript

1.0.3
latest
Source
npmnpm
Version published
Weekly downloads
5
25%
Maintainers
0
Weekly downloads
 
Created
Source

@rbxtsx/react-router

A React-like Router for Roblox with Transitions

Welcome! This is the official documentation for the @rbxtsx/react-router package. This package provides a routing solution for your Roblox experiences built with Roblox's TypeScript framework, RbxTs. It allows you to manage navigation between different UI components based on URL paths and includes support for animated transitions.

Author: Harihar Nautiyal

Installation:

npm install @rbxtsx/react-router

Features:

  • Navigation: Define routes and navigate between them using paths.
  • Route Matching: Match URLs to specific components based on path patterns.
  • Parameters: Capture dynamic segments in paths using colon syntax (:paramName).
  • Transitions: Apply smooth animations when switching between routes. You can choose from various built-in transition types or customize your own.
  • Context API: Access routing information like the current path and navigation function from any component in your application using useRouter and useParams hooks.

Getting Started:

  • Import the necessary components:
import { RouterProvider, Routes, Route, Link, useRouter, useParams } from "@rbxtsx/react-router";
  • Wrap your application with RouterProvider:

This component provides the context for routing and manages the current path. You can also set default transition properties here.

function App() {
  return (
    <RouterProvider transition="slide-left" transitionDuration={0.5}> {/* Default transition for all routes */}
      {/* Your application components here */}
    </RouterProvider>
  );
}
  • Define routes with Routes: This component acts as a container for your routes. You can also override the default transition properties from the RouterProvider.
<Routes transition="fade" transitionDuration={0.3}> {/* Overrides default transition for routes within */}
  <Route path="/" component={HomePage} />
  <Route path="/about" component={AboutPage} />
  <Route path="/products/:productId" component={ProductPage} />
</Routes>
  • Define individual routes with Route:
  • path: The URL pattern for this route.
  • component: The React component to render for this route.
  • transition (Optional): Overrides the parent Routes or RouterProvider transition.
  • transitionDuration (Optional): Overrides the parent Routes or RouterProvider transition duration.
  • Create links with Link:

This component allows users to navigate between routes.

<Link to="/">Home</Link>
<Link to="/about">About</Link>
  • Access route information:
  • useRouter hook: Returns the current routing context object.
  • useParams hook: Returns a map of captured parameters from the current route.

Transitions:

The @rbxtsx/react-router package provides several built-in transition types:

  • fade: Fades the new component in and the old component out.
  • slide-left: Slides the new component in from the left and the old component out to the left.
  • slide-right: Slides the new component in from the right and the old component out to the right.
  • slide-up: Slides the new component in from the bottom and the old component out to the bottom.
  • slide-down: Slides the new component in from the top and the old component out to the top.

You can set the transition type and duration on the RouterProvider, Routes, or individual Route components. The order of precedence is Route > Routes > RouterProvider.

Example with Transitions:

function App() {
  return (
    <RouterProvider transition="fade" transitionDuration={0.5}>
      <nav>
        <Link to="/">Home</Link>
        <Link to="/about">About</Link>
        <Link to="/products/123">Product 123</Link>
      </nav>
      <Routes>
        <Route path="/" component={HomePage} />
        <Route path="/about" component={AboutPage} transition="slide-right" /> {/* Overrides default to slide-right */}
        <Route path="/products/:productId" component={ProductPage} />
      </Routes>
    </RouterProvider>
  );
}
// ... (HomePage, AboutPage, ProductPage components remain the same)

In this example:

  • All routes will initially have a fade transition with a duration of 0.5 seconds.
  • The /about route will override this to use a slide-right transition, while keeping the 0.5-second duration.

Additional Notes:

  • This package utilizes Roblox-specific components like frame, textbutton, and TweenService. Ensure you're familiar with these components for proper usage within Roblox.

Keywords

roblox-ts

FAQs

Package last updated on 22 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.