Advertisement
danine1

Read/Edit Mode example

Mar 12th, 2018
483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from "react";
  2. import PropTypes from "prop-types";
  3. import { translate } from "react-i18next";
  4.  
  5. import {
  6.   Form,
  7.   Input,
  8.   Checkbox,
  9.   DynamicInputField,
  10.   Select,
  11. } from "@ematix/tesseract-component-library";
  12.  
  13. import cls from "./salary.scss";
  14. import TwoColumnWrapper from "../../TwoColumnWrapper";
  15.  
  16. const EditMode = ({ t }) => (
  17.   <Form onSubmit={() => {}}>
  18.     <TwoColumnWrapper>
  19.       <div className={cls.gridColLeft}>
  20.         <div className={cls.salaryPart}>
  21.           <Input label={t("Gross Salary")} className={cls.salary} />
  22.           <Select name="select" label={t("Currency")} options={[]} />
  23.         </div>
  24.         <DynamicInputField
  25.           name="fields"
  26.           label={t("Financial Bonuses")}
  27.           className={cls.bonuses}
  28.         />
  29.         <DynamicInputField
  30.           name="fields"
  31.           label={t("Benefits")}
  32.           className={cls.benefits}
  33.         />
  34.       </div>
  35.       <div className={cls.gridColRight}>
  36.         <Select
  37.           name="select"
  38.           label={t("Pension")}
  39.           options={[]}
  40.           className={cls.pension}
  41.         />
  42.         <div className={cls.checkBox}>
  43.           <Checkbox
  44.             label={t("Commission Paid to:")}
  45.             name="commissionPaidTo"
  46.             id="1"
  47.           />
  48.         </div>
  49.         <Input label={t("Name")} className={cls.name} />
  50.         <Input label={t("Email")} className={cls.email} />
  51.       </div>
  52.     </TwoColumnWrapper>
  53.   </Form>
  54. );
  55.  
  56. const ReadMode = ({ t }) => (
  57.   <TwoColumnWrapper>
  58.     <div className={cls.gridColLeft}>
  59.       <div className={cls.group}>
  60.         <div className={cls.label}>{t("Gross Salary")}</div>
  61.         <div className={cls.content}>50 000 CZK</div>
  62.       </div>
  63.       <div className={cls.group}>
  64.         <div className={cls.label}>{t("Financial Bonuses")}</div>
  65.         <div className={cls.content}>Comission</div>
  66.         <div className={cls.content}>Extra ordinary</div>
  67.       </div>
  68.       <div className={cls.group}>
  69.         <div className={cls.label}>{t("Benefits")}</div>
  70.         <div className={cls.content}>Food coupons</div>
  71.         <div className={cls.content}>Mobile phone</div>
  72.       </div>
  73.     </div>
  74.  
  75.     <div className={cls.gridColRight}>
  76.       <div>
  77.         <div className={cls.label}>{t("Pension")}</div>
  78.         <div className={cls.content}>{t("10% from salary")}</div>
  79.       </div>
  80.  
  81.       <div className={cls.agency}>{t("Employment Agency")}</div>
  82.       <div className={cls.group}>
  83.         <div className={cls.label}>{t("Name")}</div>
  84.         <div className={cls.content}>Luke Skywalker</div>
  85.       </div>
  86.       <div className={cls.group}>
  87.         <div className={cls.label}>{t("Contact")}</div>
  88.         <div className={cls.content}>space@gmail.com</div>
  89.       </div>
  90.     </div>
  91.   </TwoColumnWrapper>
  92. );
  93.  
  94. class SalaryForm extends React.PureComponent {
  95.   render() {
  96.     const { isReadOnly, t } = this.props;
  97.     return isReadOnly ? <ReadMode t={t} /> : <EditMode t={t} />;
  98.   }
  99. }
  100.  
  101. SalaryForm.propTypes = {
  102.   t: PropTypes.func.isRequired,
  103.   isReadOnly: PropTypes.bool.isRequired,
  104. };
  105.  
  106. EditMode.propTypes = {
  107.   t: PropTypes.func.isRequired,
  108. };
  109.  
  110. ReadMode.propTypes = {
  111.   t: PropTypes.func.isRequired,
  112. };
  113.  
  114. export default translate("SalaryForm")(SalaryForm);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement