Advertisement
shadiff

policy, 2 & 3 API

Sep 14th, 2023
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import './Layout.css';
  3. import './pages.css';
  4. import Tabs from './Tabs';
  5. import Layout from './Layout';
  6. import { connect } from 'react-redux';
  7. import { setData } from '../actions/schemeActions';
  8.  
  9.  
  10. class Policy extends Component {
  11. constructor(props) {
  12. super(props);
  13. this.state = {
  14. selectedOption: '',
  15. selectedPolicy: '',
  16. selectedScheme: '',
  17. policies: [],
  18. schemes: [],
  19. };
  20. }
  21.  
  22. // Event handler to handle select change
  23. handleSelectChange = (event) => {
  24. this.setState({ selectedOption: event.target.value });
  25. };
  26.  
  27. handlePolicySelectChange = (event) => {
  28. const selectedPolicy = event.target.value;
  29. this.setState({ selectedPolicy });
  30. this.fetchPolicyData(selectedPolicy, this.state.selectedScheme);
  31. };
  32.  
  33. handleSchemeSelectChange = (event) => {
  34. const selectedScheme = event.target.value;
  35. this.setState({ selectedScheme });
  36. this.fetchPolicyData(this.state.selectedPolicy, selectedScheme);
  37. };
  38.  
  39. fetchPolicyData = (selectedPolicy, selectedScheme) => {
  40. const accessToken = localStorage.getItem('accessToken');
  41. console.log(accessToken);
  42.  
  43. // Construct the API URL based on selectedPolicy and selectedScheme
  44. const apiUrl = `http://192.0.1.23:5000/scheme?id=${selectedPolicy}`;
  45.  
  46. fetch(apiUrl, {
  47. headers: {
  48. Authorization: `${accessToken}`,
  49. },
  50. })
  51. .then((response) => response.json())
  52. .then((data) => {
  53. this.props.setData(data);
  54. console.log(data);
  55. })
  56. .catch((error) => {
  57. console.error('Error fetching data from protected API:', error);
  58. });
  59. };
  60.  
  61.  
  62. componentDidMount() {
  63. const accessToken = localStorage.getItem('accessToken');
  64. console.log(accessToken)
  65.  
  66. const apiLink = `http://192.0.1.23:5000/scheme?id=${selectedPolicy}&scheme=${selectedScheme}`
  67. fetch(apiLink, {
  68. headers: {
  69. Authorization: `${accessToken}`,
  70.  
  71. },
  72. })
  73. .then((response) => response.json())
  74. .then((data) => {
  75. this.props.setData(data);
  76. console.log(data)
  77. })
  78. .catch((error) => {
  79. console.error('Error fetching data from protected API:', error);
  80. });
  81. }
  82.  
  83. render() {
  84. const { data } = this.props;
  85.  
  86. const tabNames = [
  87. 'Details',
  88. 'Rules',
  89. 'Providers',
  90. 'Insurers',
  91. 'Inclusions and Exclusions',
  92. 'Benefits',
  93. 'Family Structure',
  94. 'Self Fund Payment',
  95. 'SLAs'
  96. ];
  97.  
  98. return (
  99. <>
  100. <Layout >
  101. <div className='main-header'>
  102. <div className='policy-section'>
  103.  
  104. <select id="policySelect" onChange={this.handlePolicySelectChange}>
  105. <option value="option1">Policy 1</option>
  106. <option value="option2">Policy 2</option>
  107. <option value="option3">Policy 3</option>
  108. <option value="option4">Policy 4</option>
  109. </select>
  110.  
  111. <div className='policy-number'>
  112. <span>{data.policy.policyNumber}</span>
  113. </div>
  114. </div>
  115.  
  116.  
  117. <select id="schemeSelect" onChange={this.handleSchemeSelectChange}>
  118. <option value="option1">Scheme 1</option>
  119. <option value="option2">Scheme 2</option>
  120. <option value="option3">Scheme 3</option>
  121. <option value="option4">Scheme 4</option>
  122. </select>
  123.  
  124. {/* <Dropdown /> */}
  125.  
  126.  
  127. <div className='scheme-section'>
  128. <div className='scheme-name'>
  129. <span>Scheme Name</span>
  130. </div>
  131.  
  132. <div className='scheme-company-duration'>
  133. {/* this data.startDate works */}
  134. <span>{data.name}</span>
  135. </div>
  136. </div>
  137. </div>
  138.  
  139.  
  140. <div className='main-content'>
  141. <Tabs tabNames={tabNames} data={this.props.data}/>
  142. </div>
  143. </Layout>
  144. </>
  145. );
  146. }
  147. }
  148. const mapStateToProps = (state) => ({
  149. data: state.scheme.data,
  150. });
  151.  
  152. const mapDispatchToProps = {
  153. setData,
  154. };
  155.  
  156. export default connect(mapStateToProps, mapDispatchToProps)(Policy);
  157.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement