From 9dee9fb3661fdf49e516ece56efa2a00bb8f218e Mon Sep 17 00:00:00 2001 From: Illia Filippov Date: Wed, 24 Dec 2025 19:49:02 +0100 Subject: [PATCH] refactor: optimize breadcrumb parsing in PathInput component - Introduced useMemo for breadcrumb parsing to enhance performance. - Updated breadcrumb rendering to utilize memoized values for improved efficiency. --- apps/ui/src/components/ui/path-input.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/ui/src/components/ui/path-input.tsx b/apps/ui/src/components/ui/path-input.tsx index 77a2c821..49f67505 100644 --- a/apps/ui/src/components/ui/path-input.tsx +++ b/apps/ui/src/components/ui/path-input.tsx @@ -1,5 +1,5 @@ import { useEffect, Fragment, FocusEvent, KeyboardEvent, MouseEvent } from 'react'; -import { useState, useRef, useCallback } from 'react'; +import { useState, useRef, useCallback, useMemo } from 'react'; import { Home, ArrowLeft, Pencil, ArrowRight } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; @@ -168,6 +168,8 @@ function PathInput({ [isEditing] ); + const breadcrumbs = useMemo(() => parseBreadcrumbs(currentPath), [currentPath]); + const showBreadcrumbs = currentPath && !isEditing && !loading && !error; return ( @@ -217,7 +219,7 @@ function PathInput({ <> - {parseBreadcrumbs(currentPath).map((crumb) => ( + {breadcrumbs.map((crumb) => ( {crumb.isLast ? (