'use client' type MaterialDetailAction = | 'favorite' | 'share' | 'edit' | 'delete' | null export type MaterialDetailCapabilities = { canFavorite: boolean canEdit: boolean canDelete: boolean } type MaterialDetailHeaderProps = { title: string materialType: string materialId: string isFavorited: boolean capabilities: MaterialDetailCapabilities busyAction?: MaterialDetailAction onBack: () => void onFavorite: () => void onShare: () => void onEdit: () => void onDelete: () => void } type ActionButtonProps = { label: string title?: string danger?: boolean pressed?: boolean disabled?: boolean onClick: () => void children: React.ReactNode } function ActionButton({ label, title = label, danger = false, pressed, disabled = false, onClick, children, }: ActionButtonProps) { return ( ) } export default function MaterialDetailHeader({ title, materialType, materialId, isFavorited, capabilities, busyAction = null, onBack, onFavorite, onShare, onEdit, onDelete, }: MaterialDetailHeaderProps) { const controlsDisabled = busyAction !== null return (

{title}

{materialType} ID {materialId}

{capabilities.canFavorite && ( )} {capabilities.canEdit && ( )} {capabilities.canDelete && ( )}
) }