MkFormPage.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import React from 'react'
  2. import { MkForm } from '@mokkon/reactjs'
  3. import '@mokkon/reactjs/dist/index.css'
  4. import { Grid, Typography } from '@material-ui/core'
  5. import EditIcon from '@material-ui/icons/Edit';
  6. import DeleteIcon from '@material-ui/icons/Delete';
  7. import SaveIcon from '@material-ui/icons/Save';
  8. import CancelIcon from '@material-ui/icons/Cancel';
  9. const MkFormPage = () => {
  10. const fields = [
  11. { type: 'text_string', label: 'Name', field_name: 'name' },
  12. { type: 'text_multiline', label: 'Address', field_name: 'address' },
  13. { type: 'text_number', label: 'Latitude', field_name: 'latitude' },
  14. { type: 'text_number', label: 'Longitude', field_name: 'longitude' },
  15. { type: 'text_number', label: 'Max Variance', field_name: 'max_variance' },
  16. { type: 'text_number', label: 'Min Variance', field_name: 'min_variance' },
  17. {
  18. type: 'dropdown', label: 'Customer Name', field_name: 'customer_name', option_label_field: "name", can_create: true, options: [
  19. { name: 'Name1' }, { name: 'Name2' }, { name: 'Name3' }, { name: 'Name4' }
  20. ]
  21. },
  22. ];
  23. const data = {
  24. delete_time: 0,
  25. name: "Vendor 13",
  26. address: "address",
  27. update_time: 1610341578878,
  28. updated_by: "Nine Nine",
  29. updated_by_id: "kShMtHkcwTNjwm-lfzSBvAzdSo1J8dIpAz6_Ct85HPg",
  30. // status: 'joined'
  31. }
  32. const handleDelete = (e, data) => {
  33. console.log('delete data :', data);
  34. }
  35. const handleSave = (e, data) => {
  36. console.log('save data :', data);
  37. }
  38. const handleCancel = (e, data) => {
  39. console.log('cancel data :', data);
  40. }
  41. var actions = [
  42. { "label": "edit", "action_type": "edit", "icon": <EditIcon />, "callback": (e, d) => { handleSave(e, d) } },
  43. { "label": "delete", "action_type": "delete", "callback": (e, d) => { handleDelete(e, d) }, "icon": <DeleteIcon /> },
  44. { "label": "save", "action_type": "save", "callback": (e, d) => { handleSave(e, d) }, "icon": <SaveIcon /> },
  45. { "label": "cancel", "action_type": "cancel", "callback": (e, d) => { handleCancel(e, d) }, "icon": <CancelIcon /> },
  46. { "label": "delete invitation", "action_type": "delete_invitation", "callback": (e, d) => { handleCancel() }, "icon": "", status: "invited" },
  47. { "label": "MkFormrove member", "action_type": "MkFormrove_member", "callback": (e, d) => { handleCancel(e, d) }, "icon": "", status: "joined" },
  48. { "label": "disable member", "action_type": "disable_member", "callback": (e, d) => { handleCancel(e, d) }, "icon": "", status: "joined" },
  49. { "label": "enable member", "action_type": "enable_member", "callback": (e, d) => { handleCancel(e, d) }, "icon": "", status: "disabled" },
  50. { "label": "invite member", "action_type": "invite_member", "callback": (e, d) => { handleCancel(e, d) }, "icon": "", status: "requested" },
  51. ];
  52. return (
  53. <div className="root">
  54. <div className="listContainer">
  55. <Grid container>
  56. <Grid item xs={12}>
  57. <MkForm
  58. fields={fields}
  59. data={data}
  60. buttonColor={'#f05f40'}
  61. actions={actions}
  62. onDropdownCreateNew={(data) => { console.log(data) }}
  63. ></MkForm>
  64. </Grid>
  65. </Grid>
  66. </div>
  67. </div>
  68. );
  69. }
  70. export default MkFormPage