'use client';
import { ChevronDown, ChevronRight } from 'lucide-react';
import { memo } from 'react';
import { cn } from '@djangocfg/ui-core/lib';
import { useTreeContext } from '../context/TreeContext';
export interface TreeChevronProps {
isExpanded: boolean;
isFolder: boolean;
className?: string;
}
/**
* TreeChevron — expand/collapse chevron for a tree row.
*
* Memoised: re-renders only when `isExpanded`, `isFolder` or `className`
* change. Reads appearance from context.
*/
function TreeChevronRaw({ isExpanded, isFolder, className }: TreeChevronProps) {
const { appearance } = useTreeContext();
const size = { width: 'var(--tree-icon-size)', height: 'var(--tree-icon-size)' };
if (!isFolder) {
return (
);
}
const Icon = isExpanded ? ChevronDown : ChevronRight;
return (
);
}
export const TreeChevron = memo(TreeChevronRaw);