Skip to content

@sqlrooms/s3-browser / S3FileBrowser

Variable: S3FileBrowser

const S3FileBrowser: FC<{ files?: S3FileOrDirectory[]; selectedFiles: string[]; selectedDirectory: string; onCanConfirmChange: (canConfirm) => void; onChangeSelectedDirectory: (directory) => void; onChangeSelectedFiles: (files) => void; renderFileActions?: () => React.ReactNode; }>

A file browser component for navigating and selecting files from an S3-like storage.

This component provides a familiar file explorer interface with features like:

  • Directory navigation with breadcrumbs
  • File and directory listing
  • Multiple file selection
  • File metadata display (size, type, last modified)

S3 File Browser Interface

Example

tsx
const [selectedFiles, setSelectedFiles] = useState<string[]>([]);
const [selectedDirectory, setSelectedDirectory] = useState('');

return (
  <S3FileBrowser
    files={[
      { key: 'documents', isDirectory: true },
      {
        key: 'example.txt',
        isDirectory: false,
        size: 1024,
        contentType: 'text/plain',
        lastModified: new Date()
      }
    ]}
    selectedFiles={selectedFiles}
    selectedDirectory={selectedDirectory}
    onCanConfirmChange={(canConfirm) => console.log('Can confirm:', canConfirm)}
    onChangeSelectedDirectory={setSelectedDirectory}
    onChangeSelectedFiles={setSelectedFiles}
  />
);

Param

The component props

Param

Array of files and directories to display

Param

Array of currently selected file keys

Param

Current directory path (empty string for root)

Param

Callback fired when selection state changes

Param

Callback fired when directory navigation occurs

Param

Callback fired when file selection changes