mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
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.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { useEffect, Fragment, FocusEvent, KeyboardEvent, MouseEvent } from 'react';
|
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 { Home, ArrowLeft, Pencil, ArrowRight } from 'lucide-react';
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
import { Input } from '@/components/ui/input';
|
import { Input } from '@/components/ui/input';
|
||||||
@@ -168,6 +168,8 @@ function PathInput({
|
|||||||
[isEditing]
|
[isEditing]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const breadcrumbs = useMemo(() => parseBreadcrumbs(currentPath), [currentPath]);
|
||||||
|
|
||||||
const showBreadcrumbs = currentPath && !isEditing && !loading && !error;
|
const showBreadcrumbs = currentPath && !isEditing && !loading && !error;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -217,7 +219,7 @@ function PathInput({
|
|||||||
<>
|
<>
|
||||||
<Breadcrumb className="flex-1 min-w-0 overflow-hidden">
|
<Breadcrumb className="flex-1 min-w-0 overflow-hidden">
|
||||||
<BreadcrumbList className="flex-nowrap overflow-x-auto scrollbar-none">
|
<BreadcrumbList className="flex-nowrap overflow-x-auto scrollbar-none">
|
||||||
{parseBreadcrumbs(currentPath).map((crumb) => (
|
{breadcrumbs.map((crumb) => (
|
||||||
<Fragment key={crumb.path}>
|
<Fragment key={crumb.path}>
|
||||||
<BreadcrumbItem className="shrink-0">
|
<BreadcrumbItem className="shrink-0">
|
||||||
{crumb.isLast ? (
|
{crumb.isLast ? (
|
||||||
|
|||||||
Reference in New Issue
Block a user