@noya-app/noya-file-explorer 0.0.14 → 0.0.15
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/.eslintrc.js +1 -5
- package/.turbo/turbo-build.log +11 -11
- package/CHANGELOG.md +11 -0
- package/dist/index.css +43 -25
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +23 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
- package/src/MediaCollection.tsx +14 -4
- package/src/formatByteSize.ts +8 -0
- package/src/index.ts +1 -0
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ import React, { ReactNode } from 'react';
|
|
|
5
5
|
import * as tree_visit_lib_types from 'tree-visit/lib/types';
|
|
6
6
|
import * as tree_visit from 'tree-visit';
|
|
7
7
|
|
|
8
|
+
declare function formatByteSize(size: number): string;
|
|
9
|
+
|
|
8
10
|
declare const createMediaFolder: (folder?: Omit<FolderMediaItem, "kind" | "id">) => FolderMediaItem;
|
|
9
11
|
declare const createMediaAsset: (asset: Omit<AssetMediaItem, "kind" | "id">) => AssetMediaItem;
|
|
10
12
|
declare const createMediaFile: (file: Omit<FileMediaItem, "kind" | "id">) => FileMediaItem;
|
|
@@ -35172,6 +35174,6 @@ declare const MediaCollection: React.MemoExoticComponent<React.ForwardRefExoticC
|
|
|
35172
35174
|
id: string;
|
|
35173
35175
|
kind: "file";
|
|
35174
35176
|
encoding: "utf-8" | "base64";
|
|
35175
|
-
}, MenuAction>, "size" | "scrollable" | "renderEmptyState" | "sharedDragProps" | "expandable" | "sortableId" | "renamable"> & React.RefAttributes<MediaCollectionRef>>>;
|
|
35177
|
+
}, MenuAction>, "size" | "scrollable" | "renderEmptyState" | "sharedDragProps" | "expandable" | "sortableId" | "renamable" | "onClickItem"> & React.RefAttributes<MediaCollectionRef>>>;
|
|
35176
35178
|
|
|
35177
|
-
export { type ExpandedMap, type FileKindFilter, type GetVisibleItemsOptions, MediaCollection, type MediaCollectionRef, type MediaItemTree, PLACEHOLDER_ITEM_NAME, basenameValidator, createMediaAsset, createMediaFile, createMediaFolder, createMediaItem, createMediaItemTree, deleteMediaItems, getDepthMap, getParentDirectories, getVisibleItems, moveMediaInsideFolder, movePathsIntoTarget, moveUpAFolder, renameMediaItemAndDescendantPaths, rootMediaItem, rootMediaItemName, rootMediaItemPath, updateExpandedMap, validateMediaItemRename };
|
|
35179
|
+
export { type ExpandedMap, type FileKindFilter, type GetVisibleItemsOptions, MediaCollection, type MediaCollectionRef, type MediaItemTree, PLACEHOLDER_ITEM_NAME, basenameValidator, createMediaAsset, createMediaFile, createMediaFolder, createMediaItem, createMediaItemTree, deleteMediaItems, formatByteSize, getDepthMap, getParentDirectories, getVisibleItems, moveMediaInsideFolder, movePathsIntoTarget, moveUpAFolder, renameMediaItemAndDescendantPaths, rootMediaItem, rootMediaItemName, rootMediaItemPath, updateExpandedMap, validateMediaItemRename };
|
package/dist/index.js
CHANGED
|
@@ -1118,6 +1118,7 @@ __export(src_exports, {
|
|
|
1118
1118
|
createMediaItem: () => createMediaItem,
|
|
1119
1119
|
createMediaItemTree: () => createMediaItemTree,
|
|
1120
1120
|
deleteMediaItems: () => deleteMediaItems,
|
|
1121
|
+
formatByteSize: () => formatByteSize,
|
|
1121
1122
|
getDepthMap: () => getDepthMap,
|
|
1122
1123
|
getParentDirectories: () => getParentDirectories,
|
|
1123
1124
|
getVisibleItems: () => getVisibleItems,
|
|
@@ -1133,6 +1134,15 @@ __export(src_exports, {
|
|
|
1133
1134
|
});
|
|
1134
1135
|
module.exports = __toCommonJS(src_exports);
|
|
1135
1136
|
|
|
1137
|
+
// src/formatByteSize.ts
|
|
1138
|
+
var byteSizeUnits = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
1139
|
+
function formatByteSize(size) {
|
|
1140
|
+
const unitIndex = Math.floor(Math.log(size) / Math.log(1024));
|
|
1141
|
+
const unit = byteSizeUnits[unitIndex];
|
|
1142
|
+
const value = size / Math.pow(1024, unitIndex);
|
|
1143
|
+
return `${value.toFixed(1)} ${unit}`;
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1136
1146
|
// src/MediaCollection.tsx
|
|
1137
1147
|
var import_noya_designsystem = require("@noya-app/noya-designsystem");
|
|
1138
1148
|
var import_noya_icons = require("@noya-app/noya-icons");
|
|
@@ -1529,7 +1539,8 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
1529
1539
|
scrollable = false,
|
|
1530
1540
|
sortable = false,
|
|
1531
1541
|
renderEmptyState,
|
|
1532
|
-
sharedDragProps
|
|
1542
|
+
sharedDragProps,
|
|
1543
|
+
onClickItem
|
|
1533
1544
|
}, ref) {
|
|
1534
1545
|
const setMedia = (0, import_react.useCallback)(
|
|
1535
1546
|
(...args) => {
|
|
@@ -1618,7 +1629,7 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
1618
1629
|
setExpandedMap(initialExpanded);
|
|
1619
1630
|
}
|
|
1620
1631
|
}, [initialExpanded]);
|
|
1621
|
-
const
|
|
1632
|
+
const getExpanded = (0, import_react.useCallback)(
|
|
1622
1633
|
(item) => {
|
|
1623
1634
|
if (!expandable) return void 0;
|
|
1624
1635
|
if (item.kind !== "folder") return void 0;
|
|
@@ -1716,6 +1727,7 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
1716
1727
|
},
|
|
1717
1728
|
[media, tree, setMedia]
|
|
1718
1729
|
);
|
|
1730
|
+
const [isUploading, setIsUploading] = (0, import_react.useState)(false);
|
|
1719
1731
|
const handleUpload = (0, import_react.useCallback)(
|
|
1720
1732
|
async (selectedId) => {
|
|
1721
1733
|
try {
|
|
@@ -1731,6 +1743,7 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
1731
1743
|
asset: createMediaAsset({ assetId: asset.id })
|
|
1732
1744
|
};
|
|
1733
1745
|
});
|
|
1746
|
+
setIsUploading(true);
|
|
1734
1747
|
const newMediaMap = await Promise.all(uploadPromises);
|
|
1735
1748
|
setMedia(
|
|
1736
1749
|
{ name: "Add media items", timestamp: Date.now() },
|
|
@@ -1743,6 +1756,8 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
1743
1756
|
);
|
|
1744
1757
|
} catch (error) {
|
|
1745
1758
|
console.error("Failed to upload files:", error);
|
|
1759
|
+
} finally {
|
|
1760
|
+
setIsUploading(false);
|
|
1746
1761
|
}
|
|
1747
1762
|
},
|
|
1748
1763
|
[tree.idToPathMap, setMedia, media, assetManager]
|
|
@@ -1981,7 +1996,8 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
1981
1996
|
import_noya_designsystem.FileExplorerUploadButton,
|
|
1982
1997
|
{
|
|
1983
1998
|
showUploadButton,
|
|
1984
|
-
onUpload: () => handleUpload(rootMediaItem.id)
|
|
1999
|
+
onUpload: () => handleUpload(rootMediaItem.id),
|
|
2000
|
+
isUploading
|
|
1985
2001
|
},
|
|
1986
2002
|
right
|
|
1987
2003
|
),
|
|
@@ -2015,7 +2031,7 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
2015
2031
|
return "Enter file name";
|
|
2016
2032
|
}
|
|
2017
2033
|
},
|
|
2018
|
-
getExpanded
|
|
2034
|
+
getExpanded,
|
|
2019
2035
|
setExpanded: handleSetExpanded,
|
|
2020
2036
|
getRenamable: (item) => {
|
|
2021
2037
|
if (item.id === rootMediaItem.id) return false;
|
|
@@ -2025,6 +2041,7 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
2025
2041
|
menuItems: assetContextMenuItems,
|
|
2026
2042
|
onSelectMenuItem: handleMenuAction,
|
|
2027
2043
|
onSelectionChange: setSelectedIds,
|
|
2044
|
+
onClickItem,
|
|
2028
2045
|
onDoubleClickItem,
|
|
2029
2046
|
onRename,
|
|
2030
2047
|
renamable,
|
|
@@ -2041,7 +2058,7 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
2041
2058
|
if (file.kind !== "asset") return null;
|
|
2042
2059
|
const asset = assets.find((a) => a.id === file.assetId);
|
|
2043
2060
|
if (!asset) return null;
|
|
2044
|
-
return /* @__PURE__ */ import_react2.default.createElement(import_noya_designsystem.FileExplorerDetail, { selected, size }, (asset.size
|
|
2061
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_noya_designsystem.FileExplorerDetail, { selected, size }, formatByteSize(asset.size));
|
|
2045
2062
|
},
|
|
2046
2063
|
renderEmptyState: () => renderEmptyState?.() ?? /* @__PURE__ */ import_react2.default.createElement(import_noya_designsystem.FileExplorerEmptyState, null),
|
|
2047
2064
|
itemRoleDescription: "clickable file item",
|
|
@@ -2137,6 +2154,7 @@ var MediaCollection = (0, import_react.memo)(
|
|
|
2137
2154
|
createMediaItem,
|
|
2138
2155
|
createMediaItemTree,
|
|
2139
2156
|
deleteMediaItems,
|
|
2157
|
+
formatByteSize,
|
|
2140
2158
|
getDepthMap,
|
|
2141
2159
|
getParentDirectories,
|
|
2142
2160
|
getVisibleItems,
|