({ file: { depth, name }, onClick, selected, unsavedChanges = false }: FileProps)
| 187 | } |
| 188 | |
| 189 | function File({ file: { depth, name }, onClick, selected, unsavedChanges = false }: FileProps) { |
| 190 | return ( |
| 191 | <NodeButton |
| 192 | className={classNames('group', { |
| 193 | 'bg-transparent hover:bg-bolt-elements-item-backgroundActive text-bolt-elements-item-contentDefault': !selected, |
| 194 | 'bg-bolt-elements-item-backgroundAccent text-bolt-elements-item-contentAccent': selected, |
| 195 | })} |
| 196 | depth={depth} |
| 197 | iconClasses={classNames('i-ph:file-duotone scale-98', { |
| 198 | 'group-hover:text-bolt-elements-item-contentActive': !selected, |
| 199 | })} |
| 200 | onClick={onClick} |
| 201 | > |
| 202 | <div |
| 203 | className={classNames('flex items-center', { |
| 204 | 'group-hover:text-bolt-elements-item-contentActive': !selected, |
| 205 | })} |
| 206 | > |
| 207 | <div className="flex-1 truncate pr-2">{name}</div> |
| 208 | {unsavedChanges && <span className="i-ph:circle-fill scale-68 shrink-0 text-orange-500" />} |
| 209 | </div> |
| 210 | </NodeButton> |
| 211 | ); |
| 212 | } |
| 213 | |
| 214 | interface ButtonProps { |
| 215 | depth: number; |
nothing calls this directly
no test coverage detected