fix(fe): refactor fe to support visitor accessing
This commit is contained in:
parent
2ccdf0e287
commit
9501bed740
3 changed files with 38 additions and 65 deletions
|
@ -2,7 +2,7 @@ import * as React from "react";
|
||||||
import { Set, Map } from "immutable";
|
import { Set, Map } from "immutable";
|
||||||
|
|
||||||
import { updater } from "./state_updater";
|
import { updater } from "./state_updater";
|
||||||
import { roleAdmin, roleVisitor } from "../client";
|
import { roleAdmin, roleUser, roleVisitor } from "../client";
|
||||||
import { ICoreState, MsgProps } from "./core_state";
|
import { ICoreState, MsgProps } from "./core_state";
|
||||||
import { PaneSettings } from "./pane_settings";
|
import { PaneSettings } from "./pane_settings";
|
||||||
import { AdminPane, AdminProps } from "./pane_admin";
|
import { AdminPane, AdminProps } from "./pane_admin";
|
||||||
|
@ -35,40 +35,43 @@ export class Panes extends React.Component<Props, State, {}> {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let displaying = this.props.panes.displaying;
|
let displaying = this.props.panes.displaying;
|
||||||
// if (!this.props.login.authed) {
|
|
||||||
// TODO: use constant instead
|
|
||||||
// TODO: control this with props
|
|
||||||
// displaying = "login";
|
|
||||||
// }
|
|
||||||
|
|
||||||
let panesMap: Map<string, JSX.Element> = Map({});
|
let panesMap: Map<string, JSX.Element> = Map({});
|
||||||
if (this.props.login.userRole !== roleVisitor) {
|
const settingsPane = (
|
||||||
panesMap = panesMap.set(
|
|
||||||
"settings",
|
|
||||||
<PaneSettings
|
<PaneSettings
|
||||||
login={this.props.login}
|
login={this.props.login}
|
||||||
msg={this.props.msg}
|
msg={this.props.msg}
|
||||||
update={this.props.update}
|
update={this.props.update}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
panesMap = panesMap.set(
|
const loginPane = (
|
||||||
"login",
|
|
||||||
<AuthPane
|
<AuthPane
|
||||||
login={this.props.login}
|
login={this.props.login}
|
||||||
update={this.props.update}
|
update={this.props.update}
|
||||||
msg={this.props.msg}
|
msg={this.props.msg}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
const adminPane = (
|
||||||
if (this.props.login.userRole === roleAdmin) {
|
|
||||||
panesMap = panesMap.set(
|
|
||||||
"admin",
|
|
||||||
<AdminPane
|
<AdminPane
|
||||||
admin={this.props.admin}
|
admin={this.props.admin}
|
||||||
msg={this.props.msg}
|
msg={this.props.msg}
|
||||||
update={this.props.update}
|
update={this.props.update}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
switch(this.props.login.userRole) {
|
||||||
|
case roleAdmin:
|
||||||
|
panesMap = panesMap.set("settings", settingsPane);
|
||||||
|
panesMap = panesMap.set("admin", adminPane);
|
||||||
|
panesMap = panesMap.set("login", loginPane);
|
||||||
|
break;
|
||||||
|
case roleUser:
|
||||||
|
panesMap = panesMap.set("settings", settingsPane);
|
||||||
|
panesMap = panesMap.set("login", loginPane);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
panesMap = panesMap.set("login", loginPane);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const panes = panesMap.keySeq().map((paneName: string): JSX.Element => {
|
const panes = panesMap.keySeq().map((paneName: string): JSX.Element => {
|
||||||
|
|
|
@ -65,7 +65,6 @@ export class TopBar extends React.Component<Props, State, {}> {
|
||||||
className="h5"
|
className="h5"
|
||||||
>
|
>
|
||||||
Quickshare
|
Quickshare
|
||||||
{/* <RiGithubFill size="2rem" className="grey4-font margin-r-m" /> */}
|
|
||||||
</a>,
|
</a>,
|
||||||
|
|
||||||
<Flexbox
|
<Flexbox
|
||||||
|
@ -98,35 +97,6 @@ export class TopBar extends React.Component<Props, State, {}> {
|
||||||
{ justifyContent: "flex-end", alignItems: "center" },
|
{ justifyContent: "flex-end", alignItems: "center" },
|
||||||
])}
|
])}
|
||||||
/>
|
/>
|
||||||
{/* <div className="flex-2col-parent">
|
|
||||||
<a
|
|
||||||
href="https://github.com/ihexxa/quickshare"
|
|
||||||
className="flex-13col h5"
|
|
||||||
>
|
|
||||||
Quickshare
|
|
||||||
</a>
|
|
||||||
<span className="flex-23col text-right">
|
|
||||||
<span className="grey3-font font-s">
|
|
||||||
{this.props.login.userName}
|
|
||||||
</span>
|
|
||||||
-
|
|
||||||
<span className="grey0-font font-s margin-r-m">
|
|
||||||
{this.props.login.userRole}
|
|
||||||
</span>
|
|
||||||
<button
|
|
||||||
onClick={this.showSettings}
|
|
||||||
className="grey3-bg grey4-font margin-r-m"
|
|
||||||
>
|
|
||||||
{this.props.msg.pkg.get("settings")}
|
|
||||||
</button>
|
|
||||||
{adminBtn}
|
|
||||||
|
|
||||||
<RiGithubFill
|
|
||||||
size="2rem"
|
|
||||||
className="grey4-font margin-r-m"
|
|
||||||
/>
|
|
||||||
</span>
|
|
||||||
</div> */}
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,8 @@ const (
|
||||||
defaultSpaceLimit = 1024 * 1024 * 1024 // 1GB
|
defaultSpaceLimit = 1024 * 1024 * 1024 // 1GB
|
||||||
defaultUploadSpeedLimit = 50 * 1024 * 1024 // 50MB
|
defaultUploadSpeedLimit = 50 * 1024 * 1024 // 50MB
|
||||||
defaultDownloadSpeedLimit = 50 * 1024 * 1024 // 50MB
|
defaultDownloadSpeedLimit = 50 * 1024 * 1024 // 50MB
|
||||||
visitorUploadSpeedLimit = 10 * 1024 * 1024 // 50MB
|
visitorUploadSpeedLimit = 10 * 1024 * 1024 // 10MB
|
||||||
visitorDownloadSpeedLimit = 10 * 1024 * 1024 // 50MB
|
visitorDownloadSpeedLimit = 10 * 1024 * 1024 // 10MB
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue