Advertisement
shadiff

issue1

Sep 12th, 2023
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  1. policy.jsx
  2.  
  3. import React, { Component } from 'react';
  4. import './Layout.css';
  5. import './pages.css';
  6. import Tabs from './Tabs';
  7. import Layout from './Layout';
  8. import { connect } from 'react-redux';
  9. import { setData } from '../actions/schemeActions';
  10.  
  11. class Policy extends Component {
  12. constructor(props) {
  13. super(props);
  14. this.state = {
  15. selectedOption: '',
  16.  
  17. };
  18. }
  19.  
  20. // Event handler to handle select change
  21. handleSelectChange = (event) => {
  22. this.setState({ selectedOption: event.target.value });
  23. };
  24. componentDidMount() {
  25. const accessToken = localStorage.getItem('accessToken');
  26. console.log(accessToken)
  27.  
  28. fetch('http://192.0.1.23:5000/scheme?id=8280', {
  29. headers: {
  30. Authorization: `${accessToken}`,
  31.  
  32. },
  33. })
  34. .then((response) => response.json())
  35. .then((data) => {
  36. this.props.setData(data);
  37. console.log(data)
  38. })
  39. .catch((error) => {
  40. console.error('Error fetching data from protected API:', error);
  41. });
  42. }
  43.  
  44. render() {
  45. const { data } = this.props;
  46.  
  47. const tabNames = [
  48. 'Details',
  49. 'Rules',
  50. 'Providers',
  51. 'Insurers',
  52. 'Inclusions and Exclusions',
  53. 'Benefits',
  54. 'Family Structure',
  55. 'Self Fund Payment',
  56. 'SLAs'
  57. ];
  58.  
  59. return (
  60. <>
  61. <Layout >
  62. <div className='main-header'>
  63. <div className='policy-section'>
  64.  
  65. <select id="mySelect">
  66. <option value="option1">Policy 1</option>
  67. <option value="option2">Policy 2</option>
  68. <option value="option3">Policy 3</option>
  69. <option value="option4">Policy 4</option>
  70. </select>
  71.  
  72. <div className='policy-number'>
  73. <span>Policy Number</span>
  74. </div>
  75. </div>
  76.  
  77.  
  78. <select id="mySelect">
  79. <option value="option1">Scheme 1</option>
  80. <option value="option2">Scheme 2</option>
  81. <option value="option3">Scheme 3</option>
  82. <option value="option4">Scheme 4</option>
  83. </select>
  84.  
  85.  
  86. <div className='scheme-section'>
  87.  
  88. <div className='scheme-name'>
  89. <span>Scheme Name</span>
  90. </div>
  91.  
  92. <div className='scheme-company-duration'>
  93. <span>{data.startDate} to </span> //data.startDate works
  94. </div>
  95. </div>
  96. </div>
  97.  
  98.  
  99. <div className='main-content'>
  100. <Tabs tabNames={tabNames} data={this.props.data}/>
  101. </div>
  102. </Layout>
  103. </>
  104. );
  105. }
  106. }
  107. const mapStateToProps = (state) => ({
  108. data: state.scheme.data,
  109. });
  110.  
  111. const mapDispatchToProps = {
  112. setData,
  113. };
  114.  
  115. export default connect(mapStateToProps, mapDispatchToProps)(Policy);
  116. -------------------------------------------------------------------------------------------------------------------
  117.  
  118. Tabs.jsx
  119.  
  120. import React, { useState } from 'react';
  121. import Rules from './PolicyTabs/Rules';
  122. import Details from './PolicyTabs/Details'
  123. import { Link } from 'react-router-dom';
  124. import './pages.css';
  125. import Providers from './PolicyTabs/Providers';
  126. import Insurers from './PolicyTabs/Insurers';
  127. import IncExclusions from './PolicyTabs/IncExclusions';
  128. import Benefits from './PolicyTabs/Benefits';
  129. import FamilyStructure from './PolicyTabs/FamilyStructure';
  130. import FundPayment from './PolicyTabs/FundPayment';
  131. import SLA from './PolicyTabs/SLA';
  132.  
  133. const Tab = ({ label, isActive, onClick}) => (
  134. <div
  135. className={`tab ${isActive ? 'active' : ''}`}
  136. onClick={onClick}
  137. >
  138. {label}
  139. </div>
  140. );
  141.  
  142. const tabComponents = [
  143.  
  144. <Details data={data}/>,
  145. <Rules />,
  146. <Providers />,
  147. <Insurers />,
  148. <IncExclusions />,
  149. <Benefits />,
  150. <FamilyStructure />,
  151. <FundPayment />,
  152. <SLA />,
  153. ];
  154.  
  155. const Tabs = ({ tabNames, data }) => {
  156. const [activeTab, setActiveTab] = useState(0);
  157.  
  158. const handleTabClick = (index) => {
  159. setActiveTab(index);
  160. };
  161.  
  162.  
  163. return (
  164. <div className="tabs-container">
  165. <div className="tabs">
  166. {tabNames.map((tab, index) => (
  167. <Link key={index} to={tab.toLowerCase()}>
  168. <Tab
  169. label={tab}
  170. isActive={index === activeTab}
  171. onClick={() => handleTabClick(index)}
  172. />
  173. </Link>
  174. ))}
  175. </div>
  176. <div className="tab-content">
  177. {tabComponents[activeTab]}
  178. </div>
  179. </div>
  180. );
  181. };
  182.  
  183. export default Tabs;
  184. -------------------------------------------------------------------------------------------
  185. import React from 'react';
  186. import './policytabs.css';
  187.  
  188. const Details = ({ data }) => {
  189. return (
  190. <>
  191. <div className='scheme-div'>
  192. <div className='content-div'>Scheme Type</div>
  193. {/* <div className='content-div'>{data.schemeType}</div> */}
  194. </div>
  195. <div className='scheme-div'>
  196. <div className='content-div'>Start Date</div>
  197. {/* <div className='content-div'>{data.endDate}</div> */}
  198. </div>
  199. <div className='scheme-div'>
  200. <div className='content-div'>End Date</div>
  201. {/* <div className='content-div'>{data.endDate}</div> */}
  202. </div>
  203. <div className='scheme-div'>
  204. <div className='content-div'> Scheme Handler</div>
  205. <div className='content-div'>{data.name}</div> //data.name doesn't show
  206. </div>
  207. </>
  208. )
  209. }
  210.  
  211. export default Details
  212. -----------------------------------------------------------------------------------------
  213. schemeSlice.js
  214.  
  215. import { createSlice } from '@reduxjs/toolkit';
  216.  
  217. const initialState = {
  218. data: {
  219. startDate: '',
  220. endDate: '',
  221. name:'',
  222. // other properties...
  223. },
  224. };
  225.  
  226.  
  227. const schemeSlice = createSlice({
  228. name: 'scheme',
  229. initialState,
  230. reducers: {
  231. setData: (state, action) => {
  232. state.data = action.payload;
  233. },
  234.  
  235. },
  236. });
  237.  
  238. export const { setData } = schemeSlice.actions;
  239. export default schemeSlice.reducer;
  240.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement