diff --git a/package.json b/package.json index f009926..e4ac57f 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "@coreui/react-chartjs": "^2.0.0", "@coreui/utils": "^1.3.1", "@material-ui/core": "^4.12.4", + "@mui/material": "^5.11.12", "@reduxjs/toolkit": "^1.9.2", "@wojtekmaj/enzyme-adapter-react-17": "^0.6.5", "axios": "^0.25.0", @@ -47,7 +48,7 @@ "chart.js": "^3.6.0", "classnames": "^2.3.1", "core-js": "^3.19.1", - "country-state-city": "^3.0.1", + "country-state-city": "^3.1.2", "enzyme": "^3.11.0", "file-saver": "^2.0.5", "prop-types": "^15.7.2", @@ -58,6 +59,7 @@ "react-datepicker": "^4.8.0", "react-dom": "^18.0.0", "react-hot-toast": "^2.4.0", + "react-multistep": "^5.5.8", "react-paginate": "^8.1.3", "react-qr-code": "^2.0.11", "react-redux": "^7.2.9", diff --git a/src/_nav.js b/src/_nav.js index 4d7b0b0..63b8c6a 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -155,7 +155,7 @@ const _nav = [ component: CNavItem, name: 'Business Type', icon: , - to: '/business', + to: '/business_type', }, // { diff --git a/src/routes.js b/src/routes.js index c368f39..0af3b2f 100644 --- a/src/routes.js +++ b/src/routes.js @@ -61,14 +61,16 @@ import Testimonials from './views/Testimonials/Testimonials' import AddTestimonial from './views/Testimonials/AddTestimonial' import ViewTestimonial from './views/Testimonials/ViewTestimonial' import Policies from './views/configuration/Policies/Policies' +////purpose import Purpose from './views/configuration/Purpose/Purpose' import AddPurpose from './views/configuration/Purpose/AddPurpose' +//language import Languages from './views/configuration/Language/Languages' import AddLanguage from './views/configuration/Language/AddLanguage' import EditLanguage from './views/configuration/Language/EditLanguage' -// +//BusinessType import BusinessType from './views/configuration/Business/Business' -import AddBusinessType from './views/configuration/Language/AddLanguage' +import AddBusinessType from './views/configuration/Business/AddBusiness' import EditBusinessType from './views/configuration/Business/EditLanguage' import EditPurpose from './views/configuration/Purpose/EditPurpose.js' const routes = [ @@ -140,16 +142,16 @@ const routes = [ { path: '/languages', name: 'languages', element: Languages }, { path: '/language/add', name: 'Add languages', element: AddLanguage }, { path: '/language/edit/:id', name: 'Edit languages', element: EditLanguage }, - //business + //business Type - { path: '/business', name: 'business', element: BusinessType }, - { path: '/business/add', name: 'Add business', element: AddBusinessType }, - { path: '/business/edit/:id', name: 'Edit business', element: EditBusinessType }, + { path: '/business_type', name: 'business', element: BusinessType }, + { path: '/business_type/add', name: 'Add business', element: AddBusinessType }, + { path: '/business_type/edit/:id', name: 'Edit business', element: EditBusinessType }, //purpose - { path: '/purpose', name: 'purpose', element: Languages }, - { path: '/purpose/add', name: 'Add purpose', element: AddLanguage }, + { path: '/purpose', name: 'purpose', element: Purpose }, + { path: '/purpose/add', name: 'Add purpose', element: AddPurpose }, { path: '/purpose/edit/:id', name: 'Edit purpose', element: EditPurpose }, //languge diff --git a/src/views/Business/AddBusiness.js b/src/views/Business/AddBusiness.js index aa98f46..d4927f6 100644 --- a/src/views/Business/AddBusiness.js +++ b/src/views/Business/AddBusiness.js @@ -1,190 +1,61 @@ - - - -import React, { useEffect, useState } from 'react' -import Button from '@material-ui/core/Button' -import { Link, useNavigate } from 'react-router-dom' -import swal from 'sweetalert' +import React, { useState, useEffect } from 'react' +// import { Button } from '@mui/material' import axios from 'axios' + +import { Link, useNavigate } from 'react-router-dom' +import { CCard, CCardBody, CCardGroup, CCol, CContainer, CRow } from '@coreui/react' +import SelectPurpose from './multiform/SelectPurpose.js' +import SelectBusiness from './multiform/SelectBusiness.js' +import SelectLanguage from './multiform/selectLanguage.js' +import BAddress from './multiform/BAddress.js' +import Button from '@material-ui/core/Button' + + import { isAutheticated } from 'src/auth' -// import { WebsiteURL } from '../WebsiteURL' + const AddBusiness = () => { - const [WebsiteURL, setWebsiteURL] = useState('https://reinventuniforms.in/') const token = isAutheticated() + const [productId, setProductId] = useState('') + const [viewState, setViewState] = useState(1) + + const navigate = useNavigate() - const [data, setData] = useState({ - image: '', - imageURL: '', - name: '', - email: '', - address_line_1: '', - address_line_2: '', - city: '', - state_name: '', - short_url: '', - contact_Number: '', - contact_Person_Name: '', - price_Lable: '', - pin_Code: '' - }) - - const [cities, setCities] = useState([]) - const [loading, setLoading] = useState(false) - const [validForm, setValidForm] = useState(false) + const [data, setData] = useState({ + business: '', + purpose: '', - const [limiter, setLimiter] = useState({ - name: 100, - nameHas: 100, + language: [], + country: '', + state: '', + city: '', + address_Line_1: '', + address_Line_2: '', + pincode: '' }) - const getRequired = () => { - axios - .get(`/api/city`, { - headers: { - 'Access-Control-Allow-Origin': '*', - Authorization: `Bearer ${token}`, - }, - }) - .then((res) => { - setCities([...res.data.data]) - }) - .catch((err) => { }) + + + console.log(data) + + const handleView = (n) => { + if (viewState === n) return + setViewState(n) } - - useEffect(() => { - getRequired() - }, []) - const [errors, setErrors] = useState({ - emailError: '', - - - }) - const validEmailRegex = RegExp( - /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i, - ) - const validateForm = () => { - let valid = true - Object.values(errors).forEach((val) => { - if (val.length > 0) { - valid = false - return false - } - }) - Object.values(data.email).forEach((val) => { - if (val.length <= 0) { - valid = false - return false - } - }) - return valid - } - - //cheking email and password - useEffect(() => { - if (validateForm()) { - setValidForm(true) - } else { - setValidForm(false) - } - }, [errors]) - // const handleChange = (e) => { - // const { name, value } = e.target - - // switch (name) { - // case 'email': - // setErrors({ - // ...errors, - // emailError: validEmailRegex.test(value) ? '' : 'Email is not valid!', - // }) - - // break - // case 'password': - // setErrors((errors) => ({ - // ...errors, - // passwordError: validPasswordRegex.test(value) - // ? '' - // : 'Password Shoud Be 8 Characters Long, Atleast One Uppercase, Atleast One Lowercase,Atleast One Digit, Atleast One Special Character', - // })) - // break - // default: - // break - // } - - // setAuth({ ...auth, [name]: value }) - // } - - - const handleChange = (e) => { - if (e.target.id === 'name') { - if (e.target.value.length === limiter[e.target.id] + 1) return - setLimiter((prev) => ({ - ...prev, - [e.target.id + 'Has']: prev[e.target.id] - e.target.value.length, - })) - setData((prev) => ({ ...prev, short_url: e.target.value.toLowerCase().replace(/\s+/g, '-') })) - } - if (e.target.id === 'email') { - setErrors({ - ...errors, - emailError: validEmailRegex.test(e.target.value) ? '' : 'Email is not valid!', - }) - - - } - if (e.target.id === 'city') { - const city = cities.filter((m) => e.target.value === m?._id) - setData((prev) => ({ ...prev, state_name: city[0]?.state?.state_name || '' })) - } - if (e.target.id === 'image') { - if ( - e.target.files[0]?.type === 'image/jpeg' || - e.target.files[0]?.type === 'image/png' || - e.target.files[0]?.type === 'image/jpg' - ) { - setData((prev) => ({ - ...prev, - imageURL: URL.createObjectURL(e.target.files[0]), - image: e.target.files[0], - })) - return - } else { - swal({ - title: 'Warning', - text: 'Upload jpg, jpeg, png only.', - icon: 'error', - button: 'Close', - dangerMode: true, - }) - setData((prev) => ({ - ...prev, - imageURL: '', - image: '', - })) - e.target.value = null - return - } - } - setData((prev) => ({ ...prev, [e.target.id]: e.target.value })) - } - const handleSubmit = () => { if ( - data.name.trim() === '' || - data.email.trim() === '' || - data.contact_Number === '' || + data.address_Line_1.trim() === '' || + data.address_Line_2.trim() === '' || - data.contact_Person_Name === '' || - data.address_line_1.trim() === '' || - data.address_line_2.trim() === '' || - data.price_Lable.trim() === '' || + data.business === '' || + data.purpose.trim() === '' || + data.language === '' || + data.country === '' || + data.state === '' || data.city === '' || - data.pin_Code.trim() === '' || - data.short_url === '' || - data.state_name === '' - // data.imageURL.trim() === '' + data.pincode.trim() === '' ) { swal({ title: 'Warning', @@ -197,24 +68,22 @@ const AddBusiness = () => { } setLoading(true) const formData = new FormData() - formData.set('name', data.name) - formData.set('email', data.email) + formData.set('address_Line_1', data.address_Line_1) + formData.set('address_Line_2', data.address_Line_2) - formData.set('address_line_1', data.address_line_1) - formData.set('address_line_2', data.address_line_2) + formData.set('purpose', data.purpose) + formData.set('business', data.business) + formData.set('language', data.language) + + formData.set('country', data.country) formData.set('city', data.city) - formData.set('state_name', data.state_name) - formData.set('contact_Number', data.contact_Number) - formData.set('contact_Person_Name', data.contact_Person_Name) + formData.set('state', data.state) - formData.set('price_Lable', data.price_Lable) - formData.set('pin_Code', data.pin_Code) - formData.set('url', WebsiteURL + data.short_url + '/login') - formData.set('short_url', data.short_url) - formData.append('image', data.image) + formData.set('pincode', data.pincode) + axios - .post(`/api/franchisee/`, formData, { + .post(`/api/businesses/add`, formData, { headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'multipart/formdata', @@ -224,12 +93,12 @@ const AddBusiness = () => { .then((res) => { swal({ title: 'Added', - text: res?.data?.message ? res?.data?.message : 'Franchisee added successfully!', + text: res?.data?.message ? res?.data?.message : 'Business added successfully!', icon: 'success', button: 'Return', }) setLoading(false) - navigate('/franchisees', { replace: true }) + navigate('/businesses', { replace: true }) }) .catch((err) => { setLoading(false) @@ -245,9 +114,9 @@ const AddBusiness = () => { } return ( -
-
-
+ + +
- Add Franchisee + Add Business
-
-

