diff --git a/src/client/web/src/components/browser.tsx b/src/client/web/src/components/browser.tsx index f3fabcc..a8e0762 100644 --- a/src/client/web/src/components/browser.tsx +++ b/src/client/web/src/components/browser.tsx @@ -18,7 +18,7 @@ import { ICoreState, MsgProps, UIProps } from "./core_state"; import { LoginProps } from "./pane_login"; import { MetadataResp, roleVisitor, roleAdmin } from "../client"; import { Up } from "../worker/upload_mgr"; -import { UploadEntry } from "../worker/interface"; +import { UploadEntry, UploadState } from "../worker/interface"; import { Flexbox } from "./layout/flexbox"; export interface Item { @@ -236,12 +236,24 @@ export class Browser extends React.Component { }); }; - updateProgress = (infos: Map, refresh: boolean) => { + updateProgress = async (infos: Map, refresh: boolean) => { updater().setUploadings(infos); + let errCount = 0; + infos.valueSeq().forEach((entry: UploadEntry) => { + errCount += entry.state === UploadState.Error ? 1 : 0; + }); + + if (infos.size === 0 || infos.size === errCount) { + // refresh used space + updater().self().then(() => { + this.update(updater().updateLogin); + }); + } + if (refresh) { updater() .setItems(this.props.browser.dirPath) - .then((ok: boolean) => { + .then(() => { this.update(updater().updateBrowser); }); } else { @@ -357,9 +369,8 @@ export class Browser extends React.Component { } ); - const nameCellClass = `item-name item-name-${ - this.props.ui.isVertical ? "vertical" : "horizontal" - } pointer`; + const nameCellClass = `item-name item-name-${this.props.ui.isVertical ? "vertical" : "horizontal" + } pointer`; const ops = (
@@ -445,9 +456,8 @@ export class Browser extends React.Component {