This commit is contained in:
Ridwan Abadi 2019-01-28 19:27:24 +07:00
parent dab57e2c88
commit 3c5c37aac3
7 changed files with 1531 additions and 1055 deletions

2294
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -31,33 +31,33 @@
],
"license": "MIT",
"dependencies": {
"@firebase/app": "^0.3.4",
"@firebase/app": "^0.3.8",
"@material-ui/core": "^3.9.1",
"@material-ui/icons": "^3.0.2",
"@material-ui/styles": "^3.0.0-alpha.2",
"@mdi/font": "^2.3.54",
"antd": "^3.9.3",
"async-validator": "^1.8.2",
"antd": "^3.13.0",
"async-validator": "^1.10.1",
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
"babel-plugin-transform-react-constant-elements": "^6.23.0",
"babel-preset-es2015": "^6.24.1",
"bind-decorator": "^1.0.11",
"butter-toast": "^3.0.3",
"butter-toast": "^3.2.1",
"cinnamon-sugar": "^1.0.0",
"compression": "^1.7.1",
"cors": "^2.8.4",
"cross-spawn": "^6.0.5",
"css-hot-loader": "^1.3.4",
"cssnano": "^4.1.0",
"debug": "^4.0.1",
"css-hot-loader": "^1.4.3",
"cssnano": "^4.1.8",
"debug": "^4.1.1",
"decimal.js-light": "^2.3.1",
"exenv": "^1.2.2",
"express": "^4.16.2",
"faker": "^4.1.0",
"feather-icons": "^4.7.3",
"feather-icons": "^4.12.1",
"feather-icons-react": "^0.2.0",
"file-loader": "^1.1.5",
"firebase": "^5.7.2",
"firebase": "^5.8.1",
"frappe-gantt": "0.3.0",
"froala-editor": "^2.8.4",
"fs-extra-promise": "^1.0.1",
@ -80,21 +80,21 @@
"material-design-icons": "^3.0.1",
"material-ui": "^0.20.0",
"material-ui-community-icons": "^0.15.0",
"mobx": "^5.1.2",
"mobx": "^5.9.0",
"mobx-localstorage": "^1.0.0",
"mobx-react": "^5.2.8",
"mobx-react": "^5.4.3",
"mobx-react-devtools": "^6.0.3",
"moment": "^2.19.3",
"moment": "^2.24.0",
"nwbuild": "0.0.5",
"parcel-bundler": "^1.10.3",
"parcel-bundler": "^1.11.0",
"raw-loader": "^0.5.1",
"rc-queue-anim": "^1.4.0",
"rc-table": "^6.1.0",
"rc-queue-anim": "^1.6.10",
"rc-table": "^6.4.3",
"rc-util": "^4.3.0",
"react": "^16.7.0",
"react-addons-shallow-compare": "^15.6.2",
"react-collapse": "^4.0.3",
"react-color": "^2.13.8",
"react-color": "^2.17.0",
"react-compound-timer": "^1.0.7",
"react-confirm": "^0.1.16",
"react-dom": "^16.7.0",
@ -107,10 +107,10 @@
"react-grid-gallery": "^0.5.2",
"react-handsontable": "^0.3.1",
"react-helmet": "^5.2.0",
"react-hot-loader": "^4.3.11",
"react-hot-loader": "^4.6.3",
"react-images": "^0.5.13",
"react-infinite-scroller": "^1.1.3",
"react-intl": "^2.4.0",
"react-infinite-scroller": "^1.2.4",
"react-intl": "^2.8.0",
"react-loader-advanced": "^1.7.1",
"react-mapbox-gl": "^3.3.0",
"react-markdown": "^3.1.0",
@ -119,44 +119,44 @@
"react-native-vector-icons": "^5.0.0",
"react-number-format": "^3.0.3",
"react-prop-types": "^0.4.0",
"react-responsive-carousel": "^3.1.30",
"react-responsive-carousel": "^3.1.46",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2",
"react-scroll-horizontal": "^1.1.3",
"react-scroll-horizontal": "^1.6.2",
"react-slick": "^0.23.2",
"react-sortable-hoc": "^0.8.3",
"react-swipeable-views": "^0.13.0",
"react-swipeable-views": "^0.13.1",
"react-tap-event-plugin": "^3.0.2",
"react-transition-group": "^2.2.1",
"react-transition-group": "^2.5.3",
"reactcss": "^1.2.3",
"recharts": "^1.0.0-beta.6",
"rimraf": "^2.6.2",
"sass": "^1.15.1",
"recharts": "^1.4.2",
"rimraf": "^2.6.3",
"sass": "^1.16.1",
"slick-carousel": "^1.8.1",
"snapsvg": "^0.5.1",
"symlink-or-copy": "^1.2.0",
"thumb-express": "0.0.2",
"uglifyjs-webpack-plugin": "^2.0.1",
"uglifyjs-webpack-plugin": "^2.1.1",
"uuid": "^3.1.0"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.2.0",
"@babel/node": "^7.0.0",
"@babel/plugin-proposal-class-properties": "^7.0.0",
"@babel/plugin-proposal-decorators": "^7.0.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/cli": "^7.2.3",
"@babel/core": "^7.2.2",
"@babel/node": "^7.2.2",
"@babel/plugin-proposal-class-properties": "^7.3.0",
"@babel/plugin-proposal-decorators": "^7.3.0",
"@babel/plugin-proposal-object-rest-spread": "^7.3.1",
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
"@babel/plugin-transform-arrow-functions": "^7.0.0",
"@babel/plugin-transform-react-constant-elements": "^7.2.0",
"@babel/plugin-transform-runtime": "^7.0.0",
"@babel/polyfill": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/polyfill": "^7.2.5",
"@babel/preset-env": "^7.3.1",
"@babel/preset-react": "^7.0.0",
"@babel/preset-stage-0": "^7.0.0",
"@babel/register": "^7.0.0",
"@babel/runtime": "^7.0.0",
"babel-loader": "^8.0.0",
"@babel/runtime": "^7.3.1",
"babel-loader": "^8.0.5",
"babel-plugin-import": "^1.8.0",
"babel-plugin-lodash": "^3.3.2",
"babel-plugin-react-transform": "^3.0.0",
@ -168,13 +168,13 @@
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"file-loader": "^2.0.0",
"gulp-util": "^3.0.8",
"happypack": "^5.0.0",
"happypack": "^5.0.1",
"has-flag": "^3.0.0",
"html-webpack-plugin": "^3.2.0",
"less-loader": "^4.1.0",
"medium-button": "^1.1.4",
"mini-css-extract-plugin": "^0.4.3",
"node-sass": "^4.9.3",
"node-sass": "^4.11.0",
"npm-run-all": "^4.1.2",
"on-build-webpack": "^0.1.0",
"optimize-css-assets-webpack-plugin": "^5.0.1",
@ -183,11 +183,11 @@
"script-ext-html-webpack-plugin": "^2.0.1",
"style-loader": "^0.23.0",
"url-loader": "^1.1.1",
"webpack": "^4.17.1",
"webpack-cli": "^3.1.0",
"webpack-dev-middleware": "^3.2.0",
"webpack-dev-server": "^3.1.7",
"webpack": "^4.29.0",
"webpack-cli": "^3.2.1",
"webpack-dev-middleware": "^3.5.1",
"webpack-dev-server": "^3.1.14",
"webpack-hot-middleware": "^2.21.0",
"webpack-livereload-plugin": "^2.1.1"
"webpack-livereload-plugin": "^2.2.0"
}
}

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>BTN</title>
<meta id="viewport" name="viewport" content="width=1280">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="icon" type="image/png" href="/assets/images/logo-bankbtn.png" sizes="96x96" />
<style>
body {

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>BTN</title>
<meta id="viewport" name="viewport" content="width=1280">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="icon" type="image/png" href="/assets/images/logo-bankbtn.png" sizes="96x96" />
<style>
body {

View File

@ -322,7 +322,8 @@ export default class App extends React.Component {
const {userData} = this.appstate;
// const applicationIcon = (this.settingStore.isIconEmpty) ? "/assets/images/bankbtn.png" : this.http.appendImagePath(this.settingStore.setting.icon);
let applicationIcon = "http://giift.asacreative.com/giift_logo_wide.4d15de72.png";
// let applicationIcon = "http://giift.asacreative.com/giift_logo_wide.4d15de72.png";
const applicationIcon = require('../../../../assets/images/logo_new.png');
let applicationName = 'Giift';
if(APP_TYPE === 'btn') {
applicationIcon = "http://btn-redemption-2.bangun-kreatif.com/dr6u0fppdi4xy.cloudfront.net/FilesDirectory/Albilad/ImgIconImage/logo-btn.png";
@ -379,8 +380,8 @@ export default class App extends React.Component {
.bind(this, '/app/dashboard')} to={LINKS.DASHBOARD}>
<img
style={{
width: 150,
height: 50
width: 100,
height: 30
}}
src={applicationIcon}/>
</Link>

View File

@ -135,7 +135,7 @@
width: 100%;
top: 0;
z-index: 1000;
background-color: #f1f5f9 !important;
background-color: #ffeb3b !important;
height: 70px !important;
padding: 8px 24px;
border-bottom: 1px solid rgb(223, 223, 223);

View File

@ -1,14 +1,14 @@
import React from "react";
import { inject, observer } from "mobx-react";
import {inject, observer} from "mobx-react";
import QueueAnim from 'rc-queue-anim';
import "./style.scss";
import NumberFormat from 'react-number-format';
import { LINKS } from './../../routes'
import { Link } from 'react-router-dom';
import {LINKS} from './../../routes'
import {Link} from 'react-router-dom';
import CardAdmin from './CardAdmin';
import CardAgent from './CardAgent';
import moment from 'moment';
import { Icon, Button, notification, Table, Tooltip as TooltipAntd, Col, Row, } from 'antd';
import {Icon, Button, notification, Table, Tooltip as TooltipAntd, Col, Row,} from 'antd';
import DC from 'decimal.js-light';
import {
Paper,
@ -26,11 +26,11 @@ import {
import Grid from '@material-ui/core/Grid';
import EmptyComponent from '../EmptyComponent';
import * as _ from 'lodash';
import { grey400, darkBlack, lightBlack, black } from 'material-ui/styles/colors';
import {grey400, darkBlack, lightBlack, black} from 'material-ui/styles/colors';
import './style.scss';
import { Carousel } from 'react-responsive-carousel'
import { ActionGrade, ContentDrafts, ContentInbox, ContentSend } from "material-ui/svg-icons/index";
import { constant } from "../../config/const";
import {Carousel} from 'react-responsive-carousel'
import {ActionGrade, ContentDrafts, ContentInbox, ContentSend} from "material-ui/svg-icons/index";
import {constant} from "../../config/const";
import Slider from "react-slick";
import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';
@ -40,7 +40,7 @@ import slider2 from '../../../../assets/images/slider/2.jpg';
import slider3 from '../../../../assets/images/slider/3.jpg';
import slider4 from '../../../../assets/images/slider/4.jpg';
import slider5 from '../../../../assets/images/slider/5.jpg';
import { ItemCard } from "../Vouchers/ItemCard";
import {ItemCard} from "../Vouchers/ItemCard";
import ModalVouchersComponent from "../Vouchers/Modal";
import PopularItemCardComponent from "./PopularItemCard";
import NewItemCardComponent from "./NewItemCard";
@ -74,18 +74,18 @@ export default class DashboardComponent extends React.Component {
modalTopup: false,
data: {
name: '',
background_color_1:'',
background_color_2:'',
background_color_1: '',
background_color_2: '',
images: {
logo:''
logo: ''
},
description: '',
additional_data: {
information:''
information: ''
},
sku: [
{
id:'',
id: '',
name: '',
price: ''
},
@ -115,78 +115,81 @@ export default class DashboardComponent extends React.Component {
return (
<div>
<div className="dashboard animated fadeIn" style={{marginLeft: '8%',marginRight:'7%'}}>
<div className="dashboard animated fadeIn" style={{
marginLeft: '8%',
marginRight: '7%'
}}>
<div className="row ">
<div className="col s12 m12 l12 col-leftDashboard" style={{ marginBottom: 0 }}>
<div className="col s12 m12 l12 col-leftDashboard" style={{marginBottom: 0}}>
<div className="row no-margin">
{this.props.appstate.wallet.data.wallet ? (
<div className="col s12 m4 l4" style={{ marginBottom: 0 }}>
<Card className="cardLite cardDashboard">
<h3 style={{
display: 'block',
fontSize: '1rem',
textTransform: 'uppercase',
color: '#0006',
letterSpacing: 1
}}>Voucher</h3>
<div className="value">
{/* <NumberFormat value={(this.props.appstate.wallet.data.wallet).toFixed(2)} displayType={'text'} thousandSeparator={true} prefix={'Rp '}/> */}
<NumberFormat value={(0).toFixed(2)} displayType={'text'} thousandSeparator={true} prefix={'Rp '}/>
</div>
<div style={{marginTop:10}}>
<Button type="primary" icon="plus" onClick={() => this.setModalTopup(true)}>Add Voucher</Button>
{/* <a className="btnFlatUnderline" onClick={() => this.setModalTopup(true)}>
{this.props.appstate.wallet.data.wallet ? (
<div className="col s12 m4 l4" style={{marginBottom: 0}}>
<Card className="cardLite cardDashboard">
<h3 style={{
display: 'block',
fontSize: '1rem',
textTransform: 'uppercase',
color: '#0006',
letterSpacing: 1
}}>Voucher</h3>
<div className="value">
{/* <NumberFormat value={(this.props.appstate.wallet.data.wallet).toFixed(2)} displayType={'text'} thousandSeparator={true} prefix={'Rp '}/> */}
<NumberFormat value={(0).toFixed(2)} displayType={'text'} thousandSeparator={true} prefix={'Rp '}/>
</div>
<div style={{marginTop: 10}}>
<Button type="primary" icon="plus" onClick={() => this.setModalTopup(true)}>Add Voucher</Button>
{/* <a className="btnFlatUnderline" onClick={() => this.setModalTopup(true)}>
<span>Add Voucher</span>
<Icon className="ml-8" type="right" />
</a> */}
</div>
</Card>
</div>
</Card>
</div>
) : ''}
) : ''}
{this.props.appstate.wallet.data.wallet ? (
<div className="col s12 m4 l4" style={{ marginBottom: 0 }}>
<Card className="cardLite cardDashboard">
<h3 style={{
display: 'block',
fontSize: '1rem',
textTransform: 'uppercase',
color: '#0006',
letterSpacing: 1
}}> Profile</h3>
<div className="value">Please complete your profile</div>
<div style={{marginTop:10}}>
<Button type="primary" icon="edit">Edit Profile</Button>
{/* <a className="btnFlatUnderline" onClick={() => this.setModalTopup(true)}>
<div className="col s12 m4 l4" style={{marginBottom: 0}}>
<Card className="cardLite cardDashboard">
<h3 style={{
display: 'block',
fontSize: '1rem',
textTransform: 'uppercase',
color: '#0006',
letterSpacing: 1
}}> Profile</h3>
<div className="value">Please complete your profile</div>
<div style={{marginTop: 10}}>
<Button type="primary" icon="edit">Edit Profile</Button>
{/* <a className="btnFlatUnderline" onClick={() => this.setModalTopup(true)}>
<span>Edit Profile</span>
<Icon className="ml-8" type="right" />
</a> */}
</div>
</Card>
</div>
</div>
</Card>
</div>
) : ''}
{this.props.appstate.wallet.data.wallet ? (
<div className="col s12 m4 l4" style={{ marginBottom: 0 }}>
<Card className="cardLite cardDashboard">
<h3 style={{
display: 'block',
fontSize: '1rem',
textTransform: 'uppercase',
color: '#0006',
letterSpacing: 1
}}>Credit Card</h3>
<div className="value ">Please add your credit card</div>
<div style={{marginTop:10}}>
<Button type="primary" icon="plus">Add Credit Card</Button>
<div className="col s12 m4 l4" style={{marginBottom: 0}}>
<Card className="cardLite cardDashboard">
<h3 style={{
display: 'block',
fontSize: '1rem',
textTransform: 'uppercase',
color: '#0006',
letterSpacing: 1
}}>Credit Card</h3>
<div className="value ">Please add your credit card</div>
<div style={{marginTop: 10}}>
<Button type="primary" icon="plus">Add Credit Card</Button>
{/* <a className="btnFlatUnderline" onClick={() => this.setModalTopup(true)}>
<span>Add Credit Car</span>
<Icon className="ml-8" type="right" />
</a> */}
</div>
</Card>
</div>
</div>
</Card>
</div>
) : ''}
</div>
</div>
@ -194,25 +197,23 @@ export default class DashboardComponent extends React.Component {
</div>
<div style={{ marginLeft: '10%', marginRight: '10%', marginTop: 20, flexGrow: 1, minHeight: window.innerHeight - 70, backgroundColor: '#fff' }}>
<div style={{marginLeft: '10%', marginRight: '10%', marginTop: 20, flexGrow: 1, minHeight: window.innerHeight - 70, backgroundColor: '#fff'}}>
<div>
<Slider {...settings}>
<div>
<img src={slider1} width={'100%'} />
<img src={slider1} width={'100%'}/>
</div>
<div>
<img src={slider2} width={'100%'} />
<img src={slider2} width={'100%'}/>
</div>
<div>
<img src={slider3} width={'100%'} />
<img src={slider3} width={'100%'}/>
</div>
<div>
<img src={slider4} width={'100%'} />
<img src={slider4} width={'100%'}/>
</div>
<div>
<img src={slider5} width={'100%'} />
<img src={slider5} width={'100%'}/>
</div>
</Slider>
</div>
@ -225,9 +226,9 @@ export default class DashboardComponent extends React.Component {
<div className="col l12 m12 s12 padding">
<h3>
Popular Items
</h3>
</h3>
<Row gutter={10}>
<PopularItemCardComponent />
<PopularItemCardComponent/>
</Row>
</div>
</div>
@ -239,38 +240,38 @@ export default class DashboardComponent extends React.Component {
<div className="col l12 m12 s12 padding">
<h3>
New Products
</h3>
</h3>
<Row gutter={10}>
<NewItemCardComponent />
<NewItemCardComponent/>
</Row>
</div>
</div>
</div>
</Grid> */}
<Grid item xs={12}>
<div className={"voucher"} style={{ marginTop: 0 }}>
<div className={"voucher"} style={{marginTop: 0}}>
<div className="row">
<div className="col l12 m12 s12 padding">
<h3>
Voucher & Gift Card
</h3>
</h3>
<Row gutter={10}>
{
( this.vouchersStore.list.length > 0) ?
this.vouchersStore.list.map((item, index) => {
return (<Col onClick={() => this.setState({isOpened: true, data: item})} key={index} span={6}>
<ItemCard data={item}/>
</Col>)
})
: (
<EmptyComponent type="default4" header="" content="There is no voucher in sight"/>
)
}
{
(this.vouchersStore.list.length > 0) ?
this.vouchersStore.list.map((item, index) => {
return (<Col onClick={() => this.setState({isOpened: true, data: item})} key={index} span={6}>
<ItemCard data={item}/>
</Col>)
})
: (
<EmptyComponent type="default4" header="" content="There is no voucher in sight"/>
)
}
</Row>
<ModalVouchersComponent
title={this.state.data.name+' Vouchers'}
title={this.state.data.name + ' Vouchers'}
data={this.state.data}
isVisible={this.state.isOpened}
onOk={() => this.setState({isOpened: false})}
@ -283,7 +284,7 @@ export default class DashboardComponent extends React.Component {
</Grid>
</div>
</div>
<ModalTopupComponent onOk={() => this.setModalTopup(false)} onCancel={() => this.setModalTopup(false)} isVisible={this.state.modalTopup} />
<ModalTopupComponent onOk={() => this.setModalTopup(false)} onCancel={() => this.setModalTopup(false)} isVisible={this.state.modalTopup}/>
</div>
);
}