@ethersphere/bee-dashboard 0.35.0 → 0.35.1

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/build/index.html CHANGED
@@ -9,7 +9,7 @@
9
9
  <link rel="apple-touch-icon" href="/logo192.png" />
10
10
  <link rel="manifest" href="/manifest.json" />
11
11
  <title>Bee Dashboard</title>
12
- <script type="module" crossorigin src="/assets/index-wYIvDrId.js"></script>
12
+ <script type="module" crossorigin src="/assets/index-BmV9k6jK.js"></script>
13
13
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-mui-Dv6xxk4a.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/vendor-ethers-BjcsqZe1.js">
15
15
  <link rel="stylesheet" crossorigin href="/assets/index-DMp5phAM.css">
@@ -79007,10 +79007,10 @@ P?.name || "";
79007
79007
  const bytesEndpoint = "bytes";
79008
79008
  async function processDownload(bee, resources, options, requestOptions) {
79009
79009
  if (O$1) {
79010
- const { downloadNode } = await Promise.resolve().then(() => require("./download.node-CGjezvzr.js"));
79010
+ const { downloadNode } = await Promise.resolve().then(() => require("./download.node-CzhxALxQ.js"));
79011
79011
  return await downloadNode(bee, Object.values(resources), options, requestOptions);
79012
79012
  }
79013
- const { downloadBrowser } = await Promise.resolve().then(() => require("./download.browser-Dusbw9zM.js"));
79013
+ const { downloadBrowser } = await Promise.resolve().then(() => require("./download.browser-BhXh2eCY.js"));
79014
79014
  return await downloadBrowser(Object.values(resources), bee.url, bytesEndpoint, options, requestOptions);
79015
79015
  }
