@sqlrooms/s3-browser 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/S3FileBrowser.d.ts +47 -3
- package/dist/S3FileBrowser.d.ts.map +1 -1
- package/dist/S3FileBrowser.js +45 -0
- package/package.json +15 -5
- package/CHANGELOG.md +0 -14
package/dist/S3FileBrowser.d.ts
CHANGED
|
@@ -1,13 +1,57 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { S3FileOrDirectory } from './S3FileOrDirectory';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* A file browser component for navigating and selecting files from an S3-like storage.
|
|
5
|
+
*
|
|
6
|
+
* This component provides a familiar file explorer interface with features like:
|
|
7
|
+
* - Directory navigation with breadcrumbs
|
|
8
|
+
* - File and directory listing
|
|
9
|
+
* - Multiple file selection
|
|
10
|
+
* - File metadata display (size, type, last modified)
|
|
11
|
+
*
|
|
12
|
+
* 
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const [selectedFiles, setSelectedFiles] = useState<string[]>([]);
|
|
17
|
+
* const [selectedDirectory, setSelectedDirectory] = useState('');
|
|
18
|
+
*
|
|
19
|
+
* return (
|
|
20
|
+
* <S3FileBrowser
|
|
21
|
+
* files={[
|
|
22
|
+
* { key: 'documents', isDirectory: true },
|
|
23
|
+
* {
|
|
24
|
+
* key: 'example.txt',
|
|
25
|
+
* isDirectory: false,
|
|
26
|
+
* size: 1024,
|
|
27
|
+
* contentType: 'text/plain',
|
|
28
|
+
* lastModified: new Date()
|
|
29
|
+
* }
|
|
30
|
+
* ]}
|
|
31
|
+
* selectedFiles={selectedFiles}
|
|
32
|
+
* selectedDirectory={selectedDirectory}
|
|
33
|
+
* onCanConfirmChange={(canConfirm) => console.log('Can confirm:', canConfirm)}
|
|
34
|
+
* onChangeSelectedDirectory={setSelectedDirectory}
|
|
35
|
+
* onChangeSelectedFiles={setSelectedFiles}
|
|
36
|
+
* />
|
|
37
|
+
* );
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @param props - The component props
|
|
41
|
+
* @param props.files - Array of files and directories to display
|
|
42
|
+
* @param props.selectedFiles - Array of currently selected file keys
|
|
43
|
+
* @param props.selectedDirectory - Current directory path (empty string for root)
|
|
44
|
+
* @param props.onCanConfirmChange - Callback fired when selection state changes
|
|
45
|
+
* @param props.onChangeSelectedDirectory - Callback fired when directory navigation occurs
|
|
46
|
+
* @param props.onChangeSelectedFiles - Callback fired when file selection changes
|
|
47
|
+
*/
|
|
48
|
+
declare const S3FileBrowser: FC<{
|
|
4
49
|
files?: S3FileOrDirectory[];
|
|
5
50
|
selectedFiles: string[];
|
|
6
51
|
selectedDirectory: string;
|
|
7
52
|
onCanConfirmChange: (canConfirm: boolean) => void;
|
|
8
53
|
onChangeSelectedDirectory: (directory: string) => void;
|
|
9
54
|
onChangeSelectedFiles: (files: string[]) => void;
|
|
10
|
-
}
|
|
11
|
-
declare const S3FileBrowser: FC<Props>;
|
|
55
|
+
}>;
|
|
12
56
|
export default S3FileBrowser;
|
|
13
57
|
//# sourceMappingURL=S3FileBrowser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3FileBrowser.d.ts","sourceRoot":"","sources":["../src/S3FileBrowser.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAC,EAAE,EAAkC,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"S3FileBrowser.d.ts","sourceRoot":"","sources":["../src/S3FileBrowser.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAC,EAAE,EAAkC,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAClD,CA2LA,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
package/dist/S3FileBrowser.js
CHANGED
|
@@ -3,6 +3,51 @@ import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbS
|
|
|
3
3
|
import { Undo2Icon, FolderIcon } from 'lucide-react';
|
|
4
4
|
import { formatBytes, formatTimeRelative } from '@sqlrooms/utils';
|
|
5
5
|
import { useCallback, useEffect, useMemo } from 'react';
|
|
6
|
+
/**
|
|
7
|
+
* A file browser component for navigating and selecting files from an S3-like storage.
|
|
8
|
+
*
|
|
9
|
+
* This component provides a familiar file explorer interface with features like:
|
|
10
|
+
* - Directory navigation with breadcrumbs
|
|
11
|
+
* - File and directory listing
|
|
12
|
+
* - Multiple file selection
|
|
13
|
+
* - File metadata display (size, type, last modified)
|
|
14
|
+
*
|
|
15
|
+
* 
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const [selectedFiles, setSelectedFiles] = useState<string[]>([]);
|
|
20
|
+
* const [selectedDirectory, setSelectedDirectory] = useState('');
|
|
21
|
+
*
|
|
22
|
+
* return (
|
|
23
|
+
* <S3FileBrowser
|
|
24
|
+
* files={[
|
|
25
|
+
* { key: 'documents', isDirectory: true },
|
|
26
|
+
* {
|
|
27
|
+
* key: 'example.txt',
|
|
28
|
+
* isDirectory: false,
|
|
29
|
+
* size: 1024,
|
|
30
|
+
* contentType: 'text/plain',
|
|
31
|
+
* lastModified: new Date()
|
|
32
|
+
* }
|
|
33
|
+
* ]}
|
|
34
|
+
* selectedFiles={selectedFiles}
|
|
35
|
+
* selectedDirectory={selectedDirectory}
|
|
36
|
+
* onCanConfirmChange={(canConfirm) => console.log('Can confirm:', canConfirm)}
|
|
37
|
+
* onChangeSelectedDirectory={setSelectedDirectory}
|
|
38
|
+
* onChangeSelectedFiles={setSelectedFiles}
|
|
39
|
+
* />
|
|
40
|
+
* );
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @param props - The component props
|
|
44
|
+
* @param props.files - Array of files and directories to display
|
|
45
|
+
* @param props.selectedFiles - Array of currently selected file keys
|
|
46
|
+
* @param props.selectedDirectory - Current directory path (empty string for root)
|
|
47
|
+
* @param props.onCanConfirmChange - Callback fired when selection state changes
|
|
48
|
+
* @param props.onChangeSelectedDirectory - Callback fired when directory navigation occurs
|
|
49
|
+
* @param props.onChangeSelectedFiles - Callback fired when file selection changes
|
|
50
|
+
*/
|
|
6
51
|
const S3FileBrowser = (props) => {
|
|
7
52
|
const { files, selectedDirectory, selectedFiles, onCanConfirmChange, onChangeSelectedFiles, onChangeSelectedDirectory, } = props;
|
|
8
53
|
useEffect(() => {
|
package/package.json
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sqlrooms/s3-browser",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"module": "dist/index.js",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"private": false,
|
|
9
|
+
"author": "Ilya Boyandin <ilya@boyandin.me>",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/sqlrooms/sqlrooms.git"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
9
18
|
"publishConfig": {
|
|
10
19
|
"access": "public"
|
|
11
20
|
},
|
|
12
21
|
"dependencies": {
|
|
13
22
|
"@aws-sdk/client-s3": "^3.726.1",
|
|
14
|
-
"@sqlrooms/ui": "0.0.
|
|
15
|
-
"@sqlrooms/utils": "0.0.
|
|
23
|
+
"@sqlrooms/ui": "0.0.3",
|
|
24
|
+
"@sqlrooms/utils": "0.0.3",
|
|
16
25
|
"lucide-react": "^0.473.0",
|
|
17
26
|
"zod": "^3.24.1"
|
|
18
27
|
},
|
|
@@ -22,7 +31,8 @@
|
|
|
22
31
|
"scripts": {
|
|
23
32
|
"dev": "tsc -w",
|
|
24
33
|
"build": "tsc",
|
|
25
|
-
"lint": "eslint ."
|
|
34
|
+
"lint": "eslint .",
|
|
35
|
+
"typedoc": "typedoc"
|
|
26
36
|
},
|
|
27
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "4269a3efdb5a903cb2498c126e9c36683b3bbae0"
|
|
28
38
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
## [0.0.1](https://github.com/ilyabo/sqlrooms/compare/v0.0.1-alpha.0...v0.0.1) (2025-01-30)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @sqlrooms/s3-browser
|
|
9
|
-
|
|
10
|
-
## 0.0.1-alpha.0 (2025-01-30)
|
|
11
|
-
|
|
12
|
-
**Note:** Version bump only for package @sqlrooms/s3-browser
|
|
13
|
-
|
|
14
|
-
**Note:** Version bump only for package @sqlrooms/s3-browser
|