-
-
- - +
- -
-
-
-
-
-
-
-
-
- - handleChange(e)} - /> -

Remaining characters : {limiter.nameHas}

-
- -
- - handleChange(e)} - /> - {errors.emailError && ( -

{errors.emailError}

- )} -
- -
- - handleChange(e)} - /> -
-
- - handleChange(e)} - /> -
- -
- - -
-
- - -
-
- - handleChange(e)} - /> - {/* {data.pin_Code ? <> - {8 - data.pin_Code.length} characters left - : <> - } */}
-
-
-
-
- -
- - handleChange(e)} - /> -
-
- - handleChange(e)} - /> -
-
- -
- - {WebsiteURL} - - handleChange(e)} + + + + + + + + {viewState === 1 && ( + + )} + {viewState === 2 && ( + + )} + {viewState === 3 && ( + + )} + {viewState === 4 && ( + + )} + + + + + + + + +
+ + + +
-
- -
- -
- -
- - handleChange(e)} - /> -

Upload jpg, jpeg and png only*

-
-
- Uploaded Image will be shown here -
-
-
-
-
-
+ + + + + + ) } -export default AddBusiness +export default AddBusiness \ No newline at end of file diff --git a/src/views/Business/Businesses.js b/src/views/Business/Businesses.js index 67d7a82..6ac463d 100644 --- a/src/views/Business/Businesses.js +++ b/src/views/Business/Businesses.js @@ -23,14 +23,14 @@ const Businesses = () => { setItemPerPage(e.target.value) } - const getCategories = () => { + const getbusinesses = () => { axios - .get(`/api/franchisee`, { + .get(`/api/businesses/getall`, { headers: { 'Access-Control-Allow-Origin': '*', Authorization: `Bearer ${token}` }, }) .then((res) => { - // console.log(res.data.data) - setBusinessesData(res.data.data) + console.log(res.data) + setBusinessesData(res.data?.businesses) setLoading(false) }) .catch((err) => { @@ -40,7 +40,7 @@ const Businesses = () => { } useEffect(() => { - getCategories() + getbusinesses() }, [success]) useEffect(() => { @@ -53,42 +53,42 @@ const Businesses = () => { }, [currentPage, itemPerPage, BusinessesData]) - const handleVarification = (id) => { - swal({ - title: 'Are you sure?', - icon: 'warning', - buttons: { Yes: { text: 'Yes', value: true }, Cancel: { text: 'Cancel', value: 'cancel' } }, - }).then((value) => { - if (value === true) { - axios - .get(`/api/franchisee/admin/verify/${id}`, { - headers: { - 'Access-Control-Allow-Origin': '*', - Authorization: `Bearer ${token}`, - }, - }) - .then((res) => { - swal({ - title: 'success', - text: res.data.message ? res.data.message : 'Verified Successfully!', - icon: 'success', - button: 'ok', - dangerMode: true, - }) - setSuccess((prev) => !prev) - }) - .catch((err) => { - swal({ - title: 'Failled', - text: 'Something went wrong!', - icon: 'error', - button: 'Retry', - dangerMode: true, - }) - }) - } - }) - } + // const handleVarification = (id) => { + // swal({ + // title: 'Are you sure?', + // icon: 'warning', + // buttons: { Yes: { text: 'Yes', value: true }, Cancel: { text: 'Cancel', value: 'cancel' } }, + // }).then((value) => { + // if (value === true) { + // axios + // .get(`/api/i/admin/verify/${id}`, { + // headers: { + // 'Access-Control-Allow-Origin': '*', + // Authorization: `Bearer ${token}`, + // }, + // }) + // .then((res) => { + // swal({ + // title: 'success', + // text: res.data.message ? res.data.message : 'Verified Successfully!', + // icon: 'success', + // button: 'ok', + // dangerMode: true, + // }) + // setSuccess((prev) => !prev) + // }) + // .catch((err) => { + // swal({ + // title: 'Failled', + // text: 'Something went wrong!', + // icon: 'error', + // button: 'Retry', + // dangerMode: true, + // }) + // }) + // } + // }) + // } const handleDelete = (id) => { swal({ title: 'Are you sure?', @@ -97,7 +97,7 @@ const Businesses = () => { }).then((value) => { if (value === true) { axios - .delete(`/api/franchisee/${id}`, { + .delete(`/api/businesses/delete/${id}`, { headers: { 'Access-Control-Allow-Origin': '*', Authorization: `Bearer ${token}`, @@ -192,11 +192,11 @@ const Businesses = () => { > - Business Name - Logo - City + Business + {/* Logo */} + Purpose Created On - Status + {/* Status */} Actions @@ -215,20 +215,20 @@ const Businesses = () => { ) : ( - showData.map((franchisee, i) => { + showData.map((i, idx) => { return ( - - {franchisee.name} - {franchisee.banner && franchisee.banner ? + + {i.business} + {/* {i.banner && i.banner ? - No Image + No Image :

No image!

- } - {franchisee?.city?.city_name} + } */} + {i?.purpose} - {new Date(franchisee.createdAt).toLocaleString('en-IN', { + {new Date(i.createdAt).toLocaleString('en-IN', { month: '2-digit', day: 'numeric', year: 'numeric', @@ -237,29 +237,29 @@ const Businesses = () => { // hour12: true, })} - + {/* - + */} - + {/* - + - + */} - + - +
- -
-
-
- - -
-
-
-
-
- - handleChange(e)} - /> -

Remaining characters : {limiter.nameHas}

-
-
- - handleChange(e)} - /> - {errors.emailError && ( -

{errors.emailError}

- )} -
- -
- - handleChange(e)} - /> -
-
- - handleChange(e)} - /> -
- {/*
- - handleChange(e)} - /> -
-
- - handleChange(e)} - /> -
*/} -
- - -
-
- - -
-
- - handleChange(e)} - /> - {/* {data.pin_Code ? <> - {8 - data.pin_Code.length} characters left - : <> - } */}
-
-
-
-
- -
- - handleChange(e)} - /> -
-
- - handleChange(e)} - /> -
-
- -
- - {WebsiteURL} - - handleChange(e)} + + + + + + + + {viewState === 1 && ( + + )} + {viewState === 2 && ( + + )} + {viewState === 3 && ( + + )} + {viewState === 4 && ( + + )} + + + + + + + + +
+ + + +
-
-
- -
-
- - handleChange(e)} - /> -

Upload jpg, jpeg and png only*

-
-
- Uploaded Image will be shown here -
-
-
-
-
-
+ + + + + + ) } -export default EditBusiness +export default EditBusiness \ No newline at end of file diff --git a/src/views/Business/multiform/BAddress.js b/src/views/Business/multiform/BAddress.js new file mode 100644 index 0000000..f606ef9 --- /dev/null +++ b/src/views/Business/multiform/BAddress.js @@ -0,0 +1,431 @@ + +import React, { useEffect, useState } from 'react' +import Button from '@material-ui/core/Button' +import { Link, useNavigate } from 'react-router-dom' +import swal from 'sweetalert' +import axios from 'axios' +import { isAutheticated } from 'src/auth' +// import { WebsiteURL } from '../WebsiteURL' +import { Country, State, City } from 'country-state-city'; + + +const BAddress = (props) => { + const token = isAutheticated() + const navigate = useNavigate() + + const { data, setData } = props.data + + const { loading, setLoading } = props.loading + // const categories = props?.categories || [] + + const handleChange = (e) => { + // if (e.target.id === 'master_price' && /^\D+$/.test(e.target.value)) return + // if (e.target.id === 'discontinue_on') { + // if (new Date(e.target.value) < new Date()) { + // return setData((prev) => ({ + // ...prev, + // [e.target.id]: new Date().toISOString().slice(0, 10), + // })) + // } + // } + setData((prev) => ({ ...prev, [e.target.id]: e.target.value })) + } + + // const [data, setData] = useState({ + // image: '', + // imageURL: '', + // address_Line_1: '', + // address_Line_2: '', + // address_line_1: '', + // address_line_2: '', + // city: '', + // state_name: '', + // short_url: '', + // contact_Number: '', + // contact_Person_Name: '', + // price_Lable: '', + // pin_Code: '' + // }) + + // const [cities, setCities] = useState([]) + + // const [loading, setLoading] = useState(false) + const [validForm, setValidForm] = useState(false) + + + const [limiter, setLimiter] = useState({ + address_Line_1: 100, + nameHas: 100, + }) + + + + //country, city and state + const [countryCode, setCountryCode] = useState(); + + const [stateCode, setStateCode] = useState(); + const country = Country.getAllCountries() + + useEffect(() => { + + country.map(item => { + + + if (item.name === data.country) { + setCountryCode(item.isoCode) + // console.log(data.state) + } + }) + + }, [data.country]) + const state = State.getStatesOfCountry(countryCode) + useEffect(() => { + + state.map(item => { + + + if (item.name === data.state) { + setStateCode(item.isoCode) + // console.log(data.state) + } + }) + + }, [data.state]) + + + const handleSubmit = () => { + if ( + data.address_Line_1.trim() === '' || + data.address_Line_2.trim() === '' || + data.contact_Number === '' || + + data.contact_Person_Name === '' || + data.address_line_1.trim() === '' || + data.address_line_2.trim() === '' || + data.price_Lable.trim() === '' || + data.city === '' || + data.pin_Code.trim() === '' || + data.short_url === '' || + data.state_name === '' + // data.imageURL.trim() === '' + ) { + swal({ + title: 'Warning', + text: 'Fill all mandatory fields', + icon: 'error', + button: 'Close', + dangerMode: true, + }) + return + } + setLoading(true) + const formData = new FormData() + formData.set('address_Line_1', data.address_Line_1) + formData.set('address_Line_2', data.address_Line_2) + + formData.set('address_line_1', data.address_line_1) + formData.set('address_line_2', data.address_line_2) + formData.set('city', data.city) + formData.set('state_name', data.state_name) + formData.set('contact_Number', data.contact_Number) + formData.set('contact_Person_Name', data.contact_Person_Name) + + formData.set('price_Lable', data.price_Lable) + formData.set('pin_Code', data.pin_Code) + formData.set('url', WebsiteURL + data.short_url + '/login') + formData.set('short_url', data.short_url) + + formData.append('image', data.image) + axios + .post(`/api/franchisee/`, formData, { + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': 'multipart/formdata', + 'Access-Control-Allow-Origin': '*', + }, + }) + .then((res) => { + swal({ + title: 'Added', + text: res?.data?.message ? res?.data?.message : 'Franchisee added successfully!', + icon: 'success', + button: 'Return', + }) + setLoading(false) + navigate('/franchisees', { replace: true }) + }) + .catch((err) => { + setLoading(false) + const message = err.response?.data?.message || 'Something went wrong!' + swal({ + title: 'Warning', + text: message, + icon: 'error', + button: 'Retry', + dangerMode: true, + }) + }) + } + + return ( +
+
+
+
+
+ Address +
+
+

