Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import * as React from 'react';
  2. import AutoComplete from 'material-ui/AutoComplete';
  3. import {ProcedureState, fetchProcedureRequest} from "../modules/procedure-app";
  4. import {getLogger} from "../../../utils/logger";
  5. const log = getLogger('procedure-component');
  6.  
  7. interface IProcedure extends ProcedureState {
  8.     getProcedures:() => void;
  9. }
  10. export default class Procedure extends React.Component<IProcedure,any > {
  11.     constructor(props) {
  12.         super(props)
  13.     }
  14.  
  15.     render():JSX.Element {
  16.         log(this.props.procedures);
  17.         return (<div>
  18.             <AutoComplete
  19.                 floatingLabelText="Type procedure name"
  20.                 filter={AutoComplete.caseInsensitiveFilter}
  21.                 dataSource={['a','aa','aaa','aaa','aaa','b','c']}
  22.             />
  23.         </div>)
  24.     }
  25.  
  26.     componentDidMount():void {
  27.         this.props.getProcedures();
  28.     }
  29. }
  30.  
  31.  
  32.  
  33. import {StateStatus} from "../../../utils/state-status";
  34. const fetch = require('isomorphic-fetch');
  35. import {getLogger} from "../../../utils/logger";
  36. import {mock_procedure_request} from "../../../middleware/api-urls";
  37. import {getResetAction} from "../../reset-action";
  38. import {RESET} from "../../reset-action";
  39. const log = getLogger('procedure-request-reducer');
  40.  
  41. //----- fetch ------
  42.  
  43.  
  44. export function fetchProcedureRequest() {
  45.     return dispatch => {
  46.         log(`fetchProcedureRequest`);
  47.         dispatch(procedureRequest());
  48.         return fetch(mock_procedure_request, null)
  49.             .then((response:any) => response.json())
  50.             .then((proceduresRequest:any) => {
  51.                 if (proceduresRequest.error) {
  52.                     log(`healthServices failed`);
  53.                     dispatch(procedureFailedAction(proceduresRequest.error.message))
  54.                 } else {
  55.                     log(`healthServices succeeded`);
  56.                     dispatch(procedureSucceededAction(proceduresRequest));
  57.                 }
  58.             })
  59.             .catch(err => dispatch(procedureFailedAction(err.message)))
  60.     }
  61. }
  62.  
  63.  
  64. export interface ProcedureState {
  65.     message:string,
  66.     status:StateStatus;
  67.     procedures:any[];
  68. }
  69.  
  70. export interface IProcedure {
  71.     fetchProcedureRequest:(identifier:string)=>void;
  72.     servicesState:ProcedureState;
  73. }
  74.  
  75. //----- action handler ------
  76.  
  77. let actionHandler = {};
  78.  
  79. //----- actions ------
  80.  
  81. export const PROCEDURE_REQUEST = 'PROCEDURE_REQUEST';
  82. const procedureRequest = () =>
  83.     ({type: PROCEDURE_REQUEST});
  84. actionHandler[PROCEDURE_REQUEST] = (state:any, action:any) =>
  85.     Object.assign({}, state, {status: StateStatus.INPROGRESS, message: "procedure request"});
  86.  
  87. const PROCEDURE_SUCCEEDED:string = 'PROCEDURE_SUCCEEDED';
  88. const procedureSucceededAction = (procedureRequest:any[]) =>
  89.     ({type: PROCEDURE_SUCCEEDED, procedureRequest: procedureRequest});
  90. actionHandler[PROCEDURE_SUCCEEDED] = (state:any, action:any) =>
  91.     Object.assign({}, state, {
  92.         message: "success",
  93.         status: StateStatus.SUCCEEDED,
  94.         procedures: action.procedures
  95.     });
  96.  
  97. const PROCEDURE_FAILED:string = 'PROCEDURE_FAILED';
  98. const procedureFailedAction = (message) => ({type: PROCEDURE_FAILED, message});
  99. actionHandler[PROCEDURE_FAILED] = (state:any, action:any) =>
  100.     Object.assign({}, state, {status: StateStatus.FAILED, message: action.message});
  101.  
  102.  
  103. //----- initial state ---
  104. const initialState:ProcedureState = {
  105.     procedures: [], // make of type
  106.     status: StateStatus.PENDING,
  107.     message: "pending"
  108. };
  109.  
  110. actionHandler[RESET] = getResetAction(initialState);
  111.  
  112. //----- reducer ------
  113. export default function procedureStateReducer(state:any = initialState, action:Redux.Action) {
  114.     const handler = actionHandler[action.type];
  115.     return handler ? handler(state, action) : state
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement