Home / File/ use-search-registry.ts — ui Source File

use-search-registry.ts — ui Source File

Architecture documentation for use-search-registry.ts, a typescript file in the ui codebase. 2 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  d1366928_803e_21f1_c52e_dc3a4d4c6a37["use-search-registry.ts"]
  a30246d1_8776_d902_eeea_a64635ec3cc6["nuqs"]
  d1366928_803e_21f1_c52e_dc3a4d4c6a37 --> a30246d1_8776_d902_eeea_a64635ec3cc6
  3da222af_82f8_70c2_55f5_748b08929a10["directory.json"]
  d1366928_803e_21f1_c52e_dc3a4d4c6a37 --> 3da222af_82f8_70c2_55f5_748b08929a10
  style d1366928_803e_21f1_c52e_dc3a4d4c6a37 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { debounce, useQueryState } from "nuqs"

import globalRegistries from "@/registry/directory.json"

const normalizeQuery = (query: string) =>
  query.toLowerCase().replaceAll(" ", "").replaceAll("@", "")

function finderFn<T extends (typeof globalRegistries)[0]>(
  registry: T,
  query: string
) {
  const normalizedName = normalizeQuery(registry.name)
  const normalizedDecription = normalizeQuery(registry.description)
  const normalizedQuery = normalizeQuery(query)

  return (
    normalizedName.includes(normalizedQuery) ||
    normalizedDecription.includes(normalizedQuery)
  )
}

const searchDirectory = (query: string | null) => {
  if (!query) return globalRegistries

  return globalRegistries.filter((registry) => finderFn(registry, query))
}

export const useSearchRegistry = () => {
  const [query, setQuery] = useQueryState("q", {
    defaultValue: "",
    limitUrlUpdates: debounce(250),
  })

  return {
    query,
    registries: searchDirectory(query),
    setQuery,
  }
}

Subdomains

Dependencies

  • directory.json
  • nuqs

Frequently Asked Questions

What does use-search-registry.ts do?
use-search-registry.ts is a source file in the ui codebase, written in typescript. It belongs to the DocumentationAtlas domain, SearchAPI subdomain.
What functions are defined in use-search-registry.ts?
use-search-registry.ts defines 4 function(s): finderFn, normalizeQuery, searchDirectory, useSearchRegistry.
What does use-search-registry.ts depend on?
use-search-registry.ts imports 2 module(s): directory.json, nuqs.
Where is use-search-registry.ts in the architecture?
use-search-registry.ts is located at apps/v4/hooks/use-search-registry.ts (domain: DocumentationAtlas, subdomain: SearchAPI, directory: apps/v4/hooks).

Analyze Your Own Codebase

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

Try Supermodel Free