added back missing files

This commit is contained in:
2021-07-19 21:49:14 +01:00
parent 016c960720
commit de84da00c2
16 changed files with 610 additions and 192 deletions
+4 -3
View File
@@ -5,7 +5,7 @@ import https from "https";
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0; process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
let BASE_URL; let BASE_URL;
BASE_URL = process.env.API_ROOT || "http://localhost"; BASE_URL = process.env.API_ROOT || "http://localhost:3000";
const agent = new https.Agent({ const agent = new https.Agent({
rejectUnauthorized: false, rejectUnauthorized: false,
@@ -182,11 +182,12 @@ export const getAppealTypeDetail = (caseReference, appealcasetype) => {
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/pinswg_planningappeals78s?$filter=pinswg_name eq 'CAS-00015-L7J9H1' //https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/pinswg_planningappeals78s?$filter=pinswg_name eq 'CAS-00015-L7J9H1'
export const getLPA = () => { export const getLPA = () => {
console.log("got to axios", searchString);
console.log("api_root: ", BASE_URL); console.log("api_root: ", BASE_URL);
return axios return axios
.get( .get(
"https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/accounts?$select=name", BASE_URL + "/api/lookups/pinswg_lpa",
//.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/accounts?$select=name",
{ httpsAgent: new https.Agent({ rejectUnauthorized: false }) } { httpsAgent: new https.Agent({ rejectUnauthorized: false }) }
) )
.then((res) => res.data) .then((res) => res.data)
+13 -7
View File
@@ -4,7 +4,11 @@ import Link from "next/link";
const CookieBanner = () => { const CookieBanner = () => {
return ( return (
<CookieConsent <CookieConsent
style={{ position: "inherit", background: "#f3f2f1", display: "block" }} style={{
position: "inherit",
background: "#f3f2f1",
display: "block",
}}
containerClasses="app-cookie-banner" containerClasses="app-cookie-banner"
buttonClasses="govuk-button" buttonClasses="govuk-button"
buttonWrapperClasses="govuk-width-container consentBanner" buttonWrapperClasses="govuk-width-container consentBanner"
@@ -14,7 +18,7 @@ const CookieBanner = () => {
enableDeclineButton={true} enableDeclineButton={true}
flipButtons={true} flipButtons={true}
hideOnAccept={true} hideOnAccept={true}
cookieName="preventTrainingConsent" cookieName="planning_casework"
> >
<div className="app-cookie-banner"> <div className="app-cookie-banner">
<div <div
@@ -33,11 +37,13 @@ const CookieBanner = () => {
Tell us whether you accept cookies Tell us whether you accept cookies
</h2> </h2>
<p className="govuk-body"> <p className="govuk-body">
GOV.UK uses cookies which are essential for the site to GOV.UK uses cookies which are essential
work. We also use non-essential cookies to help us improve for the site to work. We also use
government digital services. Any data collected is non-essential cookies to help us improve
anonymised. By continuing to use this site, you agree to our government digital services. Any data
use of cookies. collected is anonymised. By continuing
to use this site, you agree to our use
of cookies.
</p> </p>
</div> </div>
</div> </div>
+9 -5
View File
@@ -186,7 +186,10 @@ const RenderPickList = ({
if (errorStr) if (errorStr)
return ( return (
<div className="govuk-form-group"> <div className="govuk-form-group">
<label className="govuk-label govuk-body-m" htmlFor="sort"> <label
className="govuk-label govuk-body-m"
htmlFor={props.name}
>
{label} {label}
</label> </label>
<select className="govuk-select" id={name} name={name}> <select className="govuk-select" id={name} name={name}>
@@ -206,6 +209,7 @@ const RenderPickList = ({
return ( return (
<div> <div>
<select {...input} className="govuk-select" id={name} name={name}> <select {...input} className="govuk-select" id={name} name={name}>
<option>Select...</option>
{Object.keys(dropdownObj).map((key, index) => { {Object.keys(dropdownObj).map((key, index) => {
return ( return (
<option <option
@@ -231,7 +235,7 @@ export function PickList(props) {
return ( return (
<div className="govuk-form-group"> <div className="govuk-form-group">
<label className="govuk-label govuk-body-m" htmlFor="sort"> <label className="govuk-label govuk-body-m" htmlFor={props.name}>
{props.label} {props.label}
</label> </label>
<Field <Field
@@ -248,7 +252,7 @@ export function NumericField(props) {
return ( return (
<div className="govuk-form-group"> <div className="govuk-form-group">
<label className="govuk-label" htmlFor="account-number"> <label className="govuk-label" htmlFor={props.name}>
{props.label} {props.label}
</label> </label>
<Field <Field
@@ -271,7 +275,7 @@ export function DecimalField(props) {
return ( return (
<div className="govuk-form-group"> <div className="govuk-form-group">
<label className="govuk-label" htmlFor="account-number"> <label className="govuk-label" htmlFor={props.name}>
{props.label} {props.label}
</label> </label>
<Field <Field
@@ -294,7 +298,7 @@ export function ReadOnlyfield(props) {
return ( return (
<div className="govuk-form-group"> <div className="govuk-form-group">
<label className="govuk-label " htmlFor="event-name"> <label className="govuk-label " htmlFor={props.name}>
{props.label} {props.label}
</label> </label>
<Field <Field
+3 -3
View File
@@ -61,16 +61,16 @@ export default function Header({ courseName }) {
</div> </div>
<div className="govuk-header__content govuk-!-width-two-thirds govuk-!-margin-top-3"> <div className="govuk-header__content govuk-!-width-two-thirds govuk-!-margin-top-3">
<Link href="/">
<a <a
href="/"
onClick={() => { onClick={() => {
window.localStorage.clear(); window.localStorage.clear();
}} }}
className="govuk-header__link govuk-header__link--service-name" className="govuk-header__link
govuk-header__link--service-name"
> >
{t("common:service-name")} {t("common:service-name")}
</a> </a>
</Link>
</div> </div>
<div className="languageSwitch"> <div className="languageSwitch">
{router.path} {router.path}
+6 -3
View File
@@ -10,7 +10,9 @@ export default function Login() {
return ( return (
<div className="card" id="login-card"> <div className="card" id="login-card">
<div className="card-body active"> <div className="card-body active">
<h3 className="heading-small card-heading">{t("home:login-card-title")}</h3> <h3 className="heading-small card-heading">
{t("home:login-card-title")}
</h3>
<form action="/myportal" method="POST" id="loginForm"> <form action="/myportal" method="POST" id="loginForm">
<div className="govuk-form-group"> <div className="govuk-form-group">
@@ -30,7 +32,6 @@ export default function Login() {
name="user_id" name="user_id"
id="user_id" id="user_id"
className="govuk-input govuk-!-width-one-half" className="govuk-input govuk-!-width-one-half"
value=""
maxLength="22" maxLength="22"
aria-describedby="user_id-hint" aria-describedby="user_id-hint"
autoComplete="username" autoComplete="username"
@@ -60,7 +61,9 @@ export default function Login() {
{t("home:login-card-button")} {t("home:login-card-button")}
</button> */} </button> */}
<Link href="/myportal"> <Link href="/myportal">
<a className="govuk-button">{t("home:login-card-button")}</a> <a className="govuk-button">
{t("home:login-card-button")}
</a>
</Link> </Link>
</div> </div>
</form> </form>
+1 -1
View File
@@ -122,7 +122,7 @@ let BuildSection = (props) => {
<ol className="govuk-list"> <ol className="govuk-list">
{Object.keys(titleList).map((key) => {Object.keys(titleList).map((key) =>
parseInt(key) + 1 == currentSection ? ( parseInt(key) + 1 == currentSection ? (
<li> <li key={key}>
<b>{titleList[key].value}</b> <b>{titleList[key].value}</b>
</li> </li>
) : ( ) : (
+198
View File
@@ -0,0 +1,198 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import { useState, useEffect } from "react";
import xpath from "xpath";
import BuildRow from "./buildrow";
import { reduxForm, formValueSelector, Field } from "redux-form";
import { useDispatch, useSelector, shallowEqual, connect } from "react-redux";
import jsonpath from "jsonpath";
import {
setAppealType,
setAppealTypeTitle,
setAppealTypeID,
setAppealLPA,
getAppealTypeObj,
} from "../../store/appealType/action";
let CreateCase = (props) => {
// useEffect(() => {
// window.scrollTo(0, 0);
// });
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const { LPAData, onSubmit, handleSubmit } = props;
const appealOptionsObj = props.appealType.appealTypeOptions.GlobalOptionSet
.Options || [{}];
let lpaOptionsObj = jsonpath.query(props.LPAData.LPAData, "$..name");
const RenderLPAList = ({
name,
input,
optionsObj,
meta: { touched, error },
}) => {
return (
<div>
<select
{...input}
className="govuk-select"
id="lpatypes"
name={name}
//onChange={(e) => props.onChangeSelectLPA(e)}
>
<option>Select...</option>
{Object.keys(optionsObj).map((key, index) => {
return (
<option key={key} value={optionsObj[key]}>
{optionsObj[key]}
</option>
);
})}
</select>
{touched && error && <span>{error}</span>}
</div>
);
};
const RenderAppealTypeList = ({
name,
input,
optionsObj,
meta: { touched, error },
}) => {
return (
<div>
<select
{...input}
className="govuk-select"
id="appealTypes"
name={name}
//onChange={(e) => props.onChangeSelectAppealType(e)}
>
<option>Select...</option>
{Object.keys(optionsObj).map((key, index) => {
return (
<option
key={key}
value={optionsObj[
key
].Label.LocalizedLabels[0].Label.replace(
/[\s\-\+\(\)\,]/g,
""
).toLowerCase()}
>
{optionsObj[key].Label.LocalizedLabels[0].Label}
</option>
);
})}
</select>
{touched && error && <span>{error}</span>}
</div>
);
};
const onHandleSubmit = (values) => {
event.preventDefault();
router.replace("/newappeal/" + values.appealTypes, null, {
shallow: true,
});
console.log(values);
};
return (
<form onSubmit={handleSubmit(onHandleSubmit)}>
<div className="govuk-form-group">
<label className="govuk-label" htmlFor="sort">
Select your local planning authority
</label>
<Field
name="lpaTypes"
component={RenderLPAList}
optionsObj={lpaOptionsObj}
/>
{/* <select
className="govuk-select"
id="appealTypes"
name="appealTypes"
onChange={(e) => props.onChangeSelectLPA(e)}
>
{" "}
<option>Select...</option>
{lpaOptions}
</select> */}
</div>
<div className="govuk-form-group">
<label className="govuk-label" htmlFor="sort">
Select an appeal type
</label>
<Field
name="appealTypes"
component={RenderAppealTypeList}
optionsObj={appealOptionsObj}
/>
{/* <select
className="govuk-select"
id="appealTypes"
name="appealTypes"
onChange={(e) => props.onChangeSelectAppealType(e)}
>
<option>Select...</option>
{appealOptions}
</select> */}
</div>
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
Continue
</button>
</form>
);
};
const mapStateToProps = (state) => {
return {
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
//form: state.form,
};
};
const mapDispatchToProps = (dispatch) => {
return {
onChangeSelectAppealType: (event) => {
dispatch(
setAppealTypeTitle(
event.target.options[event.target.selectedIndex].text
)
);
dispatch(setAppealTypeID(event.target.value));
},
onChangeSelectLPA: (event) => {
dispatch(setAppealLPA(event.target.value));
},
};
};
const selector = formValueSelector("caseForm"); // <-- same as form name
export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({
form: "caseForm",
destroyOnUnmount: false,
})(CreateCase)
);
-2
View File
@@ -76,8 +76,6 @@ const Home = (props) => {
// }; // };
const mapStateToProps = (state) => { const mapStateToProps = (state) => {
console.log(state);
return { return {
search: state.search, search: state.search,
}; };
+161
View File
@@ -0,0 +1,161 @@
const ApiResponse = (req, res) => {
res.statusCode = 200;
res.json({
"@odata.context":
"https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#accounts(name)",
"@odata.count": 30,
"value": [
{
"@odata.etag": 'W/"547952"',
"name": "Bridgend CBC",
"accountid": "56e7ef63-7e64-eb11-aaba-00224800be9c",
},
{
"@odata.etag": 'W/"694923"',
"name": "Bishop Landaff High School",
"accountid": "c9389617-82ad-eb11-aac3-00224800be9c",
},
{
"@odata.etag": 'W/"694925"',
"name": "Stanwell High school",
"accountid": "24537624-82ad-eb11-aac3-00224800be9c",
},
{
"@odata.etag": 'W/"762163"',
"name": "Barry Boys High School",
"accountid": "80d99a34-82ad-eb11-aac3-00224800be9c",
},
{
"@odata.etag": 'W/"694929"',
"name": "St Sirus High School",
"accountid": "6d337b5a-82ad-eb11-aac3-00224800be9c",
},
{
"@odata.etag": 'W/"694931"',
"name": "Fitzalan High School",
"accountid": "984d0e75-82ad-eb11-aac3-00224800be9c",
},
{
"@odata.etag": 'W/"757759"',
"name": "Zoe",
"accountid": "41fead24-29ba-eb11-aac4-00224800be9c",
},
{
"@odata.etag": 'W/"755100"',
"name": "Blaenau Gwent County Borough Council",
"accountid": "744c69f4-48da-eb11-aac5-00224800be9c",
},
{
"@odata.etag": 'W/"755102"',
"name": "Caerphilly County Borough Council",
"accountid": "243c0009-49da-eb11-aac5-00224800be9c",
},
{
"@odata.etag": 'W/"757756"',
"name": "Test 2",
"accountid": "bf14b684-8ee0-eb11-aac5-00224800be9c",
},
{
"@odata.etag": 'W/"755104"',
"name": "Bridgend County Borough Council",
"accountid": "c35f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755106"',
"name": "Cardiff Council",
"accountid": "c75f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755108"',
"name": "Carmarthenshire County Council",
"accountid": "c95f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755110"',
"name": "Ceredigion County Council",
"accountid": "cb5f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755112"',
"name": "Conwy County Borough Council",
"accountid": "cd5f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755114"',
"name": "Denbighshire County Council",
"accountid": "cf5f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755116"',
"name": "Flintshire County Council",
"accountid": "d15f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755118"',
"name": "Gwynedd Council",
"accountid": "d35f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755120"',
"name": "Isle of Anglesey County Council",
"accountid": "d55f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755122"',
"name": "Merthyr Tydfil County Borough Council",
"accountid": "d75f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755124"',
"name": "Monmouthshire County Council",
"accountid": "d95f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755126"',
"name": "Neath Port Talbot County Borough Council",
"accountid": "db5f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755128"',
"name": "Newport City Council",
"accountid": "dd5f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755130"',
"name": "Pembrokeshire County Council",
"accountid": "df5f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755132"',
"name": "Powys County Council",
"accountid": "e15f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755134"',
"name": "Rhondda Cynon Taf County Borough Council",
"accountid": "e35f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755136"',
"name": "Swansea Council",
"accountid": "e55f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755138"',
"name": "Torfaen County Borough Council",
"accountid": "e75f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755140"',
"name": "Vale of Glamorgan Council",
"accountid": "e95f6f84-49da-eb11-aabd-00224800d1bd",
},
{
"@odata.etag": 'W/"755142"',
"name": "Wrexham County Borough Council",
"accountid": "eb5f6f84-49da-eb11-aabd-00224800d1bd",
},
],
});
};
export default ApiResponse;
+6 -16
View File
@@ -13,6 +13,7 @@ import { wrapper } from "../store/store";
import Cookies from "cookies"; import Cookies from "cookies";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import { getIncidents } from "../actions";
const Home = (props) => { const Home = (props) => {
const { footerLinks, pages } = props; const { footerLinks, pages } = props;
@@ -40,25 +41,14 @@ const Home = (props) => {
}; };
// export const getServerSideProps = wrapper.getServerSideProps( // export const getServerSideProps = wrapper.getServerSideProps(
// async ({ locale, store, req, res }) => { // (store) =>
// const token = await getToken(); // async ({ query, req, res }) => {
// let accessToken = token.access_token; // const incidents = await getIncidents;
// console.log(incidents);
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
// const [pages, footerLinks, courseListContent] = await Promise.all([
// await getPages(accessToken, locale),
// await getFooterLinks(accessToken, locale),
// await getCourseList(accessToken, locale),
// ]);
// //const courseID = await getCourseID
// store.dispatch(setApiRoot(apiRoot));
// store.dispatch(setPages(pages));
// store.dispatch(setFooterLinks(footerLinks));
// store.dispatch(setCourseListContent(courseListContent));
// } // }
// ); // );
// const mapStateToProps = (state) => { // const mapStateToProps = (state) => {
// //console.log(state); // //console.log(state);
+45 -37
View File
@@ -1,10 +1,10 @@
import Link from "next/link";
import _ from "lodash"; import _ from "lodash";
import Head from "next/head"; import Head from "next/head";
import Header from "../../components/header"; import Header from "../../components/header";
import Banner from "../../components/banner"; import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner"; import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs"; import Breadcrumbs from "../../components/breadcrumbs";
import NewAppeal from "../../components/newappeal";
import Footer from "../../components/footer"; import Footer from "../../components/footer";
import Errorpage from "../../components/errorpage"; import Errorpage from "../../components/errorpage";
import styles from "../../styles/Home.module.css"; import styles from "../../styles/Home.module.css";
@@ -12,70 +12,76 @@ import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../../store/store"; import { wrapper } from "../../store/store";
import Cookies from "cookies"; import Cookies from "cookies";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useState } from "react";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import jsonpath from "jsonpath";
import { reduxForm, formValueSelector } from "redux-form";
import CreateCase from "../../components/newappeal/createCase";
import xpath from "xpath";
import {
setAppealType,
setAppealTypeTitle,
setAppealTypeID,
setAppealLPA,
getAppealTypeObj,
} from "../../store/appealType/action";
import { getAppealsTypes, getLPA } from "../../actions";
import { setLPA } from "../../store/lpa/action";
const Home = (props) => { const Home = (props) => {
const { footerLinks, pages } = props; const { footerLinks, pages, formData } = props;
let { t, lang } = useTranslation(); let { t, lang } = useTranslation();
const router = useRouter(); const router = useRouter();
const { locale } = router; const { locale } = router;
const { appealtypes } = router.query; const { appealtypes } = router.query;
const { appealType, LPAData } = props;
return ( return (
<div> <div>
<Head> <Head>
<title> <title>
{t("newappeal:page-title")} - {t("common:service-name")} {t("search:page-title")} - {t("common:service-name")}
</title> </title>
</Head> </Head>
<div id="page_wrapper"> <div id="page_wrapper">
<CookieBanner /> <CookieBanner />
<Header courseName={t("common:service-name")} /> <Header courseName={t("common:service-name")} />
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<div className="govuk-width-container"> <div className="govuk-width-container">
<Banner /> <Banner />
<Breadcrumbs slug={appealtypes} /> <Breadcrumbs slug={appealtypes} />
<NewAppeal />
<h1>New Appeal</h1>
<CreateCase
LPAData={props.LPAData}
appealType={props.setAppealType}
/>
</div> </div>
</div>
</div>
<Footer footerLinks={footerLinks} /> <Footer footerLinks={footerLinks} />
</div> </div>
</div> </div>
); );
}; };
// export const getServerSideProps = wrapper.getServerSideProps( export const getServerSideProps = wrapper.getServerSideProps(
// async ({ locale, store, req, res }) => { (store) =>
// const token = await getToken(); async ({ query, req, res }) => {
// let accessToken = token.access_token; const appealTypeData = await getAppealsTypes();
const lpaData = await getLPA();
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT; console.log("appeal types", appealTypeData);
console.log("lpa typeswwwww", lpaData);
// const [pages, footerLinks, courseListContent] = await Promise.all([ store.dispatch(setAppealType(appealTypeData));
// await getPages(accessToken, locale), store.dispatch(setLPA(lpaData));
// await getFooterLinks(accessToken, locale), }
// await getCourseList(accessToken, locale), );
// ]);
// //const courseID = await getCourseID
// store.dispatch(setApiRoot(apiRoot));
// store.dispatch(setPages(pages));
// store.dispatch(setFooterLinks(footerLinks));
// store.dispatch(setCourseListContent(courseListContent));
// }
// );
// const mapStateToProps = (state) => {
// //console.log(state);
// return {
// apiroot: state.apiroot,
// courseListContent: state.courseListContent.courseListContent,
// pages: state.pages.pages,
// footerLinks: state.footerLinks.footerLinks,
// regions: state.regions,
// sectors: state.sectors,
// form: state.form,
// };
// };
const mapStateToProps = (state) => { const mapStateToProps = (state) => {
return { return {
@@ -83,6 +89,8 @@ const mapStateToProps = (state) => {
searchResultsObj: state.searchResultsObj, searchResultsObj: state.searchResultsObj,
formData: state.formData, formData: state.formData,
appealType: state.appealType, appealType: state.appealType,
LPAData: state.LPAData,
form: state.form,
}; };
}; };
+7
View File
@@ -7,6 +7,7 @@ export const appealTypeDataActionTypes = {
SETAPPEALTYPETITLEDATA: "SETAPPEALTYPETITLEDATA", SETAPPEALTYPETITLEDATA: "SETAPPEALTYPETITLEDATA",
UPDATEAPPEALTYPEDATA: "UPDATEAPPEALTYPEDATA", UPDATEAPPEALTYPEDATA: "UPDATEAPPEALTYPEDATA",
SETCURRENTSECTION: "SETCURRENTSECTION", SETCURRENTSECTION: "SETCURRENTSECTION",
SETAPPEALLPA: "SETAPPEALLPA",
}; };
export const getAppealTypeObj = () => (dispatch) => { export const getAppealTypeObj = () => (dispatch) => {
@@ -41,3 +42,9 @@ export const setCurrentSection = (currentSection) => (dispatch) => {
currentSection: currentSection, currentSection: currentSection,
}); });
}; };
export const setAppealLPA = (appealLPA) => (dispatch) => {
return dispatch({
type: appealTypeDataActionTypes.SETAPPEALLPA,
appealLPA: appealLPA,
});
};
+7
View File
@@ -5,6 +5,7 @@ const appealTypeDataInitialState = {
appealTypeTitle: {}, appealTypeTitle: {},
appealTypeID: {}, appealTypeID: {},
currentSection: 1, currentSection: 1,
appealLPA: "",
}; };
export default function reducer(state = appealTypeDataInitialState, action) { export default function reducer(state = appealTypeDataInitialState, action) {
@@ -29,6 +30,12 @@ export default function reducer(state = appealTypeDataInitialState, action) {
...state, ...state,
currentSection: action.currentSection, currentSection: action.currentSection,
}; };
case appealTypeDataActionTypes.SETAPPEALLPA:
return {
...state,
appealLPA: action.appealLPA,
};
default: default:
return state; return state;
} }
+19
View File
@@ -0,0 +1,19 @@
import { actionTypes } from "redux-form";
export const LPADataActionTypes = {
GETLPADATA: "GETLPADATA",
SETLPADATA: "SETLPADATA",
};
export const getLPAObj = () => (dispatch) => {
return dispatch({
type: LPADataActionTypes.GETLPADATA,
});
};
export const setLPA = (lpaData) => (dispatch) => {
return dispatch({
type: LPADataActionTypes.SETLPADATA,
LPAData: lpaData,
});
};
+17
View File
@@ -0,0 +1,17 @@
import { LPADataActionTypes } from "./action";
const LPADataInitialState = {
LPAData: {},
};
export default function reducer(state = LPADataInitialState, action) {
switch (action.type) {
case LPADataActionTypes.SETLPADATA:
return {
...state,
LPAData: action.LPAData,
};
default:
return state;
}
}
+4 -5
View File
@@ -1,28 +1,27 @@
import { createStore, applyMiddleware, combineReducers } from "redux"; import { createStore, applyMiddleware, combineReducers } from "redux";
import { createWrapper, HYDRATE } from "next-redux-wrapper"; import { createWrapper, HYDRATE } from "next-redux-wrapper";
import thunkMiddleware from "redux-thunk"; import thunkMiddleware from "redux-thunk";
import progress from "./progress/reducer";
import search from "./search/reducer"; import search from "./search/reducer";
import searchResultsObj from "./searchOutput/reducer"; import searchResultsObj from "./searchOutput/reducer";
import formData from "./formData/reducer"; import formData from "./formData/reducer";
import appealType from "./appealType/reducer"; import appealType from "./appealType/reducer";
import LPAData from "./lpa/reducer";
import { reducer as formReducer } from "redux-form"; import { reducer as formReducer } from "redux-form";
import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2"; import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
//COMBINING ALL REDUCERS //COMBINING ALL REDUCERS
const combinedReducer = combineReducers({ const combinedReducer = combineReducers({
progress,
search, search,
searchResultsObj, searchResultsObj,
formData, formData,
appealType, appealType,
LPAData,
form: formReducer, form: formReducer,
}); });
const reducer = (state = { progress: "{}" }, action) => { const reducer = (state = {}, action) => {
switch (action.type) { switch (action.type) {
case HYDRATE: case HYDRATE:
//if (action.payload.progress === '{}') delete action.payload.progress;
return { ...state, ...action.payload }; return { ...state, ...action.payload };
case "SERVER_ACTION": case "SERVER_ACTION":
return { return {
@@ -78,12 +77,12 @@ const makeStore = ({ isServer }) => {
const persistConfig = { const persistConfig = {
key: "nextjs", key: "nextjs",
whitelist: [ whitelist: [
"progress",
"search", "search",
"searchResults", "searchResults",
"formData", "formData",
"appealType", "appealType",
"form", "form",
"LPAData",
], ],
storage, storage,
stateReconciler: autoMergeLevel2, // if needed, use a safer storage stateReconciler: autoMergeLevel2, // if needed, use a safer storage