Home / File/ pagination-rtl.tsx — ui Source File

pagination-rtl.tsx — ui Source File

Architecture documentation for pagination-rtl.tsx, a tsx file in the ui codebase. 3 imports, 0 dependents.

File tsx DocumentationAtlas Changelog 3 imports 2 functions

Entity Profile

Dependency Diagram

graph LR
  cb490df3_4e21_9c34_eac8_e1dee5541503["pagination-rtl.tsx"]
  1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"]
  cb490df3_4e21_9c34_eac8_e1dee5541503 --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2
  84d2f9f8_e70a_810e_f165_4627da20ae09["pagination"]
  cb490df3_4e21_9c34_eac8_e1dee5541503 --> 84d2f9f8_e70a_810e_f165_4627da20ae09
  2c1404ab_bf28_6225_f9a0_b9e29400c66c["language-selector"]
  cb490df3_4e21_9c34_eac8_e1dee5541503 --> 2c1404ab_bf28_6225_f9a0_b9e29400c66c
  style cb490df3_4e21_9c34_eac8_e1dee5541503 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"use client"

import * as React from "react"
import {
  Pagination,
  PaginationContent,
  PaginationEllipsis,
  PaginationItem,
  PaginationLink,
  PaginationNext,
  PaginationPrevious,
} from "@/examples/radix/ui-rtl/pagination"

import {
  useTranslation,
  type Translations,
} from "@/components/language-selector"

const translations: Translations = {
  en: {
    dir: "ltr",
    values: {
      previous: "Previous",
      next: "Next",
    },
  },
  ar: {
    dir: "rtl",
    values: {
      previous: "السابق",
      next: "التالي",
    },
  },
  he: {
    dir: "rtl",
    values: {
      previous: "הקודם",
      next: "הבא",
    },
  },
}

function toArabicNumerals(num: number): string {
  const arabicNumerals = ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"]
  return num
    .toString()
    .split("")
    .map((digit) => arabicNumerals[parseInt(digit, 10)])
    .join("")
}

export function PaginationRtl() {
  const { dir, t, language } = useTranslation(translations, "ar")

  const formatNumber = (num: number): string => {
    if (language === "ar") {
      return toArabicNumerals(num)
    }
    return num.toString()
  }

  return (
    <Pagination dir={dir}>
      <PaginationContent>
        <PaginationItem>
          <PaginationPrevious href="#" text={t.previous} />
        </PaginationItem>
        <PaginationItem>
          <PaginationLink href="#">{formatNumber(1)}</PaginationLink>
        </PaginationItem>
        <PaginationItem>
          <PaginationLink href="#" isActive>
            {formatNumber(2)}
          </PaginationLink>
        </PaginationItem>
        <PaginationItem>
          <PaginationLink href="#">{formatNumber(3)}</PaginationLink>
        </PaginationItem>
        <PaginationItem>
          <PaginationEllipsis />
        </PaginationItem>
        <PaginationItem>
          <PaginationNext href="#" text={t.next} />
        </PaginationItem>
      </PaginationContent>
    </Pagination>
  )
}

Subdomains

Dependencies

  • language-selector
  • pagination
  • react

Frequently Asked Questions

What does pagination-rtl.tsx do?
pagination-rtl.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, Changelog subdomain.
What functions are defined in pagination-rtl.tsx?
pagination-rtl.tsx defines 2 function(s): PaginationRtl, toArabicNumerals.
What does pagination-rtl.tsx depend on?
pagination-rtl.tsx imports 3 module(s): language-selector, pagination, react.
Where is pagination-rtl.tsx in the architecture?
pagination-rtl.tsx is located at apps/v4/examples/radix/pagination-rtl.tsx (domain: DocumentationAtlas, subdomain: Changelog, directory: apps/v4/examples/radix).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free