+
+ +
+ {/* */} + + + +
+
+
+
+ + + +
+
+
+
+ + + + +
+ + handleChange(e)} + /> +
+
+ + handleChange(e)} + /> +
+
+ + + +
+
+ + +
+
+ + +
+ +
+ + handleChange(e)} + /> + +
+
+
+
+ {/*
+
+
+ +
+ + handleChange(e)} + /> +
+
+ + handleChange(e)} + /> +
+
+ +
+ + {WebsiteURL} + + handleChange(e)} + /> +
+
+ +
+ +
+ +
+ + handleChange(e)} + /> +

Upload jpg, jpeg and png only*

+
+
+ Uploaded Image will be shown here +
+
+
+
*/} +
+
+ ) +} + +export default BAddress \ No newline at end of file diff --git a/src/views/Business/multiform/SelectBusiness.js b/src/views/Business/multiform/SelectBusiness.js new file mode 100644 index 0000000..a3ee44d --- /dev/null +++ b/src/views/Business/multiform/SelectBusiness.js @@ -0,0 +1,163 @@ + + + + +import React, { useEffect, useState } from 'react' +import Button from '@material-ui/core/Button' +import { Link, useNavigate } from 'react-router-dom' +import swal from 'sweetalert' +import axios from 'axios' +import { isAutheticated } from 'src/auth' + + + +const SelectBusiness = (props) => { + const token = isAutheticated() + const navigate = useNavigate() + console.log(props.handleView) + + const { data, setData } = props.data + const { loading, setLoading } = props.loading + // const categories = props?.categories || [] + + const handleChange = (e) => { + + setData((prev) => ({ ...prev, [e.target.id]: e.target.value })) + } + + + // const [loading, setLoading] = useState(false) + + + + + const [BusinessData, setBusinessData] = useState([]) + const getCategories = () => { + axios + .get(`/api/business`, { + headers: { 'Access-Control-Allow-Origin': '*', Authorization: `Bearer ${token}` }, + }) + .then((res) => { + setBusinessData(res.data.data) + setLoading(false) + }) + .catch((err) => { + console.log(err) + setLoading(false) + }) + } + + useEffect(() => { + getCategories() + }, []) + + + + + const handleSubmit = () => { + + } + + return ( +
+
+
+
+
+ Select Business +
+
+

+
+ +
+ + + + + +
+
+
+
+ + + +
+
+
+
+ + + + + +
+ + + +
+ + + + +
+
+
+ +
+
+ ) +} + +export default SelectBusiness + + diff --git a/src/views/Business/multiform/SelectPurpose.js b/src/views/Business/multiform/SelectPurpose.js new file mode 100644 index 0000000..af21165 --- /dev/null +++ b/src/views/Business/multiform/SelectPurpose.js @@ -0,0 +1,173 @@ + +import React, { useEffect, useState } from 'react' +import Button from '@material-ui/core/Button' +import { Link, useNavigate } from 'react-router-dom' +import swal from 'sweetalert' +import axios from 'axios' +import { isAutheticated } from 'src/auth' + + + +const SelectPurpose = (props) => { + const token = isAutheticated() + const navigate = useNavigate() + + const { data, setData } = props.data + + const { loading, setLoading } = props.loading + // const categories = props?.categories || [] + + const handleChange = (e) => { + + setData((prev) => ({ ...prev, [e.target.id]: e.target.value })) + } + + + // const [loading, setLoading] = useState(false) + + + const [purposeData, setPurposeData] = useState([]) + + + const getCategories = () => { + axios + .get(`/api/purpose`, { + headers: { 'Access-Control-Allow-Origin': '*', Authorization: `Bearer ${token}` }, + }) + .then((res) => { + // console.log(res.data) + setPurposeData(res.data?.data) + setLoading(false) + }) + .catch((err) => { + console.log(err) + setLoading(false) + }) + } + + useEffect(() => { + getCategories() + }, []) + + + + + const handleSubmit = () => { + + } + + return ( +
+
+
+
+
+ Select Purpose +
+
+

+
+ +
+ {/* */} + + + + +
+
+
+
+ + + +
+
+
+
+ + + + + +
+ + + +
+ + + + +
+
+
+ +
+
+ ) +} + +export default SelectPurpose \ No newline at end of file diff --git a/src/views/Business/multiform/selectLanguage.js b/src/views/Business/multiform/selectLanguage.js new file mode 100644 index 0000000..629c10d --- /dev/null +++ b/src/views/Business/multiform/selectLanguage.js @@ -0,0 +1,187 @@ + + + +import React, { useEffect, useState } from 'react' +import Button from '@material-ui/core/Button' +import { Link, useNavigate } from 'react-router-dom' +import swal from 'sweetalert' +import axios from 'axios' +import { isAutheticated } from 'src/auth' + + + +const selectLanguage = (props) => { + const token = isAutheticated() + const navigate = useNavigate() + + const { data, setData } = props.data + + const { loading, setLoading } = props.loading + // const categories = props?.categories || [] + + const handleChange = (e) => { + if (data.language.length < 3) { + setData((prev) => ({ + ...prev, + language: [...data.language, e.target.value] + })) + } + else { + swal({ + title: 'Warning', + text: 'please select Up to 3 languages!', + icon: 'warning', + button: 'ok', + dangerMode: true + }) + } + + } + + // const [loading, setLoading] = useState(false) + + + + + const [LanguagesData, setLanguagesData] = useState([]) + + + const getCategories = () => { + axios + .get(`/api/language`, { + headers: { 'Access-Control-Allow-Origin': '*', Authorization: `Bearer ${token}` }, + }) + .then((res) => { + + setLanguagesData(res.data.data) + setLoading(false) + }) + .catch((err) => { + console.log(err) + setLoading(false) + }) + } + + useEffect(() => { + getCategories() + }, []) + + + + + + + return ( +
+
+
+
+
+ Select Language +
+
+

+
+ +
+ + + +
+
+
+
+ + + +
+
+
+
+ + + + + +
+ + {LanguagesData.length > 0 && LanguagesData.map((item, index) => + // +
+ handleChange(e)} + /> + {/* {checked = { data.language.map(item => item === item?.language) }} */} + +
+ )} + {/* */} + +
+ + + + +
+
+
+ +
+
+ ) +} + +export default selectLanguage \ No newline at end of file diff --git a/src/views/configuration/Business/AddBusiness.js b/src/views/configuration/Business/AddBusiness.js index 2fe3f25..935ddeb 100644 --- a/src/views/configuration/Business/AddBusiness.js +++ b/src/views/configuration/Business/AddBusiness.js @@ -54,7 +54,7 @@ const AddBusiness = () => { button: 'Return', }) setLoading(false) - navigate('/business', { replace: true }) + navigate('/business_type', { replace: true }) }) .catch((err) => { setLoading(false) @@ -82,8 +82,9 @@ const AddBusiness = () => { " >
- Add Business + Add Business Type
+

@@ -103,7 +104,7 @@ const AddBusiness = () => { > {loading ? 'Loading' : 'Save'} - + @@ -196,7 +196,7 @@ const Business = () => { - + - + - +