@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.mjs
CHANGED
|
@@ -1100,6 +1100,15 @@ var require_lib = __commonJS({
|
|
|
1100
1100
|
}
|
|
1101
1101
|
});
|
|
1102
1102
|
|
|
1103
|
+
// src/formatByteSize.ts
|
|
1104
|
+
var byteSizeUnits = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
1105
|
+
function formatByteSize(size) {
|
|
1106
|
+
const unitIndex = Math.floor(Math.log(size) / Math.log(1024));
|
|
1107
|
+
const unit = byteSizeUnits[unitIndex];
|
|
1108
|
+
const value = size / Math.pow(1024, unitIndex);
|
|
1109
|
+
return `${value.toFixed(1)} ${unit}`;
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1103
1112
|
// src/MediaCollection.tsx
|
|
1104
1113
|
import {
|
|
1105
1114
|
ActionMenu,
|
|
@@ -1532,7 +1541,8 @@ var MediaCollection = memo(
|
|
|
1532
1541
|
scrollable = false,
|
|
1533
1542
|
sortable = false,
|
|
1534
1543
|
renderEmptyState,
|
|
1535
|
-
sharedDragProps
|
|
1544
|
+
sharedDragProps,
|
|
1545
|
+
onClickItem
|
|
1536
1546
|
}, ref) {
|
|
1537
1547
|
const setMedia = useCallback(
|
|
1538
1548
|
(...args) => {
|
|
@@ -1621,7 +1631,7 @@ var MediaCollection = memo(
|
|
|
1621
1631
|
setExpandedMap(initialExpanded);
|
|
1622
1632
|
}
|
|
1623
1633
|
}, [initialExpanded]);
|
|
1624
|
-
const
|
|
1634
|
+
const getExpanded = useCallback(
|
|
1625
1635
|
(item) => {
|
|
1626
1636
|
if (!expandable) return void 0;
|
|
1627
1637
|
if (item.kind !== "folder") return void 0;
|
|
@@ -1719,6 +1729,7 @@ var MediaCollection = memo(
|
|
|
1719
1729
|
},
|
|
1720
1730
|
[media, tree, setMedia]
|
|
1721
1731
|
);
|
|
1732
|
+
const [isUploading, setIsUploading] = useState(false);
|
|
1722
1733
|
const handleUpload = useCallback(
|
|
1723
1734
|
async (selectedId) => {
|
|
1724
1735
|
try {
|
|
@@ -1734,6 +1745,7 @@ var MediaCollection = memo(
|
|
|
1734
1745
|
asset: createMediaAsset({ assetId: asset.id })
|
|
1735
1746
|
};
|
|
1736
1747
|
});
|
|
1748
|
+
setIsUploading(true);
|
|
1737
1749
|
const newMediaMap = await Promise.all(uploadPromises);
|
|
1738
1750
|
setMedia(
|
|
1739
1751
|
{ name: "Add media items", timestamp: Date.now() },
|
|
@@ -1746,6 +1758,8 @@ var MediaCollection = memo(
|
|
|
1746
1758
|
);
|
|
1747
1759
|
} catch (error) {
|
|
1748
1760
|
console.error("Failed to upload files:", error);
|
|
1761
|
+
} finally {
|
|
1762
|
+
setIsUploading(false);
|
|
1749
1763
|
}
|
|
1750
1764
|
},
|
|
1751
1765
|
[tree.idToPathMap, setMedia, media, assetManager]
|
|
@@ -1984,7 +1998,8 @@ var MediaCollection = memo(
|
|
|
1984
1998
|
FileExplorerUploadButton,
|
|
1985
1999
|
{
|
|
1986
2000
|
showUploadButton,
|
|
1987
|
-
onUpload: () => handleUpload(rootMediaItem.id)
|
|
2001
|
+
onUpload: () => handleUpload(rootMediaItem.id),
|
|
2002
|
+
isUploading
|
|
1988
2003
|
},
|
|
1989
2004
|
right
|
|
1990
2005
|
),
|
|
@@ -2018,7 +2033,7 @@ var MediaCollection = memo(
|
|
|
2018
2033
|
return "Enter file name";
|
|
2019
2034
|
}
|
|
2020
2035
|
},
|
|
2021
|
-
getExpanded
|
|
2036
|
+
getExpanded,
|
|
2022
2037
|
setExpanded: handleSetExpanded,
|
|
2023
2038
|
getRenamable: (item) => {
|
|
2024
2039
|
if (item.id === rootMediaItem.id) return false;
|
|
@@ -2028,6 +2043,7 @@ var MediaCollection = memo(
|
|
|
2028
2043
|
menuItems: assetContextMenuItems,
|
|
2029
2044
|
onSelectMenuItem: handleMenuAction,
|
|
2030
2045
|
onSelectionChange: setSelectedIds,
|
|
2046
|
+
onClickItem,
|
|
2031
2047
|
onDoubleClickItem,
|
|
2032
2048
|
onRename,
|
|
2033
2049
|
renamable,
|
|
@@ -2044,7 +2060,7 @@ var MediaCollection = memo(
|
|
|
2044
2060
|
if (file.kind !== "asset") return null;
|
|
2045
2061
|
const asset = assets.find((a) => a.id === file.assetId);
|
|
2046
2062
|
if (!asset) return null;
|
|
2047
|
-
return /* @__PURE__ */ React.createElement(FileExplorerDetail, { selected, size }, (asset.size
|
|
2063
|
+
return /* @__PURE__ */ React.createElement(FileExplorerDetail, { selected, size }, formatByteSize(asset.size));
|
|
2048
2064
|
},
|
|
2049
2065
|
renderEmptyState: () => renderEmptyState?.() ?? /* @__PURE__ */ React.createElement(FileExplorerEmptyState, null),
|
|
2050
2066
|
itemRoleDescription: "clickable file item",
|
|
@@ -2139,6 +2155,7 @@ export {
|
|
|
2139
2155
|
createMediaItem,
|
|
2140
2156
|
createMediaItemTree,
|
|
2141
2157
|
deleteMediaItems,
|
|
2158
|
+
formatByteSize,
|
|
2142
2159
|
getDepthMap,
|
|
2143
2160
|
getParentDirectories,
|
|
2144
2161
|
getVisibleItems,
|