Home / File/ date-picker-rtl.tsx — ui Source File

date-picker-rtl.tsx — ui Source File

Architecture documentation for date-picker-rtl.tsx, a tsx file in the ui codebase. 9 imports, 0 dependents.

File tsx DocumentationAtlas SearchAPI 9 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  db20864e_bef6_1bab_8d09_31e685ca085a["date-picker-rtl.tsx"]
  1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2
  c79cdc74_50fb_62bd_465f_35936d2c5eac["button"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> c79cdc74_50fb_62bd_465f_35936d2c5eac
  d5e8c512_aeec_6ed6_0dbb_897351a21570["calendar"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> d5e8c512_aeec_6ed6_0dbb_897351a21570
  87fb7c41_26a3_e875_c5a2_2eab81f4d78b["popover"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> 87fb7c41_26a3_e875_c5a2_2eab81f4d78b
  f9e8c1ea_9de4_3e04_ca27_b15cada2e81e["date-fns"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> f9e8c1ea_9de4_3e04_ca27_b15cada2e81e
  624ff80e_666d_a588_16b8_606dd31a8786["locale"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> 624ff80e_666d_a588_16b8_606dd31a8786
  d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3
  dde83612_b728_e23b_d3a8_dccad8858873["locale"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> dde83612_b728_e23b_d3a8_dccad8858873
  2c1404ab_bf28_6225_f9a0_b9e29400c66c["language-selector"]
  db20864e_bef6_1bab_8d09_31e685ca085a --> 2c1404ab_bf28_6225_f9a0_b9e29400c66c
  style db20864e_bef6_1bab_8d09_31e685ca085a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"use client"

import * as React from "react"
import { Button } from "@/examples/radix/ui-rtl/button"
import { Calendar } from "@/examples/radix/ui-rtl/calendar"
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from "@/examples/radix/ui-rtl/popover"
import { format } from "date-fns"
import { arSA, he } from "date-fns/locale"
import { ChevronDownIcon } from "lucide-react"
import {
  arSA as arSADayPicker,
  he as heDayPicker,
} from "react-day-picker/locale"

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

const translations: Translations = {
  en: {
    dir: "ltr",
    values: {
      placeholder: "Pick a date",
    },
  },
  ar: {
    dir: "rtl",
    values: {
      placeholder: "اختر تاريخًا",
    },
  },
  he: {
    dir: "rtl",
    values: {
      placeholder: "בחר תאריך",
    },
  },
}

const dayPickerLocales = {
  ar: arSADayPicker,
  he: heDayPicker,
} as const

const dateFnsLocales = {
  ar: arSA,
  he: he,
} as const

export function DatePickerRtl() {
  const { dir, t, language } = useTranslation(translations, "ar")
  const [date, setDate] = React.useState<Date>()

  const dateFnsLocale =
    dir === "rtl"
      ? dateFnsLocales[language as keyof typeof dateFnsLocales]
      : undefined
  const dayPickerLocale =
    dir === "rtl"
      ? dayPickerLocales[language as keyof typeof dayPickerLocales]
      : undefined

  return (
    <Popover>
      <PopoverTrigger asChild>
        <Button
          variant="outline"
          data-empty={!date}
          className="data-[empty=true]:text-muted-foreground w-[212px] justify-between text-left font-normal"
          dir={dir}
        >
          {date ? (
            format(date, "PPP", { locale: dateFnsLocale })
          ) : (
            <span>{t.placeholder}</span>
          )}
          <ChevronDownIcon />
        </Button>
      </PopoverTrigger>
      <PopoverContent className="w-auto p-0" align="start" dir={dir}>
        <Calendar
          mode="single"
          selected={date}
          onSelect={setDate}
          defaultMonth={date}
          dir={dir}
          locale={dayPickerLocale}
        />
      </PopoverContent>
    </Popover>
  )
}

Subdomains

Functions

Dependencies

  • button
  • calendar
  • date-fns
  • language-selector
  • locale
  • locale
  • lucide-react
  • popover
  • react

Frequently Asked Questions

What does date-picker-rtl.tsx do?
date-picker-rtl.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, SearchAPI subdomain.
What functions are defined in date-picker-rtl.tsx?
date-picker-rtl.tsx defines 1 function(s): DatePickerRtl.
What does date-picker-rtl.tsx depend on?
date-picker-rtl.tsx imports 9 module(s): button, calendar, date-fns, language-selector, locale, locale, lucide-react, popover, and 1 more.
Where is date-picker-rtl.tsx in the architecture?
date-picker-rtl.tsx is located at apps/v4/examples/radix/date-picker-rtl.tsx (domain: DocumentationAtlas, subdomain: SearchAPI, 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