79016
79016
  class EventEmitterBase {
@@ -79067,7 +79067,7 @@ async function processUpload(bee, driveInfo, fileOptions, uploadOptions, request
79067
79067
  return processedOptions.file;
79068
79068
  }
79069
79069
  if (O$1) {
79070
- const { processUploadNode } = await Promise.resolve().then(() => require("./upload.node-6Fo1eWIJ.js"));
79070
+ const { processUploadNode } = await Promise.resolve().then(() => require("./upload.node-DRiLZjhW.js"));
79071
79071
  const nodeOptions = processedOptions.options;
79072
79072
  return processUploadNode(bee, driveInfo, nodeOptions, uploadOptions, requestOptions);
79073
79073
  }
@@ -84023,11 +84023,13 @@ function ExpiringNotificationModalItem({
84023
84023
  }
84024
84024
  const EXPIRING_ITEMS_PAGE_SIZE = 3;
84025
84025
  function ExpiringNotificationModal({
84026
+ bee,
84026
84027
  stamps,
84027
84028
  drives,
84028
84029
  files,
84029
84030
  onCancelClick,
84030
- setErrorMessage
84031
+ setErrorMessage,
84032
+ setShowError
84031
84033
  }) {
84032
84034
  const [showUpgradeDriveModal, setShowUpgradeDriveModal] = React.useState(false);
84033
84035
  const [actualStamp, setActualStamp] = React.useState(void 0);
@@ -84066,7 +84068,15 @@ function ExpiringNotificationModal({
84066
84068
  files,
84067
84069
  currentPage,
84068
84070
  index,
84069
- onUpgradeClick: (stamp2, drive) => {
84071
+ onUpgradeClick: async (stamp2, drive) => {
84072
+ const isStampValid = await validateStampStillExists(bee, stamp2.batchID);
84073
+ if (!isStampValid) {
84074
+ setErrorMessage?.(
84075
+ `Drive ${drive.name} has expired. Please clear the browser cache and reload the page.`
84076
+ );
84077
+ setShowError(true);
84078
+ return;
84079
+ }
84070
84080
  setActualStamp(stamp2);
84071
84081
  setActualDrive(drive);
84072
84082
  setShowUpgradeDriveModal(true);
@@ -84114,7 +84124,7 @@ function NotificationBar({ setErrorMessage }) {
84114
84124
  const [stampsToExpire, setStampsToExpire] = React.useState([]);
84115
84125
  const [drivesToExpire, setDrivesToExpire] = React.useState([]);
84116
84126
  const { beeApi } = React.useContext(Context$8);
84117
- const { drives, files, adminDrive } = React.useContext(Context$3);
84127
+ const { drives, files, adminDrive, setShowError } = React.useContext(Context$3);
84118
84128
  const showExpiration = stampsToExpire.length > 0;
84119
84129
  React.useEffect(() => {
84120
84130
  let isMounted = true;
@@ -84176,16 +84186,18 @@ function NotificationBar({ setErrorMessage }) {
84176
84186
  " expiring soon ",
84177
84187
  /* @__PURE__ */ jsxRuntimeExports.jsx(UpIcon, { size: "16px" })
84178
84188
  ] }),
84179
- showExpiringModal && /* @__PURE__ */ jsxRuntimeExports.jsx(
84189
+ showExpiringModal && beeApi && /* @__PURE__ */ jsxRuntimeExports.jsx(
84180
84190
  ExpiringNotificationModal,
84181
84191
  {
84192
+ bee: beeApi,
84182
84193
  stamps: stampsToExpire,
84183
84194
  drives: drivesToExpire,
84184
84195
  files,
84185
84196
  onCancelClick: () => {
84186
84197
  setShowExpiringModal(false);
84187
84198
  },
84188
- setErrorMessage
84199
+ setErrorMessage,
84200
+ setShowError
84189
84201
  }
84190
84202
  )
84191
84203
  ] });
@@ -86505,7 +86517,8 @@ function ErrorModalBlock$1({
86505
86517
  if (!showError) {
86506
86518
  return null;
86507
86519
  }
86508
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorModal, { label, onClick: onOk });
86520
+ const modalRoot = document.querySelector(".fm-main") || document.body;
86521
+ return ReactDOM.createPortal(/* @__PURE__ */ jsxRuntimeExports.jsx(ErrorModal, { label, onClick: onOk }), modalRoot);
86509
86522
  }
86510
86523
  const extractFilesFromClipboardEvent = (e2) => {
86511
86524
  const out = [];
@@ -86772,8 +86785,9 @@ function FileBrowser({ errorMessage, setErrorMessage }) {
86772
86785
  if (rafIdRef.current) {
86773
86786
  cancelAnimationFrame(rafIdRef.current);
86774
86787
  }
86788
+ setShowError(false);
86775
86789
  };
86776
- }, []);
86790
+ }, [setShowError]);
86777
86791
  React.useEffect(() => {
86778
86792
  let title = currentDrive?.name || "";
86779
86793
  if (isSearchMode) {
@@ -89418,6 +89432,9 @@ function InitializationErrorBlock({ onOk }) {
89418
89432
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", justifyContent: "center", marginTop: "16px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { minWidth: "120px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button2, { label: "OK", variant: "primary", disabled: false, onClick: onOk }) }) })
89419
89433
  ] }) });
89420
89434
  }
89435
+ function UltraLightNodeErrorBlock() {
89436
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-main", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-loading", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-loading-title", children: "File Manager is not available with an Ultra-light node. Please upgrade to a Light node to continue." }) }) });
89437
+ }
89421
89438
  function ResetModalBlock({ cacheHelpUrl, onConfirm }) {
89422
89439
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-main", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
89423
89440
  ConfirmModal,
@@ -89516,7 +89533,7 @@ function FileManagerPage() {
89516
89533
  const [isCreationInProgress, setIsCreationInProgress] = React.useState(false);
89517
89534
  const [connectionErrorDismissed, setConnectionErrorDismissed] = React.useState(false);
89518
89535
  const [cacheHelpUrl, setCacheHelpUrl] = React.useState(cacheClearUrls[BrowserPlatform.Chrome]);
89519
- const { status, chainState } = React.useContext(Context$7);
89536
+ const { status, chainState, nodeInfo } = React.useContext(Context$7);
89520
89537
  const { fm, initDone, shallReset, adminDrive, initializationError, notifyPkSaved } = React.useContext(Context$3);
89521
89538
  React.useEffect(() => {
89522
89539
  isMountedRef.current = true;
@@ -89545,6 +89562,7 @@ function FileManagerPage() {
89545
89562
  const pageState = React.useMemo(() => {
89546
89563
  const isChainSyncing = chainState === null;
89547
89564
  if (!isBeeReady && !initDone) return "connecting";
89565
+ if (nodeInfo?.beeMode === BeeModes.ULTRA_LIGHT) return "ultra-light-node";
89548
89566
  if (!hasPk) return "no-pk";
89549
89567
  if (!initDone) return "loading";
89550
89568
  if (shallReset && !resetAcknowledged) return "reset";
@@ -89567,7 +89585,8 @@ function FileManagerPage() {
89567
89585
  fm,
89568
89586
  adminDrive,
89569
89587
  isCreationInProgress,
89570
- chainState
89588
+ chainState,
89589
+ nodeInfo?.beeMode
89571
89590
  ]);
89572
89591
  const handlePrivateKeySaved = React.useCallback(() => {
89573
89592
  if (!isMountedRef.current) return;
@@ -89577,6 +89596,9 @@ function FileManagerPage() {
89577
89596
  }, [fm, notifyPkSaved]);
89578
89597
  const loading = !fm?.adminStamp || !adminDrive;
89579
89598
  const isFormbricksActive = Boolean(fm && fm.adminStamp && adminDrive && !loading);
89599
+ if (pageState === "ultra-light-node") {
89600
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(UltraLightNodeErrorBlock, {});
89601
+ }
89580
89602
  if (pageState === "connecting" || pageState === "loading") {
89581
89603
  return /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingBlock, {});
89582
89604
  }
@@ -93569,7 +93591,7 @@ async function sendNativeTransaction(privateKey, to, value, jsonRpcProviderUrl,
93569
93591
  const feedData = await signer.provider.getFeeData();
93570
93592
  const gasPrice = externalGasPrice ?? DAI.fromWei(feedData.gasPrice?.toString() || "0");
93571
93593
  const transaction = await signer.sendTransaction({
93572
- to: to.toHex(),
93594
+ to: to.toChecksum(),
93573
93595
  value: BigInt(value.toWeiString()),
93574
93596
  gasPrice: BigInt(gasPrice.toWeiString()),
93575
93597
  gasLimit: BigInt(21e3),
@@ -93591,7 +93613,7 @@ async function sendBzzTransaction(privateKey, to, value, jsonRpcProviderUrl) {
93591
93613
  const feeData = await signer.provider.getFeeData();
93592
93614
  const gasPrice = feeData.gasPrice || BigInt(0);
93593
93615
  const bzz = new Contract(BZZ_TOKEN_ADDRESS, bzzABI, signer);
93594
- const transaction = await bzz.transfer(to.toChecksum(), value, { gasPrice });
93616
+ const transaction = await bzz.transfer(to.toChecksum(), value.toPLURBigInt(), { gasPrice });
93595
93617
  const receipt = await transaction.wait(1);
93596
93618
  if (!receipt) {
93597
93619
  throw new Error("Invalid receipt!");
@@ -122236,7 +122258,6 @@ function PostageStampStandardCreation({ onFinished }) {
122236
122258
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { mb: 2, children: [
122237
122259
  /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { mt: 0.25, sx: { bgcolor: "#f6f6f6" }, p: 2, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { container: true, justifyContent: "space-between", children: [
122238
122260
  /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { children: "Corresponding TTL (Time to live)" }),
122239
- /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { children: amountInput ? getTtl(amountInput) : "-" }),
122240
122261
  /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { children: amountInput ? getTtl(amountInput) : "-" })
122241
122262
  ] }) }),
122242
122263
  /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { display: "flex", justifyContent: "right", mt: 0.5, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { style: { fontSize: "10px", color: "rgba(0, 0, 0, 0.26)" }, children: [
@@ -78990,10 +78990,10 @@ P?.name || "";
78990
78990
  const bytesEndpoint = "bytes";
78991
78991
  async function processDownload(bee, resources, options, requestOptions) {
78992
78992
  if (O$1) {
78993
- const { downloadNode } = await import("./download.node-ORcJCpF4.mjs");
78993
+ const { downloadNode } = await import("./download.node-Bf2R_PzI.mjs");
78994
78994
  return await downloadNode(bee, Object.values(resources), options, requestOptions);
78995
78995
  }
78996
- const { downloadBrowser } = await import("./download.browser-KkaXyYZj.mjs");
78996
+ const { downloadBrowser } = await import("./download.browser-JHhkjxaR.mjs");
78997
78997
  return await downloadBrowser(Object.values(resources), bee.url, bytesEndpoint, options, requestOptions);
78998
78998
  }
78999
78999
  class EventEmitterBase {
@@ -79050,7 +79050,7 @@ async function processUpload(bee, driveInfo, fileOptions, uploadOptions, request
79050
79050
  return processedOptions.file;
79051
79051
  }
79052
79052
  if (O$1) {
79053
- const { processUploadNode } = await import("./upload.node-vs2hmNcN.mjs");
79053
+ const { processUploadNode } = await import("./upload.node-BUOo237h.mjs");
79054
79054
  const nodeOptions = processedOptions.options;
79055
79055
  return processUploadNode(bee, driveInfo, nodeOptions, uploadOptions, requestOptions);
79056
79056
  }
@@ -84006,11 +84006,13 @@ function ExpiringNotificationModalItem({
84006
84006
  }
84007
84007
  const EXPIRING_ITEMS_PAGE_SIZE = 3;
84008
84008
  function ExpiringNotificationModal({
84009
+ bee,
84009
84010
  stamps,
84010
84011
  drives,
84011
84012
  files,
84012
84013
  onCancelClick,
84013
- setErrorMessage
84014
+ setErrorMessage,
84015
+ setShowError
84014
84016
  }) {
84015
84017
  const [showUpgradeDriveModal, setShowUpgradeDriveModal] = useState(false);
84016
84018
  const [actualStamp, setActualStamp] = useState(void 0);
@@ -84049,7 +84051,15 @@ function ExpiringNotificationModal({
84049
84051
  files,
84050
84052
  currentPage,
84051
84053
  index,
84052
- onUpgradeClick: (stamp2, drive) => {
84054
+ onUpgradeClick: async (stamp2, drive) => {
84055
+ const isStampValid = await validateStampStillExists(bee, stamp2.batchID);
84056
+ if (!isStampValid) {
84057
+ setErrorMessage?.(
84058
+ `Drive ${drive.name} has expired. Please clear the browser cache and reload the page.`
84059
+ );
84060
+ setShowError(true);
84061
+ return;
84062
+ }
84053
84063
  setActualStamp(stamp2);
84054
84064
  setActualDrive(drive);
84055
84065
  setShowUpgradeDriveModal(true);
@@ -84097,7 +84107,7 @@ function NotificationBar({ setErrorMessage }) {
84097
84107
  const [stampsToExpire, setStampsToExpire] = useState([]);
84098
84108
  const [drivesToExpire, setDrivesToExpire] = useState([]);
84099
84109
  const { beeApi } = useContext(Context$8);
84100
- const { drives, files, adminDrive } = useContext(Context$3);
84110
+ const { drives, files, adminDrive, setShowError } = useContext(Context$3);
84101
84111
  const showExpiration = stampsToExpire.length > 0;
84102
84112
  useEffect(() => {
84103
84113
  let isMounted = true;
@@ -84159,16 +84169,18 @@ function NotificationBar({ setErrorMessage }) {
84159
84169
  " expiring soon ",
84160
84170
  /* @__PURE__ */ jsxRuntimeExports.jsx(UpIcon, { size: "16px" })
84161
84171
  ] }),
84162
- showExpiringModal && /* @__PURE__ */ jsxRuntimeExports.jsx(
84172
+ showExpiringModal && beeApi && /* @__PURE__ */ jsxRuntimeExports.jsx(
84163
84173
  ExpiringNotificationModal,
84164
84174
  {
84175
+ bee: beeApi,
84165
84176
  stamps: stampsToExpire,
84166
84177
  drives: drivesToExpire,
84167
84178
  files,
84168
84179
  onCancelClick: () => {
84169
84180
  setShowExpiringModal(false);
84170
84181
  },
84171
- setErrorMessage
84182
+ setErrorMessage,
84183
+ setShowError
84172
84184
  }
84173
84185
  )
84174
84186
  ] });
@@ -86488,7 +86500,8 @@ function ErrorModalBlock$1({
86488
86500
  if (!showError) {
86489
86501
  return null;
86490
86502
  }
86491
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorModal, { label, onClick: onOk });
86503
+ const modalRoot = document.querySelector(".fm-main") || document.body;
86504
+ return createPortal(/* @__PURE__ */ jsxRuntimeExports.jsx(ErrorModal, { label, onClick: onOk }), modalRoot);
86492
86505
  }
86493
86506
  const extractFilesFromClipboardEvent = (e2) => {
86494
86507
  const out = [];
@@ -86755,8 +86768,9 @@ function FileBrowser({ errorMessage, setErrorMessage }) {
86755
86768
  if (rafIdRef.current) {
86756
86769
  cancelAnimationFrame(rafIdRef.current);
86757
86770
  }
86771
+ setShowError(false);
86758
86772
  };
86759
- }, []);
86773
+ }, [setShowError]);
86760
86774
  useEffect(() => {
86761
86775
  let title = currentDrive?.name || "";
86762
86776
  if (isSearchMode) {
@@ -89401,6 +89415,9 @@ function InitializationErrorBlock({ onOk }) {
89401
89415
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", justifyContent: "center", marginTop: "16px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { minWidth: "120px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button2, { label: "OK", variant: "primary", disabled: false, onClick: onOk }) }) })
89402
89416
  ] }) });
89403
89417
  }
89418
+ function UltraLightNodeErrorBlock() {
89419
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-main", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-loading", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-loading-title", children: "File Manager is not available with an Ultra-light node. Please upgrade to a Light node to continue." }) }) });
89420
+ }
89404
89421
  function ResetModalBlock({ cacheHelpUrl, onConfirm }) {
89405
89422
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fm-main", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
89406
89423
  ConfirmModal,
@@ -89499,7 +89516,7 @@ function FileManagerPage() {
89499
89516
  const [isCreationInProgress, setIsCreationInProgress] = useState(false);
89500
89517
  const [connectionErrorDismissed, setConnectionErrorDismissed] = useState(false);
89501
89518
  const [cacheHelpUrl, setCacheHelpUrl] = useState(cacheClearUrls[BrowserPlatform.Chrome]);
89502
- const { status, chainState } = useContext(Context$7);
89519
+ const { status, chainState, nodeInfo } = useContext(Context$7);
89503
89520
  const { fm, initDone, shallReset, adminDrive, initializationError, notifyPkSaved } = useContext(Context$3);
89504
89521
  useEffect(() => {
89505
89522
  isMountedRef.current = true;
@@ -89528,6 +89545,7 @@ function FileManagerPage() {
89528
89545
  const pageState = useMemo(() => {
89529
89546
  const isChainSyncing = chainState === null;
89530
89547
  if (!isBeeReady && !initDone) return "connecting";
89548
+ if (nodeInfo?.beeMode === BeeModes.ULTRA_LIGHT) return "ultra-light-node";
89531
89549
  if (!hasPk) return "no-pk";
89532
89550
  if (!initDone) return "loading";
89533
89551
  if (shallReset && !resetAcknowledged) return "reset";
@@ -89550,7 +89568,8 @@ function FileManagerPage() {
89550
89568
  fm,
89551
89569
  adminDrive,
89552
89570
  isCreationInProgress,
89553
- chainState
89571
+ chainState,
89572
+ nodeInfo?.beeMode
89554
89573
  ]);
89555
89574
  const handlePrivateKeySaved = useCallback(() => {
89556
89575
  if (!isMountedRef.current) return;
@@ -89560,6 +89579,9 @@ function FileManagerPage() {
89560
89579
  }, [fm, notifyPkSaved]);
89561
89580
  const loading = !fm?.adminStamp || !adminDrive;
89562
89581
  const isFormbricksActive = Boolean(fm && fm.adminStamp && adminDrive && !loading);
89582
+ if (pageState === "ultra-light-node") {
89583
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(UltraLightNodeErrorBlock, {});
89584
+ }
89563
89585
  if (pageState === "connecting" || pageState === "loading") {
89564
89586
  return /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingBlock, {});
89565
89587
  }
@@ -93552,7 +93574,7 @@ async function sendNativeTransaction(privateKey, to, value, jsonRpcProviderUrl,
93552
93574
  const feedData = await signer.provider.getFeeData();
93553
93575
  const gasPrice = externalGasPrice ?? DAI.fromWei(feedData.gasPrice?.toString() || "0");
93554
93576
  const transaction = await signer.sendTransaction({
93555
- to: to.toHex(),
93577
+ to: to.toChecksum(),
93556
93578
  value: BigInt(value.toWeiString()),
93557
93579
  gasPrice: BigInt(gasPrice.toWeiString()),
93558
93580
  gasLimit: BigInt(21e3),
@@ -93574,7 +93596,7 @@ async function sendBzzTransaction(privateKey, to, value, jsonRpcProviderUrl) {
93574
93596
  const feeData = await signer.provider.getFeeData();
93575
93597
  const gasPrice = feeData.gasPrice || BigInt(0);
93576
93598
  const bzz = new Contract(BZZ_TOKEN_ADDRESS, bzzABI, signer);
93577
- const transaction = await bzz.transfer(to.toChecksum(), value, { gasPrice });
93599
+ const transaction = await bzz.transfer(to.toChecksum(), value.toPLURBigInt(), { gasPrice });
93578
93600
  const receipt = await transaction.wait(1);
93579
93601
  if (!receipt) {
93580
93602
  throw new Error("Invalid receipt!");
@@ -122219,7 +122241,6 @@ function PostageStampStandardCreation({ onFinished }) {
122219
122241
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { mb: 2, children: [
122220
122242
  /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { mt: 0.25, sx: { bgcolor: "#f6f6f6" }, p: 2, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { container: true, justifyContent: "space-between", children: [
122221
122243
  /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { children: "Corresponding TTL (Time to live)" }),
122222
- /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { children: amountInput ? getTtl(amountInput) : "-" }),
122223
122244
  /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { children: amountInput ? getTtl(amountInput) : "-" })
122224
122245
  ] }) }),
122225
122246
  /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { display: "flex", justifyContent: "right", mt: 0.5, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { style: { fontSize: "10px", color: "rgba(0, 0, 0, 0.26)" }, children: [
package/lib/App.cjs.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
- const App = require("./App-DREUIlty.js");
2
+ const App = require("./App-BsgbFuqW.js");
3
3
  module.exports = App.App;
package/lib/App.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A } from "./App-D-bZmnQu.mjs";
1
+ import { A } from "./App-CtEEza9I.mjs";
2
2
  export {
3
3
  A as default
4
4
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const App = require("./App-DREUIlty.js");
3
+ const App = require("./App-BsgbFuqW.js");
4
4
  async function downloadReadableFetch(resource, apiUrl, endpoint, options, requestOptions) {
5
5
  if (options) {
6
6
  options = prepareDownloadOptions(options);
@@ -1,4 +1,4 @@
1
- import { T as Types, R as Reference, P as PublicKey } from "./App-D-bZmnQu.mjs";
1
+ import { T as Types, R as Reference, P as PublicKey } from "./App-CtEEza9I.mjs";
2
2
  async function downloadReadableFetch(resource, apiUrl, endpoint, options, requestOptions) {
3
3
  if (options) {
4
4
  options = prepareDownloadOptions(options);
@@ -1,4 +1,4 @@
1
- import { s as settlePromises } from "./App-D-bZmnQu.mjs";
1
+ import { s as settlePromises } from "./App-CtEEza9I.mjs";
2
2
  async function downloadNode(bee, resources, options, requestOptions) {
3
3
  const dataPromises = [];
4
4
  for (const resource of resources) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const App = require("./App-DREUIlty.js");
3
+ const App = require("./App-BsgbFuqW.js");
4
4
  async function downloadNode(bee, resources, options, requestOptions) {
5
5
  const dataPromises = [];
6
6
  for (const resource of resources) {
@@ -1,4 +1,4 @@
1
- import { F as FileError } from "./App-D-bZmnQu.mjs";
1
+ import { F as FileError } from "./App-CtEEza9I.mjs";
2
2
  const contentTypes = /* @__PURE__ */ new Map([
3
3
  [".mp4", "video/mp4"],
4
4
  [".webm", "video/webm"],
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const App = require("./App-DREUIlty.js");
3
+ const App = require("./App-BsgbFuqW.js");
4
4
  const contentTypes = /* @__PURE__ */ new Map([
5
5
  [".mp4", "video/mp4"],
6
6
  [".webm", "video/webm"],
@@ -1,12 +1,14 @@
1
- import { PostageBatch } from '@ethersphere/bee-js';
1
+ import { Bee, PostageBatch } from '@ethersphere/bee-js';
2
2
  import { DriveInfo, FileInfo } from '@solarpunkltd/file-manager-lib';
3
3
  import { ReactElement } from 'react';
4
4
  interface ExpiringNotificationModalProps {
5
+ bee: Bee;
5
6
  stamps: PostageBatch[];
6
7
  drives: DriveInfo[];
7
8
  files: FileInfo[];
8
9
  onCancelClick: () => void;
9
10
  setErrorMessage?: (error: string) => void;
11
+ setShowError: (show: boolean) => void;
10
12
  }
11
- export declare function ExpiringNotificationModal({ stamps, drives, files, onCancelClick, setErrorMessage, }: ExpiringNotificationModalProps): ReactElement;
13
+ export declare function ExpiringNotificationModal({ bee, stamps, drives, files, onCancelClick, setErrorMessage, setShowError, }: ExpiringNotificationModalProps): ReactElement;
12
14
  export {};
@@ -1,4 +1,4 @@
1
- import { B as BatchId, F as FileError } from "./App-D-bZmnQu.mjs";
1
+ import { B as BatchId, F as FileError } from "./App-CtEEza9I.mjs";
2
2
  async function uploadNode(bee, batchId, nodeOptions, uploadOptions, requestOptions) {
3
3
  const uploadFilesRes = await uploadFileOrDirectory(bee, new BatchId(batchId), nodeOptions.path, { ...uploadOptions, act: false }, requestOptions);
4
4
  let uploadPreviewRes;
@@ -12,7 +12,7 @@ async function uploadNode(bee, batchId, nodeOptions, uploadOptions, requestOptio
12
12
  return await bee.uploadData(batchId, JSON.stringify(wrappedData), { ...uploadOptions, act: true }, requestOptions);
13
13
  }
14
14
  async function uploadFileOrDirectory(bee, batchId, resolvedPath, uploadOptions, requestOptions) {
15
- const { isDir } = await import("./fs.node-MZdoW1KI.mjs");
15
+ const { isDir } = await import("./fs.node-CR5kFsrm.mjs");
16
16
  const isPathDir = await isDir(resolvedPath);
17
17
  if (isPathDir) {
18
18
  return uploadDirectory(bee, batchId, resolvedPath, uploadOptions, requestOptions);
@@ -21,7 +21,7 @@ async function uploadFileOrDirectory(bee, batchId, resolvedPath, uploadOptions,
21
21
  }
22
22
  async function uploadFile(bee, batchId, resolvedPath, uploadOptions, requestOptions) {
23
23
  try {
24
- const { readFile } = await import("./fs.node-MZdoW1KI.mjs");
24
+ const { readFile } = await import("./fs.node-CR5kFsrm.mjs");
25
25
  const { data, name, contentType } = await readFile(resolvedPath);
26
26
  return await bee.uploadFile(batchId, data, name, {
27
27
  ...uploadOptions,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const App = require("./App-DREUIlty.js");
3
+ const App = require("./App-BsgbFuqW.js");
4
4
  async function uploadNode(bee, batchId, nodeOptions, uploadOptions, requestOptions) {
5
5
  const uploadFilesRes = await uploadFileOrDirectory(bee, new App.BatchId(batchId), nodeOptions.path, { ...uploadOptions, act: false }, requestOptions);
6
6
  let uploadPreviewRes;
@@ -14,7 +14,7 @@ async function uploadNode(bee, batchId, nodeOptions, uploadOptions, requestOptio
14
14
  return await bee.uploadData(batchId, JSON.stringify(wrappedData), { ...uploadOptions, act: true }, requestOptions);
15
15
  }
16
16
  async function uploadFileOrDirectory(bee, batchId, resolvedPath, uploadOptions, requestOptions) {
17
- const { isDir } = await Promise.resolve().then(() => require("./fs.node-CtpSvQZh.js"));
17
+ const { isDir } = await Promise.resolve().then(() => require("./fs.node-DrM1ewLt.js"));
18
18
  const isPathDir = await isDir(resolvedPath);
19
19
  if (isPathDir) {
20
20
  return uploadDirectory(bee, batchId, resolvedPath, uploadOptions, requestOptions);
@@ -23,7 +23,7 @@ async function uploadFileOrDirectory(bee, batchId, resolvedPath, uploadOptions,
23
23
  }
24
24
  async function uploadFile(bee, batchId, resolvedPath, uploadOptions, requestOptions) {
25
25
  try {
26
- const { readFile } = await Promise.resolve().then(() => require("./fs.node-CtpSvQZh.js"));
26
+ const { readFile } = await Promise.resolve().then(() => require("./fs.node-DrM1ewLt.js"));
27
27
  const { data, name, contentType } = await readFile(resolvedPath);
28
28
  return await bee.uploadFile(batchId, data, name, {
29
29
  ...uploadOptions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethersphere/bee-dashboard",
3
- "version": "0.35.0",
3
+ "version": "0.35.1",
4
4
  "description": "An app which helps users to setup their Bee node and do actions like cash out cheques",
5
5
  "homepage": ".",
6
6
  "bin": {