mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-10 19:32:25 +00:00
* subscription api * subscription page * subscriptionAPI.js * buy quota * add currency icons --------- Co-authored-by: Michael An <2331806369@qq.com>
73 lines
2.4 KiB
JavaScript
73 lines
2.4 KiB
JavaScript
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
import { siteRoot, mediaUrl, logoPath, logoWidth, logoHeight, siteTitle } from './utils/constants';
|
|
import SideNav from './components/user-settings/side-nav';
|
|
import Account from './components/common/account';
|
|
import Notification from './components/common/notification';
|
|
import Subscription from './components/subscription';
|
|
|
|
import './css/toolbar.css';
|
|
import './css/search.css';
|
|
import './css/user-settings.css';
|
|
|
|
|
|
class UserSubscription extends React.Component {
|
|
|
|
constructor(props) {
|
|
super(props);
|
|
this.sideNavItems = [
|
|
{ show: true, href: '#current-plan', text: '当前版本' },
|
|
{ show: true, href: '#asset-quota', text: '空间' },
|
|
{ show: true, href: '#current-subscription-period', text: '订阅有效期' },
|
|
{ show: true, href: '#product-price', text: '云服务付费方案' },
|
|
];
|
|
this.state = {
|
|
curItemID: this.sideNavItems[0].href.substr(1),
|
|
};
|
|
}
|
|
|
|
handleContentScroll = (e) => {
|
|
// Mobile does not display the sideNav, so when scrolling don't update curItemID
|
|
const scrollTop = e.target.scrollTop;
|
|
const scrolled = this.sideNavItems.filter((item, index) => {
|
|
return item.show && document.getElementById(item.href.substr(1)).offsetTop - 45 < scrollTop;
|
|
});
|
|
if (scrolled.length) {
|
|
this.setState({
|
|
curItemID: scrolled[scrolled.length - 1].href.substr(1)
|
|
});
|
|
}
|
|
};
|
|
|
|
render() {
|
|
let logoUrl = logoPath.startsWith('http') ? logoPath : mediaUrl + logoPath;
|
|
return (
|
|
<div className="h-100 d-flex flex-column">
|
|
<div className="top-header d-flex justify-content-between">
|
|
<a href={siteRoot}>
|
|
<img src={logoUrl} height={logoHeight} width={logoWidth} title={siteTitle} alt="logo" />
|
|
</a>
|
|
<div className="common-toolbar">
|
|
<Notification />
|
|
<Account />
|
|
</div>
|
|
</div>
|
|
<div className="flex-auto d-flex o-hidden">
|
|
<div className="side-panel o-auto">
|
|
<SideNav data={this.sideNavItems} curItemID={this.state.curItemID} />
|
|
</div>
|
|
<div className="main-panel d-flex flex-column">
|
|
<h2 className="heading">{'付费管理'}</h2>
|
|
<Subscription isOrgContext={false} handleContentScroll={this.handleContentScroll}/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
ReactDOM.render(
|
|
<UserSubscription />,
|
|
document.getElementById('wrapper')
|
|
);
|