5 Commits cb73e3ff33 ... 73ee9195b3

Autore SHA1 Messaggio Data
  vit9 73ee9195b3 0602 5 anni fa
  Vlad e560863fe0 inputFile 5 anni fa
  Vlad 3467c4eafd scss 5 anni fa
  Vlad 07ebe9a2e3 Merge branch 'dev' into Babich 5 anni fa
  Vlad fbfb850904 merDev 5 anni fa

+ 9 - 8
src/components/AllStaffs/index.js

@@ -10,9 +10,8 @@ class AllStaffs extends Component {
         const { inputStaffs, isFetching, isAdmin, getUser } = this.props
         let data;
 
+            if(isFetching===true){            
 
-            if(isFetching===true){
-                
                 data = <div className="loader"> 
                     <Loader type="Triangle"
                         color="#FD7F71"
@@ -20,14 +19,17 @@ class AllStaffs extends Component {
                         width="100"
                     /> 
                 </div> 
-            }
-            else{
+            } else {
                 data = <div className="staffs">
                     {inputStaffs.map((el,key)=>(
                         <Link to={`/staff/${el.id}`} key={key}>
                             <div className="staff">
-                                <img src={el.img.substr(0,53)} width="325" height="190" className="imgStaff"  alt="lorem" />
-                                {el.title} {el.price}
+                               <img src={el.img.substr(0,53)} width="325" height="190" className="imgStaff"  alt="lorem" />
+                                <div className="titlleAndPrice">
+                                    <h4>{el.title}</h4>
+                                    <h4>Цена: {el.price}</h4>
+                                </div>
+
                             </div>
                         </Link> 
                     ))}    
@@ -35,8 +37,7 @@ class AllStaffs extends Component {
             }
         return (
 
-           <div className="content">
-
+           <div className="contentStaffs">
                 {data}
                 <AddNewStaff isAdmin={ isAdmin } getUser={ getUser }/>
            </div> 

+ 2 - 0
src/components/Auth/authorisation.js

@@ -9,7 +9,9 @@ import {authRenderField} from "../../common/authRenderField"
 
 
 const Form = props => {
+
     const { handleSubmit, getUsersData, pristine, inputData } = props
+
     const submit = (values) => {
         
         getUsersData(values);

+ 7 - 6
src/components/FormsAdd/FormAddNewStaff/SendingStaffForm.js

@@ -1,10 +1,10 @@
 import React, { Component } from 'react';
 import { Field, reduxForm } from 'redux-form';
-import { Link } from "react-router-dom";
 
 import FormData from 'form-data'
 
 class SendingForm extends  Component  {
+
     constructor(props){
         super(props)
        this.state = { image: 'http://zabavnik.club/wp-content/uploads/vopros_2_14000037-939x1024.jpg' }
@@ -76,10 +76,10 @@ class SendingForm extends  Component  {
 
                     <Field
                         name="description"
-                        component="input"
+                        component="textarea"
                         type="text"
                         placeholder="Описание"
-                        className="input"
+                        className="textarea"
                     />
 
                     <Field
@@ -97,9 +97,10 @@ class SendingForm extends  Component  {
                         
                         className="input"
                     >
-                        
+                        <option >Выберите рубрику</option>
                         {allCategory.map(el => <option value={el.id}> {el.title}</option>)}
                     </Field>
+
                             
                                 <label className='upload-zone'>
                                     <i>&nbsp;</i>
@@ -128,8 +129,8 @@ class SendingForm extends  Component  {
                     {/* <input type="file"    onChange={this.onChange1}></input>
                     <input type="file"    onChange={this.onChange2}></input>
                     <input type="file"    onChange={this.onChange3}></input> */}
-                    
-                    <div>
+                
+                    <div className="buttonConteiner">
                         <button type="submit" disabled={pristine || submitting} className="button" >
                             Submit
                         </button>

+ 5 - 7
src/components/FormsAdd/FormAddNewStaff/index.js

@@ -1,4 +1,4 @@
-import React, { Component } from 'react';
+import React, { Component, Fragment } from 'react';
 import { connect } from 'react-redux';
 import * as actions from '../../../actions/categoryAction';
 
@@ -25,12 +25,10 @@ class FormAddNewStaff extends Component {
             data = <Form AddNewStaffAction={AddNewStaffAction} allCategory={category}  getUser={ getUser } photo={ photo } pushPhoto={ pushPhoto } />
         }
         return (
-            <div>
-               {data}
-               {isFetching===true ? <div><MDSpinner size={100} duration={1000} /></div> : null}
- 
-
-            </div>
+            <Fragment>
+                {data}
+                {isFetching===true ? <div><MDSpinner size={100} duration={1000} /></div> : null}
+            </Fragment>
         );
     }
 }

+ 30 - 41
src/components/Header/Myprofile.js

@@ -8,50 +8,39 @@ class Myprofile extends Component {
 
         const { name, getUser, id } =this.props
         let localS = JSON.parse(localStorage.getItem("login"));
-       let data;
-
-       if (!name && !getUser.name || localS===null){
-
-       data = <div className="header__auth">
-                <Link to="/auth" className="link">
-                    <div className="header__auth__container">
-                        <div className="avatar">
-                            <Avatar icon="user" style={{ backgroundColor: '#1890ff' }}/>
-                        </div>
-                        <div>
-                             Мой профиль
-                        </div>
-                    
-                    </div>    
-           </Link>
-           </div>   
-       }
-        else{
+        let data;
+
+        if(!name && !getUser.name || localS===null){
+
+            data = <Link to="/auth" className="link">
+                <div className="header__auth__container">
+                    <div className="avatar">
+                        <Avatar icon="user" size={60} style={{ backgroundColor: '#FD7F71' }}/>
+                    </div>
+                    <div className="text">
+                        Мой профиль
+                    </div>
+                        
+                </div>    
+            </Link>
+        } else {
             
-            data = <div className="header__auth">
-                    <Link to={`/user/id:${getUser.id || id }`} className="link">
-                        <div className="header__auth__container">
-                            <div className="avatar">
-                                <Avatar icon="user" style={{ backgroundColor: '#1890ff' }}/>
-                            </div>
-                        <div>
-                            {name || getUser.name }
-                        </div>
-                    
-                        </div>    
-                    </Link> 
-                   </div>  
-
+            data = <Link to={`/user/id:${getUser.id || id }`} className="link">
+                <div className="header__auth__container">
+                    <div className="avatar">
+                        <Avatar icon="user" size={60} style={{ backgroundColor: '#FD7F71' }}/>
+                    </div>
+                    <div className="text">
+                        {name || getUser.name }
+                    </div>                    
+                </div>    
+            </Link> 
         }
-        
-       
+            
         return (
-
-
-        <div className="header__auth">
-           {data}
-        </div>
-
+            <div className="header__auth">
+                { data }
+            </div>
         );
     }
 }

+ 9 - 2
src/components/LeftMenu/PodCategory.js

@@ -16,14 +16,21 @@ class PodCatygory extends Component {
 
         let datacat = this.podCaty.map((el, key) =>
             <Link to={`/category/staff/${el.id}`}  key={`podCaty${key}`}>
-                <li key={`${el.id}`} className="ant-menu-item" role="menuitem" style={{"paddingLeft": "48px"}}>
+                <li key={`${el.id}`} 
+                    className="ant-menu-item" 
+                    role="menuitem" 
+                    style={{"paddingLeft": "48px"}}
+                >
                     {el.title}
                 </li>
             </Link>
         ) 
 
         return (
-            <ul className="ant-menu ant-menu-sub ant-menu-inline" role="menu" >
+            <ul className="ant-menu ant-menu-sub ant-menu-inline" 
+                role="menu" 
+                style={{"background": "#e06b62","color": "#fff"}} 
+            >
                 {datacat}
             </ul>
         );

+ 2 - 1
src/components/LeftMenu/index.js

@@ -7,7 +7,7 @@ import { Link } from "react-router-dom";
 const { Sider } = Layout;
 
 class LeftMenu extends Component {
-        
+
     state = {
         collapsed: false,
     };
@@ -42,6 +42,7 @@ class LeftMenu extends Component {
             else{
                 data =[];
             }
+
         return (
             <div>
                 <Layout style={{ minHeight: '100vh' }}>

+ 11 - 18
src/components/usersProtectPage/PrivateRoute.js

@@ -1,27 +1,20 @@
-import React, { Component } from 'react';
+import React from 'react';
 
-import {  Route, Redirect } from "react-router-dom";
+import { Route } from "react-router-dom";
 
-export default ({ component: Component, data, params, ...rest }) =>(
-      <Route
+export default ({ component: Component, data, params, ...rest }) => (
+    <Route
         {...rest}
+
         render= {props =>{
-         
-           
-          
-             
-                return <Component {...data}  {...props}  />
-             
-          
-              
-             
             
+            return <Component {...data}  {...props}  />
+
         }}
-      />
-    
+    />
+
 )
 
- 
 
-	
-    
+
+

+ 7 - 6
src/container/AddNewStaff.js

@@ -1,4 +1,4 @@
-import React, { Component } from 'react';
+import React, { Component, Fragment } from 'react';
 
 import { connect } from 'react-redux';
 import { AddNewStaffAction, closeModal, pushPhoto } from "../actions/addNewStaffAction";
@@ -28,24 +28,25 @@ class AddNewStaff extends Component {
     }
     render() {
         const { showModal, error, isFetching, AddNewStaffAction, getUser, photo, pushPhoto } = this.props
-        
+
         return (
 
-            <div className="top">
-                <div>
+            <Fragment>
+                <Fragment>
                     <FormAddNewStaff AddNewStaffAction={AddNewStaffAction} 
                         isFetching={isFetching}
                         getUser={ getUser }
                         photo={ photo } 
                         pushPhoto={ pushPhoto }
+
                     />
-                </div>
+                </Fragment>
                 <EditModal visible={showModal}
                     onOk={this.closeEditModal}
                     onCancel={this.closeEditModal}
                     error={error}
                 />
-            </div>
+            </Fragment>
 
         );
     }

+ 1 - 5
src/container/CategoryStaffInfo.js

@@ -8,11 +8,7 @@ import LeftMenu from '../container/LeftMenu'
 import Header from '../container/Header'
 
 class CategoryStaffInfo extends Component {
-    constructor(props){
-        super(props)
-        
-       
-    }
+    
     componentDidMount(){
         const { getCategorysDataById, match } = this.props
         getCategorysDataById(match.params.id)

+ 12 - 15
src/container/MainPage.js

@@ -14,32 +14,29 @@ import AllStaffs from "../components/AllStaffs"
 class MainPage extends Component {
    
     componentDidMount() {
-
-        const { getStaffsData, getUsersDataById } = this.props
         
+        const { getStaffsData, getUsersDataById } = this.props
+
         getStaffsData()
-            
-              let localS = JSON.parse(localStorage.getItem("login"));
-                if(localS===null){
-
-                }
-                else{
-                    getUsersDataById(localS)
-                }
-              
+
+        let localS = JSON.parse(localStorage.getItem("login"));
+        if (localS === null) {
+
+        } else {
+            getUsersDataById(localS)
+        }
+
     }
 
     render() {
-        
+
         const { inputStaffs, isFetching, getUser } = this.props
         const {  name, isAdmin, id } = this.props
-        
-        console.log(this.props)
 
         return (
             <Fragment>
                 <Header name={ name } getUser={ getUser } id={ id }/>
-                <div className="contentDiv">
+                <div className="menuAndContent">
                     <LeftMenu isAdmin = {isAdmin} getUser={ getUser } />
                     <AllStaffs inputStaffs={inputStaffs} isFetching={isFetching} isAdmin = {isAdmin} getUser={ getUser } />
                 </div>

BIN
src/img/16a646d763900e623c20ad38de761df7.jpg


BIN
src/img/logoBazar — копия.png


BIN
src/img/logoBazar.jpg


BIN
src/img/logoBazar.png


BIN
src/img/pngtree-Analog-Clock-Clock-Timepiece-Time-photo-484074.jpg


+ 23 - 26
src/reducer/categoryById.js

@@ -4,35 +4,32 @@ const initState = {
     infoCategory: [],
     isFetching: false,
     error: null,
-    
-  };
+};
+
+export default (state = initState, { type, payload }) => {
+    switch (type) {
 
-  export default (state = initState, { type, payload }) => {
-      
-      switch (type) {
-        
         case types.CATEGORY_REQUEST_BY_ID: {
-          return {
-          ...state,
-          isFetching: true,
-          infoCategory: [],
-          }
-        } 
-        case types.CATEGORY_REQUEST_SUCCESS_BY_ID: { 
-          return {
-          ...state,
-          isFetching: false,
-          infoCategory: payload.data.staffs,
-          
-          }
+            return {
+                ...state,
+                isFetching: true,
+                infoCategory: [],
+            }
+        }
+        case types.CATEGORY_REQUEST_SUCCESS_BY_ID: {
+            return {
+                ...state,
+                isFetching: false,
+                infoCategory: payload.data.staffs,
+            }
         }
         case types.CATEGORY_REQUEST_FAIL_BY_ID: {
-          return {
-          ...state,
-          isFetching: false,
-          error: "ERROR"
-          }
+            return {
+                ...state,
+                isFetching: false,
+                error: "ERROR"
+            }
         }
-        default: return state;    
+        default: return state;
     }
-  };
+};

+ 6 - 10
src/reducer/usersAuthorisation.js

@@ -8,13 +8,12 @@ const initState = {
   };
 
 export default (state = initState, {type, payload} ) => {
-    
+ 
     switch(type) {
         case types.USER_AUTH_REQUEST: {
             return {
                 ...state,
-                
-                isFatching: true
+                isFatching: true,
             }
         }
         case types.USER_AUTH_REQUEST_SUCCESS: {
@@ -23,27 +22,24 @@ export default (state = initState, {type, payload} ) => {
                 payload.data = false
             }
             else if (payload.data!==null && payload.data.id !==undefined ){
-                 const { id } = payload.data
-            localStorage.setItem("login",JSON.stringify(id))
+                const { id } = payload.data
+                localStorage.setItem("login",JSON.stringify(id))
             }
-           
-            
             return {
                 ...state,
                 inputData: payload.data,
-                isFatching: false
+                isFatching: false,
             }
         }
         case types.USER_AUTH_REQUEST_FAIL: {
             return {
                 ...state,
                 isFatching: false,
-                error: "ERROR"
+                error: "ERROR",
             }
         }
         
         
         default: return state;
-
     }
 };

+ 20 - 14
src/router.js

@@ -1,29 +1,30 @@
-import React, {Component} from "react";
-import { Switch, Route, Redirect, withRouter } from "react-router-dom";
-import { connect } from 'react-redux';    
+import React, { Component, Fragment } from "react";
+import { Switch, Route, withRouter } from "react-router-dom";
+import { connect } from 'react-redux';
 import { bindActionCreators } from "redux";
 
 
-import RenderRegistration from "./container/renderRegistration"
-import RenderAuthorisation from "./container/renderAuthorisation"
+
+
+
 
 import MainPage from "./container/MainPage";
-// import Form from './components/Auth/index'
-// import RegistrForm from './components/Auth/registration'
-import MainPageStaffInfo from './container/MainPageStaffInfo'
-import CategoryStaffInfo from './container/CategoryStaffInfo'
 
+import RenderAuthorisation from "./container/renderAuthorisation"
+import RenderRegistration from "./container/renderRegistration"
+import CategoryStaffInfo from './container/CategoryStaffInfo'
+import MainPageStaffInfo from './container/MainPageStaffInfo'
 import SearchStaffs from './container/SearchStaff'
-
 import SearchStaffsInfo from './container/SearchStaffsInfo'
 import AddNewStaff from './container/AddNewStaff'
-
 import AddNewCategory from './container/AddNewCategory'
 
+// import Form from './components/Auth/index'
+// import RegistrForm from './components/Auth/registration'
 // import UserProtect from './components/usersProtectPage/'
-
 // import UserProfile from './components/Header/Myprofile'
 
+
 import PrivateRoute from './components/usersProtectPage/PrivateRoute'
 
 import userProfile from  './container/UserProfile'
@@ -34,7 +35,8 @@ import { getUsersData } from './actions/usersAuthActions'
 
 import addCategory from './components/privateRouterComponents/addCategoryIfAdmin'
 
-class Router extends Component{
+class Router extends Component {
+
    render() {
        
        const { inputData, trig, params} = this.props
@@ -58,6 +60,7 @@ class Router extends Component{
     </div>
        )
    }
+
 }
 
 const mapStateToProps = state => ({
@@ -67,5 +70,8 @@ const mapStateToProps = state => ({
 })
 const mapDispatchToProps = dispatch => bindActionCreators({ getUsersData, getUsersDataById }, dispatch);
 
-export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Router));
+export default withRouter(connect(
+    mapStateToProps, 
+    mapDispatchToProps
+)(Router));
 

+ 10 - 3
src/style/abstracts/variables.scss

@@ -17,7 +17,14 @@ $color-grey-the-lightest: #f9fbfd;
 $color-grey-transparent: rgba(247, 249, 251, 0.7);
 
 //BASE COLORS
-$color-shadow:#d4d4d4;
 $el-color:#FD7F71;
-// BASE
-$color-backgtound: #f5f8fb;
+$color-backgtound: #f8f6f6;
+
+//SearchLine
+$color: #FD7F71;
+$background: #F7FBFB;
+$background-2: #EAF5F5;
+$background-3: #BBD8D8;
+$primary: #FD7F71;
+$white: #fff;
+$breakpoint: 768px;

+ 4 - 1
src/style/base/_base.scss

@@ -6,6 +6,9 @@
 	box-sizing:border-box;
 }
 body{
-	// max-width: 1140px;
+	min-width: 980px;
+	max-width: 1400px;
+	width: 100%;
 	margin: 0 auto ;
+	background: $color-backgtound;
 }

+ 0 - 0
src/style/base/_typography.scss


+ 41 - 13
src/style/components/_allStaff.scss

@@ -1,28 +1,60 @@
-
-.contentDiv{
+.menuAndContent{
     max-width: 100%;
     display: flex;
     
-    .content{
+    .contentStaffs{
         width: 100%;
         padding: 10px;
     }
 
     .staffs{
+        margin: 0 auto;
         display: flex;
-        flex-wrap: wrap;
-        justify-content: space-around;
         align-items: center;
         align-content: center; 
+        flex-wrap: wrap;
     }
 
     .staff{
         width: 350px;
         height: 250px;
         margin: 10px;
-        background-color: red;
-        border: 4px double black; 
-        background: #fc3;   
+        padding: 1%;
+        border: none;
+        outline: none;
+        border: 0px;
+        cursor: pointer;
+        color: #FD7F71;
+        transition: .3s ease-out;
+        border-radius: 10px;
+        background-color: #fff;
+        box-shadow: 0 1px 1px rgba(187, 216, 216, 0.6), 
+            0 3px 3px rgba(187, 216, 216, 0.4), 
+            0 8px 16px rgba(187, 216, 216, 0.3);
+
+        .titlleAndPrice{
+            display: flex;
+            justify-content: space-around;
+            padding-top: 10px;
+
+        }    
+    }
+
+    .imgStaff{
+        width: 100%;
+        padding: 5px ;
+       
+    }
+
+    .loader{
+        position: fixed;
+        bottom: 0;
+        left: 50%;
+        right: 0;
+        top: 50%;
+        height: 100%;
+        width: 100%;
+        z-index: 9999;  
     }
 
 }
@@ -77,10 +109,6 @@
 // }
 
 
-.imgStaff{
-    width: 100%;
-    padding: 5px ;
-   
-}
+
   
 

+ 240 - 0
src/style/components/_form.scss

@@ -0,0 +1,240 @@
+.formdiv{
+    width: 100%;
+    height: 100vh;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+	font-size: 20px;
+    background-image: url("../img/depositphotos_80275194-stock-illustration-russian-old-fair-bazaar-vector.jpg");
+    background-position: center; /* Center the image */
+    background-repeat: no-repeat; /* Do not repeat the image */
+    background-size: cover; 
+    
+    .form {
+        box-sizing: border-box;
+        width: 460px;
+        box-shadow: 2px 2px 5px 1px rgba(0,0,0,0.2);
+        padding-bottom: 40px;
+        border-radius: 3px;
+        background-color: rgba(247, 240, 240, 0.7);
+        
+        
+        h1 {
+            box-sizing: border-box;
+            padding: 20px;
+        }
+    }
+
+    .input {
+        margin: 20px auto;
+        width: 80%;
+        display: block;
+        border: none;
+        padding: 10px 0;
+        border-bottom: solid 1px $color;
+        transition: all 0.3s cubic-bezier(.64,.09,.08,1);
+        background: linear-gradient(to bottom, rgba(255,255,255,0) 96%, $color 4%);
+        background-position: -400px 0;
+        background-size: 400px 100%;
+        background-repeat: no-repeat;
+        color: darken($color, 1%);
+        &:focus {
+            box-shadow: none;
+            outline: none;
+            background-position: 0 0;
+            &::-webkit-input-placeholder {
+                color: $color;
+                font-size: 11px;
+                transform: translateY(-20px);
+                visibility: visible !important;
+            }
+        }
+        option{
+            background: rgba(247, 240, 240, 0.7);
+            border-radius: 3px;
+        }
+        select::-ms-expand { /* for IE 11 */
+            appearance: none;
+        }
+    }
+    
+    .textarea {
+        margin: 20px auto;
+        width: 80%;
+        height: 100px;
+        display: block;
+        border: none;
+        padding: 20px 0;
+        overflow: hidden;
+        border-bottom: solid 1px $color;
+        transition: all 0.3s cubic-bezier(.64,.09,.08,1);
+        background: linear-gradient(to bottom, rgba(255,255,255,0) 96%, $color 4%);
+        background-position: -400px 0;
+        background-size: 400px 100%;
+        background-repeat: no-repeat;
+        color: darken($color, 1%);
+        &:focus {
+            box-shadow: none;
+            outline: none;
+            background-position: 0 0;
+            &::-webkit-input-placeholder {
+                color: $color;
+                font-size: 11px;
+                transform: translateY(-20px);
+                visibility: visible !important;
+            }
+        }
+    }
+
+    .buttonConteiner{
+        display: flex;
+        justify-content: center;
+    }
+
+    .button {
+        border: none;
+        background: $color;
+        cursor: pointer;
+        border-radius: 3px;
+        padding: 6px;
+        margin: 10px 30px;
+        width: 80%;
+        color: white;
+        margin-left: 25px;
+        box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);
+        &:hover { 
+          transform: translateY(-3px);
+          box-shadow: 0 6px 6px 0 rgba(0,0,0,0.2);
+        }
+    }
+
+}
+
+input[type=number]::-webkit-inner-spin-button, 
+input[type=number]::-webkit-outer-spin-button { 
+  -webkit-appearance: none; 
+  margin: 0; 
+}
+
+.upload-zone {
+    padding: 3px;
+    cursor: pointer;
+    position: absolute;
+    left: 33%;
+    top: 60%;
+    -webkit-transform: translate(-50%, -50%);
+    -ms-transform: translate(-50%, -50%);
+    -moz-transform: translate(-50%, -50%);
+    -o-transform: translate(-50%, -50%);
+    transform: translate(-50%, -50%);
+    -webkit-border-radius: 20%;
+    -ms-border-radius: 20%;
+    -moz-border-radius: 20%;
+    -o-border-radius: 20%;
+    border-radius: 20%;
+    -webkit-transition: 0.3s;
+    -ms-transition: 0.3s;
+    -moz-transition: 0.3s;
+    -o-transition: 0.3s;
+    transition: 0.3s;
+  }
+  .upload-zone:before {
+    display: block;
+    width: 80px;
+    height: 80px;
+    border: 3px dashed $color;
+    position: relative;
+    -webkit-border-radius: 20%;
+    -ms-border-radius: 20%;
+    -moz-border-radius: 20%;
+    -o-border-radius: 20%;
+    border-radius: 20%;
+    content: " ";
+    display: block;
+    -webkit-transition: 0.3s;
+    -ms-transition: 0.3s;
+    -moz-transition: 0.3s;
+    -o-transition: 0.3s;
+    transition: 0.3s;
+  }
+  .upload-zone:hover {
+    background: $color;
+  }
+  .upload-zone:hover:before {
+    border-color: #fff;
+  }
+  .upload-zone:hover i:before, .upload-zone:hover i:after {
+    background: #fff;
+  }
+  .upload-zone i {
+    display: block;
+    width: 20%;
+    height: 20%;
+    -webkit-border-radius: 50%;
+    -ms-border-radius: 50%;
+    -moz-border-radius: 50%;
+    -o-border-radius: 50%;
+    border-radius: 50%;
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    -webkit-transform: translate(-50%, -50%);
+    -ms-transform: translate(-50%, -50%);
+    -moz-transform: translate(-50%, -50%);
+    -o-transform: translate(-50%, -50%);
+    transform: translate(-50%, -50%);
+    -webkit-transition: 0.3s;
+    -ms-transition: 0.3s;
+    -moz-transition: 0.3s;
+    -o-transition: 0.3s;
+    transition: 0.3s;
+  }
+  .upload-zone i:before, .upload-zone i:after {
+    background: $color;
+    top: 50%;
+    left: 50%;
+    content: " ";
+    display: block;
+    -webkit-border-radius: 4px;
+    -ms-border-radius: 4px;
+    -moz-border-radius: 4px;
+    -o-border-radius: 4px;
+    border-radius: 4px;
+    -webkit-transition: 0.3s;
+    -ms-transition: 0.3s;
+    -moz-transition: 0.3s;
+    -o-transition: 0.3s;
+    transition: 0.3s;
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    -webkit-transform: translate(-50%, -50%);
+    -ms-transform: translate(-50%, -50%);
+    -moz-transform: translate(-50%, -50%);
+    -o-transform: translate(-50%, -50%);
+    transform: translate(-50%, -50%);
+  }
+  .upload-zone i:before {
+    width: 100%;
+    height: 3px;
+  }
+  .upload-zone i:after {
+    width: 3px;
+    height: 100%;
+  }
+  .upload-zone input[type='file'] {
+    display: none;
+  }
+  
+   .zone2{
+    left: 43%;
+    top: 60%;
+  }
+  .zone3{
+    left: 53%;
+    top: 60%;
+  }
+  .zone4{
+    left: 63%;
+    top: 60%;
+  }

+ 127 - 8
src/style/components/_formLogin.scss

@@ -6,10 +6,7 @@
     align-items: center;
 	font-size: 20px;
     margin: 0 auto ;
-    // background-color: #c1bdba;
     background-image: url("../img/depositphotos_80275194-stock-illustration-russian-old-fair-bazaar-vector.jpg");
-    
-    //height: 500px; /* You must set a specified height */
     background-position: center; /* Center the image */
     background-repeat: no-repeat; /* Do not repeat the image */
     background-size: cover; 
@@ -59,15 +56,16 @@ h1 {
     background-size: 200px 100%;
     background-repeat: no-repeat;
     color: darken($el-color, 20%);
+
     &:focus {
         box-shadow: none;
         outline: none;
         background-position: 0 0;
         &::-webkit-input-placeholder {
-        color: $el-color;
-        font-size: 11px;
-        transform: translateY(-20px);
-        visibility: visible !important;
+            color: $el-color;
+            font-size: 11px;
+            transform: translateY(-20px);
+            visibility: visible !important;
         }
     }
 }
@@ -88,4 +86,125 @@ h1 {
         transform: translateY(-3px);
         box-shadow: 0 6px 6px 0 rgba(0,0,0,0.2);
     }
-}
+}
+
+
+h1, .input::-webkit-input-placeholder, .button {
+    font-family: 'roboto', sans-serif;
+    transition: all 0.3s ease-in-out;
+  }
+  
+  h1 {
+    height: 100px;
+    width: 100%;
+    font-size: 18px;
+    background: darken($color, 4%);
+    color: white;
+    line-height: 150%;
+    border-radius: 3px 3px 0 0;
+    box-shadow: 0 2px 5px 1px rgba(0,0,0,0.2);
+  }
+  
+  .form {
+    box-sizing: border-box;
+    width: 460px;
+    margin: auto 0;
+    box-shadow: 2px 2px 5px 1px rgba(0,0,0,0.2);
+    padding-bottom: 40px;
+    border-radius: 3px;
+  }
+  
+  .input {
+    margin: 20px 25px;
+    width: 80%;
+    display: block;
+    border: none;
+    padding: 10px 0;
+    border-bottom: solid 1px $color;
+    transition: all 0.3s cubic-bezier(.64,.09,.08,1);
+    background: linear-gradient(to bottom, rgba(255,255,255,0) 96%, $color 4%);
+    background-position: -200px 0;
+    background-size: 200px 100%;
+    background-repeat: no-repeat;
+    color: darken($color, 1%);
+    &:focus {
+      box-shadow: none;
+      outline: none;
+      background-position: 0 0;
+      &::-webkit-input-placeholder {
+        color: $color;
+        font-size: 11px;
+        transform: translateY(-20px);
+        visibility: visible !important;
+      }
+    }
+  }
+  //.input:focus::-webkit-input-placeholder {text-indent: 500px; transition: text-indent 0.5s ease;}
+  .button {
+    border: none;
+    background: $color;
+    cursor: pointer;
+    border-radius: 3px;
+    padding: 6px;
+    margin-bottom: 10px;
+    width: 80%;
+    color: white;
+    margin-left: 25px;
+    box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);
+    &:hover { 
+      transform: translateY(-3px);
+      box-shadow: 0 6px 6px 0 rgba(0,0,0,0.2);
+    }
+  }
+  // .allStaffs{
+    
+  //   max-width: 1500px;
+  //    display: flex;
+  //     flex-wrap: wrap;
+  //     justify-content: center;
+  //     align-items: center;
+  //     align-content: center;
+  // }
+  // .staffs{
+  //   max-width: 1500px;
+  //   display: flex;
+  //     flex-wrap: wrap;
+  //     justify-content: center;
+  //     align-items: center;
+  //     align-content: center;
+      
+  // }
+  // .staff{
+  //    width: 350px;
+     
+  // }
+  .main{
+    display: flex;
+  }
+  
+  .sider{
+    background-color: #FD7F71
+  }
+  .auth__button{
+  
+    width: 100%;
+    display : flex;
+    padding-top: 30px;
+    padding-bottom: 30px;
+    
+  }
+  .btn1{
+    width: 180px;
+      margin-left: 0px;
+      border-radius: 0px;
+      padding-bottom: 10px;
+      padding-top: 10px;
+  }
+  .btn2{
+    width: 180px;
+      margin-left: 0px;
+      border-radius: 0px;
+      padding-bottom: 10px;
+      padding-top: 10px;
+  }
+  

+ 93 - 0
src/style/components/_header.scss

@@ -3,6 +3,10 @@
 
 	&__logo {
 		width: 20%;
+		margin: 0 auto;
+		display: flex;
+		justify-content: center;
+		align-items: center;	
 	}
 
 	&__searchLine{
@@ -34,4 +38,93 @@
 			}
 		}
 	}
+}
+
+.searchInput::-webkit-input-placeholder, .button {
+    font-family: 'roboto', sans-serif;
+    transition: all 0.3s ease-in-out;
+}
+  
+.searchInput{   
+	margin: 40px 25px;
+	width: 75%;
+	display: block;
+	border: none;
+	padding: 10px 0;
+	border-bottom: solid 1px $color;
+	transition: all 0.3s cubic-bezier(.64,.09,.08,1);
+	background: linear-gradient(to bottom, rgba(255,255,255,0) 96%, $color 4%);
+	background-position: -700px 0;
+	background-size: 700px 100%;
+	background-repeat: no-repeat;
+	color: darken($color,1%);
+	
+	&:focus {
+		box-shadow: none;
+		outline: none;
+		background-position: 0 0;
+		&::-webkit-input-placeholder {
+			text-indent: 700px; transition: text-indent 0.5s ease;
+		}
+	}
+}
+.searchBtn{
+    border:none;
+    outline: none;
+    border: 0px;
+    cursor: pointer;
+	color: $primary;
+	transition: .3s ease-out;
+	
+	&:hover,
+	&:focus { 
+    	transform: scale(1.125);
+    
+    	.icon {
+	  		transform: scale(1.25); 
+		} 
+	} 
+        // Display/alignment
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        align-content: center;
+        
+        // Sizing
+        width: 68px;
+        height: 68px;
+        border-radius: 34px;
+        
+        // Style
+        background-color: $white;
+        box-shadow:
+          0 1px 1px rgba($background-3, .6),
+          0 3px 3px rgba($background-3, .4),
+          0 8px 16px rgba($background-3, .3);
+        
+        &:hover,
+        &:focus {
+          box-shadow:
+            0 2px 2px rgba($background-3, .4),
+            0 4px 4px rgba($background-3, .3),
+            0 12px 32px rgba($background-3, .3); } 
+}
+
+.fill-currentcolor {
+	fill: currentcolor; 
+}
+  
+.fill-none {
+	fill: none; 
+}
+
+.icon {
+    width: 24px;
+    height: 24px;
+    transition: .3s ease-out;
+        
+    @media (min-width: $breakpoint) {
+      	width: 32px;
+		height: 32px; 
+	} 
 }

+ 53 - 0
src/style/components/_leftMenu.scss

@@ -0,0 +1,53 @@
+.ant-layout-sider-children{
+    background: $el-color;  
+}
+.ant-menu-submenu-title{
+    background: $el-color;  
+}
+.ant-menu-dark{
+    color: rgba(255, 255, 255, 0.9);
+    background: $el-color;
+
+    &:hover {
+        background: rgb(223, 111, 98);
+    }
+}
+
+.ant-menu .ant-menu-sub .ant-menu-inline{
+    background: $el-color;
+    // color: rgba(255, 255, 255, 0.9);
+
+    & a :hover{
+        background: rgb(223, 111, 98);
+    }
+
+    .ant-menu-item{
+        background: $el-color;
+        color: rgba(255, 255, 255, 0.9);
+        
+        .ant-menu-item:hover {
+            background: #f0f0f0;
+        }
+    }
+    
+}
+
+.ant-layout-sider-trigger {
+    position: fixed;
+    text-align: center;
+    bottom: 0;
+    cursor: pointer;
+    height: 48px;
+    line-height: 48px;
+    color: #fff;
+    background: #e06b62;
+    z-index: 1;
+    transition: all 0.2s;
+}
+
+.ant-menu .ant-menu-sub .ant-menu-inline{
+    & :hover{
+        background: #e06b62;
+    }
+    
+}

+ 19 - 169
src/style/components/auth.scss

@@ -1,5 +1,3 @@
-$color: #FD7F71;
-
 h1, .input::-webkit-input-placeholder, .button {
   font-family: 'roboto', sans-serif;
   transition: all 0.3s ease-in-out;
@@ -23,9 +21,6 @@ h1 {
   box-shadow: 2px 2px 5px 1px rgba(0,0,0,0.2);
   padding-bottom: 40px;
   border-radius: 3px;
-
-
-
 }
 
 .input {
@@ -53,7 +48,6 @@ h1 {
     }
   }
 }
-
 //.input:focus::-webkit-input-placeholder {text-indent: 500px; transition: text-indent 0.5s ease;}
 .button {
   border: none;
@@ -71,52 +65,35 @@ h1 {
     box-shadow: 0 6px 6px 0 rgba(0,0,0,0.2);
   }
 }
-
-.allStaffs{
+// .allStaffs{
   
-  max-width: 1500px;
-   display: flex;
-    flex-wrap: wrap;
-    justify-content: center;
-    align-items: center;
-    align-content: center;
-}
-.staffs{
-  max-width: 1500px;
-  display: flex;
-    flex-wrap: wrap;
-    justify-content: center;
-    align-items: center;
-    align-content: center;
+//   max-width: 1500px;
+//    display: flex;
+//     flex-wrap: wrap;
+//     justify-content: center;
+//     align-items: center;
+//     align-content: center;
+// }
+// .staffs{
+//   max-width: 1500px;
+//   display: flex;
+//     flex-wrap: wrap;
+//     justify-content: center;
+//     align-items: center;
+//     align-content: center;
     
-}
-.staff{
-   width: 350px;
+// }
+// .staff{
+//    width: 350px;
    
-}
-
+// }
 .main{
   display: flex;
 }
 
-.loader{
-  position: fixed;
-  bottom: 0;
-  left: 50%;
-  right: 0;
-  top: 50%;
-  height: 100%;
-  width: 100%;
-  z-index: 9999;
-  
-   
-}
 .sider{
   background-color: #FD7F71
 }
-
-
-
 .auth__button{
 
   width: 100%;
@@ -139,131 +116,4 @@ h1 {
     padding-bottom: 10px;
     padding-top: 10px;
 }
-.ant-layout-sider-children{
-  background: #FD7F71;
-  
-
-}
 
-.upload-zone {
-  padding: 3px;
-  cursor: pointer;
-  position: absolute;
-  left: 33%;
-  top: 60%;
-  -webkit-transform: translate(-50%, -50%);
-  -ms-transform: translate(-50%, -50%);
-  -moz-transform: translate(-50%, -50%);
-  -o-transform: translate(-50%, -50%);
-  transform: translate(-50%, -50%);
-  -webkit-border-radius: 20%;
-  -ms-border-radius: 20%;
-  -moz-border-radius: 20%;
-  -o-border-radius: 20%;
-  border-radius: 20%;
-  -webkit-transition: 0.3s;
-  -ms-transition: 0.3s;
-  -moz-transition: 0.3s;
-  -o-transition: 0.3s;
-  transition: 0.3s;
-}
-.upload-zone:before {
-  display: block;
-  width: 80px;
-  height: 80px;
-  border: 3px dashed $color;
-  position: relative;
-  -webkit-border-radius: 20%;
-  -ms-border-radius: 20%;
-  -moz-border-radius: 20%;
-  -o-border-radius: 20%;
-  border-radius: 20%;
-  content: " ";
-  display: block;
-  -webkit-transition: 0.3s;
-  -ms-transition: 0.3s;
-  -moz-transition: 0.3s;
-  -o-transition: 0.3s;
-  transition: 0.3s;
-}
-.upload-zone:hover {
-  background: $color;
-}
-.upload-zone:hover:before {
-  border-color: #fff;
-}
-.upload-zone:hover i:before, .upload-zone:hover i:after {
-  background: #fff;
-}
-.upload-zone i {
-  display: block;
-  width: 20%;
-  height: 20%;
-  -webkit-border-radius: 50%;
-  -ms-border-radius: 50%;
-  -moz-border-radius: 50%;
-  -o-border-radius: 50%;
-  border-radius: 50%;
-  position: absolute;
-  left: 50%;
-  top: 50%;
-  -webkit-transform: translate(-50%, -50%);
-  -ms-transform: translate(-50%, -50%);
-  -moz-transform: translate(-50%, -50%);
-  -o-transform: translate(-50%, -50%);
-  transform: translate(-50%, -50%);
-  -webkit-transition: 0.3s;
-  -ms-transition: 0.3s;
-  -moz-transition: 0.3s;
-  -o-transition: 0.3s;
-  transition: 0.3s;
-}
-.upload-zone i:before, .upload-zone i:after {
-  background: $color;
-  top: 50%;
-  left: 50%;
-  content: " ";
-  display: block;
-  -webkit-border-radius: 4px;
-  -ms-border-radius: 4px;
-  -moz-border-radius: 4px;
-  -o-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-transition: 0.3s;
-  -ms-transition: 0.3s;
-  -moz-transition: 0.3s;
-  -o-transition: 0.3s;
-  transition: 0.3s;
-  position: absolute;
-  left: 50%;
-  top: 50%;
-  -webkit-transform: translate(-50%, -50%);
-  -ms-transform: translate(-50%, -50%);
-  -moz-transform: translate(-50%, -50%);
-  -o-transform: translate(-50%, -50%);
-  transform: translate(-50%, -50%);
-}
-.upload-zone i:before {
-  width: 100%;
-  height: 3px;
-}
-.upload-zone i:after {
-  width: 3px;
-  height: 100%;
-}
-.upload-zone input[type='file'] {
-  display: none;
-}
-
- .zone2{
-  left: 43%;
-  top: 60%;
-}
-.zone3{
-  left: 53%;
-  top: 60%;
-}
-.zone4{
-  left: 63%;
-  top: 60%;
-}

+ 0 - 97
src/style/components/searchLine.scss

@@ -1,97 +0,0 @@
-$color: #FD7F71;
-$background: #F7FBFB;
-$background-2: #EAF5F5;
-$background-3: #BBD8D8;
-$primary: #FD7F71;
-$white: #fff;
-$breakpoint: 768px;
-.searchInput::-webkit-input-placeholder, .button {
-    font-family: 'roboto', sans-serif;
-    transition: all 0.3s ease-in-out;
-  }
-
-
-.searchInput{   
-margin: 40px 25px;
-width: 75%;
-display: block;
-border: none;
-padding: 10px 0;
-border-bottom: solid 1px $color;
-transition: all 0.3s cubic-bezier(.64,.09,.08,1);
-background: linear-gradient(to bottom, rgba(255,255,255,0) 96%, $color 4%);
-background-position: -700px 0;
-background-size: 700px 100%;
-background-repeat: no-repeat;
-color: darken($color,1%);
-&:focus {
-  box-shadow: none;
-  outline: none;
-  background-position: 0 0;
-  &::-webkit-input-placeholder {
-    text-indent: 700px; transition: text-indent 0.5s ease;
-  }
-}
-}
-.searchBtn{
-    border:none;
-    outline: none;
-    border: 0px;
-    cursor: pointer;
-  color: $primary;
-  transition: .3s ease-out;
-  
-  &:hover,
-  &:focus { 
-    transform: scale(1.125);
-    
-    .icon {
-      transform: scale(1.25); } } 
-        // Display/alignment
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        align-content: center;
-        
-        // Sizing
-        width: 68px;
-        height: 68px;
-        border-radius: 34px;
-        
-        // Style
-        background-color: $white;
-        box-shadow:
-          0 1px 1px rgba($background-3, .6),
-          0 3px 3px rgba($background-3, .4),
-          0 8px 16px rgba($background-3, .3);
-        
-        &:hover,
-        &:focus {
-          box-shadow:
-            0 2px 2px rgba($background-3, .4),
-            0 4px 4px rgba($background-3, .3),
-            0 12px 32px rgba($background-3, .3); } 
-  }
-
-  .fill-currentcolor {
-    fill: currentcolor; }
-  
-  .fill-none {
-    fill: none; }
-
-    .icon {
-        width: 24px;
-        height: 24px;
-        transition: .3s ease-out;
-        
-        @media (min-width: $breakpoint) {
-          width: 32px;
-          height: 32px; } }
-          
-          
-         
-          
-          
-         
-          
-         

+ 4 - 35
src/style/index.scss

@@ -1,47 +1,16 @@
-
 @import "~antd/dist/antd.css";
 
 @import "abstracts/variables.scss";
 
 @import "base/base";
-@import "base/typography";
 
 @import "layout/container";
 
 @import "components/header";
-@import "components/formLogin";
 @import "components/allStaff";
+@import "components/leftMenu";
+// @import "components/formLogin";
+@import "components/form";
 
-@import './components/auth.scss';
-@import './components/searchLine.scss'
-
-
-// *, *:before, *:after{
-//   box-sizing:border-box; 
-// }
-
-// body{
-//     max-width: 1400px;
-//     min-width: 300px;
-//     width: 100%;
-// 	font-size: 20px;
-//     margin: 0 auto ;
-//     background-color: aqua;
-//     // background-image: url("../img/pngtree-Analog-Clock-Clock-Timepiece-Time-photo-484074.jpg");
-//     // background-color: #cccccc; /* Used if the image is unavailable */
-//     // height: 500px; /* You must set a specified height */
-//     // background-position: center; /* Center the image */
-//     // background-repeat: no-repeat; /* Do not repeat the image */
-//     // background-size: cover; 
-// }
-
-// .contentDiv{
-//     display: flex;   
-// }
-
-// .content{
-//     width: 80%;
-//     display: flex;
-//     flex-wrap: wrap;
-// }
+// @import './components/auth.scss';