Url configuration
This commit is contained in:
@@ -1,19 +1,19 @@
|
||||
import { Form, Formik } from "formik";
|
||||
import {Form, Formik} from "formik";
|
||||
import * as Yup from "yup";
|
||||
import { useMutation } from '@tanstack/react-query';
|
||||
import { setExternalURL } from '../../../services/services';
|
||||
import {useMutation} from '@tanstack/react-query';
|
||||
import {setExternalURL} from '../../../services/services';
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
url: Yup.string().required("URL is required").matches(/^https?:\/\/[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+\.[a-zA-Z]+/, 'Must be like: https://example.mysite.com'),
|
||||
})
|
||||
url: Yup.string().required("URL is required").matches(/^https?:\/\/[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+\.[a-zA-Z]+/, 'Must be like: https://example.mysite.com'),
|
||||
})
|
||||
|
||||
const initialValues = {
|
||||
const initialValues = {
|
||||
url: '',
|
||||
};
|
||||
};
|
||||
|
||||
const URLConfiguration = ({productData}) => {
|
||||
|
||||
let defaultUrl= 'https://'+productData?.internal_url
|
||||
let defaultUrl = 'https://' + productData?.internal_url
|
||||
|
||||
// API to set url
|
||||
const setURL = useMutation({
|
||||
@@ -21,13 +21,13 @@ const URLConfiguration = ({productData}) => {
|
||||
return setExternalURL(fields)
|
||||
},
|
||||
onSuccess: (res) => {
|
||||
if(res.data.resultCode != '0'){
|
||||
if (res.data.resultCode != '0') {
|
||||
// throw({message: res?.data?.resultDescription})
|
||||
throw({message: 'Something went wrong!'})
|
||||
}
|
||||
},
|
||||
onSettled: () => {
|
||||
setTimeout(()=>{
|
||||
setTimeout(() => {
|
||||
setURL.reset()
|
||||
}, 3000)
|
||||
}
|
||||
@@ -50,17 +50,16 @@ const URLConfiguration = ({productData}) => {
|
||||
<div className="card card-statistics">
|
||||
<div className="card-header">
|
||||
<div className="card-heading">
|
||||
<h4 className="card-title">Default URL</h4>
|
||||
<h4 className="card-title" style={{textTransform: 'none'}}>{defaultUrl}</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card-body">
|
||||
<div className="form-group">
|
||||
{/*<label htmlFor="exampleInputEmail1">Email address</label>*/}
|
||||
<input type="email" className="form-control"
|
||||
aria-describedby="defaultUrlHelp" value={defaultUrl} readOnly={true} />
|
||||
</div>
|
||||
{/*<button type="submit" className="btn btn-primary">Submit</button>*/}
|
||||
</div>
|
||||
{/*<div className="card-body">*/}
|
||||
{/* <div className="form-group">*/}
|
||||
{/* /!*<label htmlFor="exampleInputEmail1">Email address</label>*!/*/}
|
||||
{/* <input type="email" className="form-control"*/}
|
||||
{/* aria-describedby="defaultUrlHelp" value={defaultUrl} readOnly={true} />*/}
|
||||
{/* </div>*/}
|
||||
{/*</div>*/}
|
||||
</div>
|
||||
|
||||
<Formik
|
||||
@@ -69,36 +68,42 @@ const URLConfiguration = ({productData}) => {
|
||||
onSubmit={handleSubmit}
|
||||
>
|
||||
{(props) => {
|
||||
return (
|
||||
<Form className='w-full'>
|
||||
<div className="card card-statistics" style={{backgroundColor:'#7affd92b'}}>
|
||||
<div className="card-header">
|
||||
<div className="card-heading">
|
||||
<h4 className="card-title" style={{textTransform: 'none'}}>Set your own URL</h4>
|
||||
return (
|
||||
<Form className='w-full'>
|
||||
<div className="card card-statistics" style={{backgroundColor: '#7affd92b'}}>
|
||||
<div className="card-header">
|
||||
<div className="card-heading">
|
||||
<h4 className="card-title" style={{textTransform: 'none'}}>Set your own URL</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card-body">
|
||||
<div className="form-group">
|
||||
<label htmlFor="exampleInputEmail1">Enter your full URL <span className={`${(props.errors.url && props.touched.url) && 'text-danger'}`}>{props.errors.url}</span></label>
|
||||
<input value={props.values.url} onChange={props.handleChange} type="text" className="form-control" id="url" aria-describedby="url" placeholder="https://example.mysite.com"/>
|
||||
<div className="card-body">
|
||||
<div className="form-group">
|
||||
<label htmlFor="exampleInputEmail1">Enter your full URL <span
|
||||
className={`${(props.errors.url && props.touched.url) && 'text-danger'}`}>{props.errors.url}</span></label>
|
||||
<input value={props.values.url} onChange={props.handleChange} type="text"
|
||||
className="form-control" id="url" aria-describedby="url"
|
||||
placeholder="https://example.mysite.com"/>
|
||||
</div>
|
||||
<div style={{width: '100%', textAlign: 'right'}}>
|
||||
<button type="submit" disabled={setURL.isPending}
|
||||
className="btn btn-primary">{setURL.isPending ? 'Loading...' : 'Submit'}</button>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" disabled={setURL.isPending} className="btn btn-primary">{setURL.isPending ? 'Loading...' : 'Submit'}</button>
|
||||
</div>
|
||||
|
||||
{setURL.error &&
|
||||
<div className="col-12">
|
||||
<p className='text-danger'>{setURL.error.message}</p>
|
||||
</div>
|
||||
}
|
||||
{setURL.error &&
|
||||
<div className="col-12">
|
||||
<p className='text-danger'>{setURL.error.message}</p>
|
||||
</div>
|
||||
}
|
||||
|
||||
{setURL.isSuccess &&
|
||||
<div className="col-12">
|
||||
<p className='text-success'>{'Completed successfully'}</p>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</Form>
|
||||
);
|
||||
{setURL.isSuccess &&
|
||||
<div className="col-12">
|
||||
<p className='text-success'>{'Completed successfully'}</p>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</Form>
|
||||
);
|
||||
}}
|
||||
</Formik>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user