Commit 15bf7e76 authored by George Popoff's avatar George Popoff

Добавил bootstrap и reactstrap в проект. Добавил в dev зависимости загрузчики…

Добавил bootstrap и reactstrap в проект. Добавил в dev зависимости загрузчики style и css. Изменил страницу отображения списков сайтов на вкладочный интерфейс с табами для каждого сайта
parent e7abb3c0
import React, {Component} from 'react' import React from 'react'
import {Nav, NavItem, NavLink, TabContent, TabPane} from "reactstrap";
import Site from "./Site"; import Site from "./Site";
export default class SiteList extends Component { export default class SiteList extends React.Component {
sites = this.props.sites;
state = {
activeTab: this.sites[0].id
};
toggle = (tab) => {
console.log("Toggle to ", tab);
if (this.state.activeTab !== tab) {
this.setState({
activeTab: tab
})
}
};
render() { render() {
const {sites} = this.props; const tabItems = this.sites.map(site =>
<NavItem key={site.id}>
<NavLink className={this.state.activeTab === site.id ? "active" : ""}
onClick={() => { this.toggle(site.id) }}>
{site.name}
</NavLink>
</NavItem>
);
const siteElements = sites.map(site => const tabContents = this.sites.map(site =>
<li key={site.id}><Site site={site}/></li> <TabPane tabId={site.id}>
<Site site={site} />
</TabPane>
); );
return ( return (
<div className="site-list"> <div>
<h1>Список сайтов, за которые вы отвечаете:</h1> <Nav tabs>
<ul> {tabItems}
{siteElements} </Nav>
</ul> <TabContent activeTab={this.state.activeTab}>
{tabContents}
</TabContent>
</div> </div>
) )
} }
......
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css';
import SiteList from "./components/SiteList"; import SiteList from "./components/SiteList";
// Get json array of typos and render component application // Get json array of typos and render component application
......
...@@ -5,11 +5,14 @@ ...@@ -5,11 +5,14 @@
"version": "0.0.1", "version": "0.0.1",
"private": true, "private": true,
"dependencies": { "dependencies": {
"bootstrap": "^4.0.0",
"free-jqgrid": "^4.15.3", "free-jqgrid": "^4.15.3",
"jquery": "^3.3.1", "jquery": "^3.3.1",
"jquery-ui": "^1.12.1", "jquery-ui": "^1.12.1",
"popper.js": "^1.14.2",
"react": "^16.3.0", "react": "^16.3.0",
"react-dom": "^16.3.0" "react-dom": "^16.3.0",
"reactstrap": "^5.0.0-beta.3"
}, },
"devDependencies": { "devDependencies": {
"babel-core": "^6.26.0", "babel-core": "^6.26.0",
...@@ -17,7 +20,8 @@ ...@@ -17,7 +20,8 @@
"babel-preset-es2015": "^6.24.1", "babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1", "babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1", "babel-preset-stage-0": "^6.24.1",
"css-loader": "^0.28.11",
"style-loader": "^0.20.3",
"webpack": "^4.4.1", "webpack": "^4.4.1",
"webpack-cli": "^2.0.13" "webpack-cli": "^2.0.13"
}, },
......
...@@ -31,6 +31,14 @@ module.exports = { ...@@ -31,6 +31,14 @@ module.exports = {
exclude: /node_modules/, exclude: /node_modules/,
test: /\.js[x]?$/, test: /\.js[x]?$/,
},
{
test: /\.css$/,
use: [
{ loader: "style-loader" },
{ loader: "css-loader" }
]
} }
] ]
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment